entityx icon indicating copy to clipboard operation
entityx copied to clipboard

pool_test is flaky on OSX 10.9.5

Open zackthehuman opened this issue 9 years ago • 2 comments

It looks as if pool_test is not 100% reliable, at least not on my mac. Sometimes everything passes, but most of the time there is a single assertion the fails.

-------------------------------------------------------------------------------
TestPoolPointers
-------------------------------------------------------------------------------
/Users/zack/Dev/entityx-build/entityx/help/Pool_test.cc:45
...............................................................................

/Users/zack/Dev/entityx-build/entityx/help/Pool_test.cc:65: FAILED:
  REQUIRE( extrapolated_p16 != static_cast<void*>(p16) )
with expansion:
  0xb05540d9d67f0000 != 0xb05540d9d67f0000

===============================================================================
3 test cases - 1 failed (13 assertions - 1 failed)

Running make test over and over will yield success sometimes, but failure most of the time. This is built using Apple clang:

-- The C compiler identification is AppleClang 5.0.0.5000279
-- The CXX compiler identification is AppleClang 5.0.0.5000279

I thought that the failures were related to a change I had in a local branch but it turns out that this bejavior is also present in the current master.

zackthehuman avatar Feb 13 '16 01:02 zackthehuman

I've seen that myself, I'll have to take a bit more of a look.

alecthomas avatar Mar 04 '16 22:03 alecthomas

But shouldn't the memory layout be like:

00000000----------------
       ^^
   p0+7  p0+8

--------1111111111111111
        ^       ^
      p8         p8+8
                ^
                 p16

which means

pool.get(7) == pool.get(0)+7;
pool.get(8) != pool.get(0)+8;
pool.get(16) == pool.get(8)+8;

And the failed check should be inverted.

Teivaz avatar Oct 07 '18 20:10 Teivaz