OSDN Git Service

Fix fallout from host GCC upgrade.
authorElliott Hughes <enh@google.com>
Thu, 24 Apr 2014 06:02:43 +0000 (23:02 -0700)
committerElliott Hughes <enh@google.com>
Thu, 24 Apr 2014 06:02:43 +0000 (23:02 -0700)
I'll raise a bug for the FD_ISSET fortification; we should do better too.

Change-Id: Id2bf277890ad06b010dc952e270d746714c2bea7

tests/fortify_test.cpp

index d80b2f7..e0d055e 100644 (file)
@@ -668,10 +668,12 @@ TEST(DEATHTEST, recv_fortified) {
 }
 
 TEST(DEATHTEST, FD_ISSET_fortified) {
+#ifdef __BIONIC__ // glibc catches this at compile-time.
   ::testing::FLAGS_gtest_death_test_style = "threadsafe";
   fd_set set;
   memset(&set, 0, sizeof(set));
   ASSERT_EXIT(FD_ISSET(-1, &set), testing::KilledBySignal(SIGABRT), "");
+#endif
 }
 
 TEST(DEATHTEST, FD_ISSET_2_fortified) {
@@ -681,11 +683,14 @@ TEST(DEATHTEST, FD_ISSET_2_fortified) {
   ASSERT_EXIT(FD_ISSET(0, set), testing::KilledBySignal(SIGABRT), "");
 }
 
+// gtest's ASSERT_EXIT needs a valid expression, but glibc has a do-while macro.
+static void FD_ZERO_function(fd_set* s) { FD_ZERO(s); }
+
 TEST(DEATHTEST, FD_ZERO_fortified) {
   ::testing::FLAGS_gtest_death_test_style = "threadsafe";
   char buf[1];
   fd_set* set = (fd_set*) buf;
-  ASSERT_EXIT(FD_ZERO(set), testing::KilledBySignal(SIGABRT), "");
+  ASSERT_EXIT(FD_ZERO_function(set), testing::KilledBySignal(SIGABRT), "");
 }
 
 TEST(DEATHTEST, read_fortified) {