TEST(pthread, pthread_getcpuclockid__no_such_thread) { pthread_t dead_thread; MakeDeadThread(dead_thread); clockid_t c; ASSERT_EQ(ESRCH, pthread_getcpuclockid(dead_thread, &c)); }
TEST(pthread, pthread_join__no_such_thread) { pthread_t dead_thread; MakeDeadThread(dead_thread); void* result; ASSERT_EQ(ESRCH, pthread_join(dead_thread, &result)); }
TEST(pthread, pthread_setname_np__no_such_thread) { pthread_t dead_thread; MakeDeadThread(dead_thread); // Call pthread_setname_np after thread has already exited. ASSERT_EQ(ENOENT, pthread_setname_np(dead_thread, "short 3")); }
TEST(pthread, pthread_setschedparam__no_such_thread) { pthread_t dead_thread; MakeDeadThread(dead_thread); int policy = 0; sched_param param; ASSERT_EQ(ESRCH, pthread_setschedparam(dead_thread, policy, ¶m)); }
TEST(pthread, pthread_setname_np__no_such_thread) { #if defined(__BIONIC__) // Not all build servers have a new enough glibc? TODO: remove when they're on gprecise. pthread_t dead_thread; MakeDeadThread(dead_thread); // Call pthread_setname_np after thread has already exited. ASSERT_EQ(ESRCH, pthread_setname_np(dead_thread, "short 3")); #else // __BIONIC__ GTEST_LOG_(INFO) << "This test does nothing.\n"; #endif // __BIONIC__ }
TEST(pthread, pthread_kill__no_such_thread) { pthread_t dead_thread; MakeDeadThread(dead_thread); ASSERT_EQ(ESRCH, pthread_kill(dead_thread, 0)); }
TEST(pthread, pthread_detach__no_such_thread) { pthread_t dead_thread; MakeDeadThread(dead_thread); ASSERT_EQ(ESRCH, pthread_detach(dead_thread)); }
TEST(pthread, pthread_join__no_such_thread) { pthread_t dead_thread; MakeDeadThread(dead_thread); ASSERT_EQ(ESRCH, pthread_join(dead_thread, NULL)); }