Fix the WIFSTOPPED definition.
Although this breaks job control in several shells (including mksh),
this has been broken since the initial commit and no-one's noticed until
now.
Bug: https://github.com/android/ndk/issues/1878
Test: treehugger
Change-Id: Id7c4805965c5e5847db99b57df1af13355adcc22
diff --git a/tests/sys_wait_test.cpp b/tests/sys_wait_test.cpp
index c006972..200fabe 100644
--- a/tests/sys_wait_test.cpp
+++ b/tests/sys_wait_test.cpp
@@ -42,3 +42,22 @@
ASSERT_EQ(66, si.si_status);
ASSERT_EQ(CLD_EXITED, si.si_code);
}
+
+// https://github.com/android/ndk/issues/1878
+TEST(sys_wait, macros) {
+#if defined(__GLIBC__)
+ // glibc before 2016 requires an lvalue.
+#else
+ ASSERT_FALSE(WIFEXITED(0x7f));
+ ASSERT_TRUE(WIFSTOPPED(0x7f));
+ ASSERT_FALSE(WIFCONTINUED(0x7f));
+
+ ASSERT_TRUE(WIFEXITED(0x80));
+ ASSERT_FALSE(WIFSTOPPED(0x80));
+ ASSERT_FALSE(WIFCONTINUED(0x80));
+
+ ASSERT_FALSE(WIFEXITED(0xffff));
+ ASSERT_FALSE(WIFSTOPPED(0xffff));
+ ASSERT_TRUE(WIFCONTINUED(0xffff));
+#endif
+}