forked from emscripten-core/emscripten
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_system.c
33 lines (31 loc) · 952 Bytes
/
test_system.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
* Copyright 2020 The Emscripten Authors. All rights reserved.
* Emscripten is available under two separate licenses, the MIT license and the
* University of Illinois/NCSA Open Source License. Both these licenses can be
* found in the LICENSE file.
*/
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <assert.h>
int main(void) {
#ifdef ENV_NODE
#ifndef _W_EXITCODE
# define _W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
#endif
assert(system(NULL) == 1);
assert(system("") == 0);
assert(system("'something like this does not exist (hopefully)'") == _W_EXITCODE(127, 0));
assert(system("false") == _W_EXITCODE(1, 0));
assert(system("true") == _W_EXITCODE(0, 0));
assert(system("kill $$") == _W_EXITCODE(0, 15));
system("echo Hello from echo");
#else
assert(system(NULL) == 0);
assert(system("") == -1);
assert(errno == ENOSYS);
assert(system("true") == -1);
assert(errno == ENOSYS);
#endif
return 0;
}