HomePhabricator

Fix flaky subscribers policy rule unit test

Description

Fix flaky subscribers policy rule unit test

Summary:
I'm about 90% sure this fixes the intermittent test failure on testObjectSubscribersPolicyRule() or whatever.

We use spl_object_hash() to identify objects when passing hints about policy changes to policy rules. This is hacky, and I think it's the source of the unit test issue.

Specifically, spl_object_hash() is approximately just returning the memory address of the object, and two objects can occasionally use the same memory address (one gets garbage collected; another uses the same memory).

If I replace spl_object_hash() with a static value like "zebra", the test failure reproduces.

Instead, sneak an object ID onto a runtime property. This is at least as hacky but shouldn't suffer from the same intermittent failure.

Test Plan: Ran arc unit --everything, but I never got a reliable repro of the issue in the first place, so who knows.

Reviewers: chad

Reviewed By: chad

Differential Revision: https://secure.phabricator.com/D17029

Details

Provenance
epriestleyAuthored on Dec 11 2016, 8:22 PM
epriestleyPushed on Dec 11 2016, 8:27 PM
Reviewer
chad
Differential Revision
D17029: Fix flaky subscribers policy rule unit test
Parents
rP42896f9f9044: Rename all ProfilePanels into ProfileMenuItems
Branches
Unknown
Tags
Unknown
Build Status
Buildable 14853
Build 19439: Run Core Tests