Skip to content

Commit

Permalink
Updates unit tests that were failing on Apple M2 Silicon
Browse files Browse the repository at this point in the history
Fix for issue #436.
  • Loading branch information
louis-langholtz committed Feb 6, 2023
1 parent da0b2c0 commit b579ca4
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 10 deletions.
17 changes: 17 additions & 0 deletions UnitTests/World.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2793,6 +2793,16 @@ TEST(World_Longer, TilesComesToRest)
if (firstStepWithZeroMoved) {
EXPECT_EQ(*firstStepWithZeroMoved, 1800u);
}
#elif defined(__arm64__) // At least for Apple Silicon
EXPECT_GE(world->GetContactRange(), 1447u);
EXPECT_LE(world->GetContactRange(), 1451u);
EXPECT_GE(totalBodiesSlept, 667u);
EXPECT_LE(totalBodiesSlept, 670u);
EXPECT_TRUE(firstStepWithZeroMoved);
if (firstStepWithZeroMoved) {
EXPECT_GE(*firstStepWithZeroMoved, 1798u);
EXPECT_LE(*firstStepWithZeroMoved, 1812u);
}
#else // unrecognized arch; just check results are within range of others
EXPECT_GE(world->GetContactRange(), 1447u);
EXPECT_LE(world->GetContactRange(), 1450u);
Expand Down Expand Up @@ -2952,6 +2962,13 @@ TEST(World_Longer, TilesComesToRest)
EXPECT_EQ(sumRegVelIters, 46981ul);
EXPECT_EQ(sumToiPosIters, 43684ul);
EXPECT_EQ(sumToiVelIters, 112778ul);
#elif defined(__arm64__)
// At least for Apple Silicon...
EXPECT_EQ(numSteps, 1799ul);
EXPECT_EQ(sumRegPosIters, 36512ul);
EXPECT_EQ(sumRegVelIters, 46940ul);
EXPECT_EQ(sumToiPosIters, 44021ul);
EXPECT_EQ(sumToiVelIters, 113137ul);
#else
// These will likely fail and need to be tweaked for the particular hardware...
EXPECT_EQ(numSteps, 1814ul);
Expand Down
14 changes: 4 additions & 10 deletions UnitTests/functional.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,14 @@
TEST(functional, FunctionSize)
{
#ifdef __APPLE__
#if defined(__arm64__)
EXPECT_EQ(sizeof(std::function<int()>), std::size_t(32));
#else
EXPECT_EQ(sizeof(std::function<int()>), std::size_t(48));
EXPECT_EQ(sizeof(std::function<void(int)>), std::size_t(48));
EXPECT_EQ(sizeof(std::function<float(int)>), std::size_t(48));
EXPECT_EQ(sizeof(std::function<int(float)>), std::size_t(48));
EXPECT_EQ(sizeof(std::function<int(double)>), std::size_t(48));
EXPECT_EQ(sizeof(std::function<int(double, long, void*)>), std::size_t(48));
#endif
#endif
#ifdef __linux__
EXPECT_EQ(sizeof(std::function<int()>), std::size_t(32));
EXPECT_EQ(sizeof(std::function<void(int)>), std::size_t(32));
EXPECT_EQ(sizeof(std::function<float(int)>), std::size_t(32));
EXPECT_EQ(sizeof(std::function<int(float)>), std::size_t(32));
EXPECT_EQ(sizeof(std::function<int(double)>), std::size_t(32));
EXPECT_EQ(sizeof(std::function<int(double, long, void*)>), std::size_t(32));
#endif
}

Expand Down

0 comments on commit b579ca4

Please sign in to comment.