Merge "Fix the WIFSTOPPED definition."
This commit is contained in:
commit
721b93d7ec
2 changed files with 20 additions and 1 deletions
|
@ -53,7 +53,7 @@
|
|||
#define WIFEXITED(__status) (WTERMSIG(__status) == 0)
|
||||
|
||||
/** Returns true if the process was stopped by a signal. */
|
||||
#define WIFSTOPPED(__status) (WTERMSIG(__status) == 0x7f)
|
||||
#define WIFSTOPPED(__status) (((__status) & 0xff) == 0x7f)
|
||||
|
||||
/** Returns true if the process was terminated by a signal. */
|
||||
#define WIFSIGNALED(__status) (WTERMSIG((__status)+1) >= 2)
|
||||
|
|
|
@ -42,3 +42,22 @@ TEST(sys_wait, waitid) {
|
|||
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
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue