Use the first available CPU instead of 0 and 1
This makes the test work in docker containers.
Change-Id: I21a93e59434182ba50ef8c9ea45e24dc0e79a617
Signed-off-by: Austin Schuh <austin.schuh@bluerivertech.com>
diff --git a/aos/events/event_loop_param_test.cc b/aos/events/event_loop_param_test.cc
index 4a298f0..b74a3fe 100644
--- a/aos/events/event_loop_param_test.cc
+++ b/aos/events/event_loop_param_test.cc
@@ -780,11 +780,23 @@
// Verify that SetRuntimeAffinity fails while running.
TEST_P(AbstractEventLoopDeathTest, SetRuntimeAffinity) {
+ const cpu_set_t available = GetCurrentThreadAffinity();
+ int first_cpu = -1;
+ for (int i = 0; i < CPU_SETSIZE; ++i) {
+ if (CPU_ISSET(i, &available)) {
+ first_cpu = i;
+ break;
+ continue;
+ }
+ }
+ CHECK_NE(first_cpu, -1) << ": Default affinity has no CPUs?";
+
auto loop = MakePrimary();
// Confirm that runtime priority calls work when not running.
- loop->SetRuntimeAffinity(MakeCpusetFromCpus({0}));
+ loop->SetRuntimeAffinity(MakeCpusetFromCpus({first_cpu}));
- loop->OnRun([&]() { loop->SetRuntimeAffinity(MakeCpusetFromCpus({1})); });
+ loop->OnRun(
+ [&]() { loop->SetRuntimeAffinity(MakeCpusetFromCpus({first_cpu})); });
EXPECT_DEATH(Run(), "Cannot set affinity while running");
}