From 718a5b5495ae7726aabd2f8a748da9f391d12b98 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Tue, 28 Jan 2014 17:02:03 -0800 Subject: [PATCH] Fix pthread_test to work with gtest 1.7.0. Now we're building it correctly configured, gtest takes a couple of TLS slots for itself. Change-Id: I1c2c4e9e5f9c6e2e2e6ecd1214cfc16a5af5afed --- tests/pthread_test.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/pthread_test.cpp b/tests/pthread_test.cpp index bcef5662e..33317d995 100644 --- a/tests/pthread_test.cpp +++ b/tests/pthread_test.cpp @@ -35,15 +35,19 @@ TEST(pthread, pthread_key_create) { TEST(pthread, pthread_key_create_lots) { // POSIX says PTHREAD_KEYS_MAX should be at least 128. ASSERT_GE(PTHREAD_KEYS_MAX, 128); + + int sysconf_max = sysconf(_SC_THREAD_KEYS_MAX); + // sysconf shouldn't return a smaller value. - ASSERT_GE(sysconf(_SC_THREAD_KEYS_MAX), PTHREAD_KEYS_MAX); + ASSERT_GE(sysconf_max, PTHREAD_KEYS_MAX); // We can allocate _SC_THREAD_KEYS_MAX keys. + sysconf_max -= 2; // (Except that gtest takes two for itself.) std::vector keys; - for (int i = 0; i < sysconf(_SC_THREAD_KEYS_MAX); ++i) { + for (int i = 0; i < sysconf_max; ++i) { pthread_key_t key; // If this fails, it's likely that GLOBAL_INIT_THREAD_LOCAL_BUFFER_COUNT is wrong. - ASSERT_EQ(0, pthread_key_create(&key, NULL)) << i << " of " << sysconf(_SC_THREAD_KEYS_MAX); + ASSERT_EQ(0, pthread_key_create(&key, NULL)) << i << " of " << sysconf_max; keys.push_back(key); } -- 2.11.0