Implement _Exit(3).
Change-Id: Ida6ac844cc87d38c9645b197dd8188bb73e27dbe
diff --git a/tests/stdlib_test.cpp b/tests/stdlib_test.cpp
index 3a3fe28..bb395f0 100644
--- a/tests/stdlib_test.cpp
+++ b/tests/stdlib_test.cpp
@@ -202,3 +202,17 @@
TEST(stdlib, strtold) {
ASSERT_DOUBLE_EQ(1.23, strtold("1.23", NULL));
}
+
+TEST(unistd, _Exit) {
+ int pid = fork();
+ ASSERT_NE(-1, pid) << strerror(errno);
+
+ if (pid == 0) {
+ _Exit(99);
+ }
+
+ int status;
+ ASSERT_EQ(pid, waitpid(pid, &status, 0));
+ ASSERT_TRUE(WIFEXITED(status));
+ ASSERT_EQ(99, WEXITSTATUS(status));
+}
diff --git a/tests/unistd_test.cpp b/tests/unistd_test.cpp
index f50c102..da8fd4b 100644
--- a/tests/unistd_test.cpp
+++ b/tests/unistd_test.cpp
@@ -116,3 +116,17 @@
TEST(unistd, alarm) {
ASSERT_EQ(0U, alarm(0));
}
+
+TEST(unistd, _exit) {
+ int pid = fork();
+ ASSERT_NE(-1, pid) << strerror(errno);
+
+ if (pid == 0) {
+ _exit(99);
+ }
+
+ int status;
+ ASSERT_EQ(pid, waitpid(pid, &status, 0));
+ ASSERT_TRUE(WIFEXITED(status));
+ ASSERT_EQ(99, WEXITSTATUS(status));
+}