am 7f38a3c9: Merge "Implement _Exit(3)."
* commit '7f38a3c9bef9c6efc30a6b60873bbdeea04a18f0': Implement _Exit(3).
This commit is contained in:
commit
901b2839d8
@ -308,7 +308,7 @@ int __epoll_pwait:epoll_pwait(int, struct epoll_event*, int, int, const sigset_t
|
|||||||
|
|
||||||
int eventfd:eventfd2(unsigned int, int) all
|
int eventfd:eventfd2(unsigned int, int) all
|
||||||
|
|
||||||
void _exit:exit_group(int) all
|
void _exit|_Exit:exit_group(int) all
|
||||||
void __exit:exit(int) all
|
void __exit:exit(int) all
|
||||||
|
|
||||||
int futex(void*, int, int, void*, void*, int) all
|
int futex(void*, int, int, void*, void*, int) all
|
||||||
|
@ -12,3 +12,6 @@ ENTRY(_exit)
|
|||||||
neg r0, r0
|
neg r0, r0
|
||||||
b __set_errno
|
b __set_errno
|
||||||
END(_exit)
|
END(_exit)
|
||||||
|
|
||||||
|
.globl _Exit
|
||||||
|
.equ _Exit, _exit
|
||||||
|
@ -19,3 +19,6 @@ ENTRY(_exit)
|
|||||||
|
|
||||||
ret
|
ret
|
||||||
END(_exit)
|
END(_exit)
|
||||||
|
|
||||||
|
.globl _Exit
|
||||||
|
.equ _Exit, _exit
|
||||||
|
@ -17,3 +17,6 @@ ENTRY(_exit)
|
|||||||
nop
|
nop
|
||||||
.set reorder
|
.set reorder
|
||||||
END(_exit)
|
END(_exit)
|
||||||
|
|
||||||
|
.globl _Exit
|
||||||
|
.equ _Exit, _exit
|
||||||
|
@ -23,3 +23,6 @@ ENTRY(_exit)
|
|||||||
move ra, t0
|
move ra, t0
|
||||||
.set pop
|
.set pop
|
||||||
END(_exit)
|
END(_exit)
|
||||||
|
|
||||||
|
.globl _Exit
|
||||||
|
.equ _Exit, _exit
|
||||||
|
@ -20,3 +20,6 @@ ENTRY(_exit)
|
|||||||
popl %ebx
|
popl %ebx
|
||||||
ret
|
ret
|
||||||
END(_exit)
|
END(_exit)
|
||||||
|
|
||||||
|
.globl _Exit
|
||||||
|
.equ _Exit, _exit
|
||||||
|
@ -14,3 +14,6 @@ ENTRY(_exit)
|
|||||||
1:
|
1:
|
||||||
ret
|
ret
|
||||||
END(_exit)
|
END(_exit)
|
||||||
|
|
||||||
|
.globl _Exit
|
||||||
|
.equ _Exit, _exit
|
||||||
|
@ -41,8 +41,9 @@ __BEGIN_DECLS
|
|||||||
#define EXIT_FAILURE 1
|
#define EXIT_FAILURE 1
|
||||||
#define EXIT_SUCCESS 0
|
#define EXIT_SUCCESS 0
|
||||||
|
|
||||||
extern __noreturn void exit(int);
|
|
||||||
extern __noreturn void abort(void);
|
extern __noreturn void abort(void);
|
||||||
|
extern __noreturn void exit(int);
|
||||||
|
extern __noreturn void _Exit(int);
|
||||||
extern int atexit(void (*)(void));
|
extern int atexit(void (*)(void));
|
||||||
|
|
||||||
extern char *getenv(const char *);
|
extern char *getenv(const char *);
|
||||||
|
@ -202,3 +202,17 @@ TEST(stdlib, strtof) {
|
|||||||
TEST(stdlib, strtold) {
|
TEST(stdlib, strtold) {
|
||||||
ASSERT_DOUBLE_EQ(1.23, strtold("1.23", NULL));
|
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));
|
||||||
|
}
|
||||||
|
@ -116,3 +116,17 @@ TEST(unistd, read_EBADF) {
|
|||||||
TEST(unistd, alarm) {
|
TEST(unistd, alarm) {
|
||||||
ASSERT_EQ(0U, alarm(0));
|
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));
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user