mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Merge pull request #1658 from gitlost/odin_run_unix_exit_code_WEXITSTATUS
Use `WIFEXITED()` and `WEXITSTATUS()` on Unix `system()` exit code
This commit is contained in:
@@ -117,6 +117,9 @@ i32 system_exec_command_line_app(char const *name, char const *fmt, ...) {
|
|||||||
gb_printf_err("%s\n\n", cmd_line);
|
gb_printf_err("%s\n\n", cmd_line);
|
||||||
}
|
}
|
||||||
exit_code = system(cmd_line);
|
exit_code = system(cmd_line);
|
||||||
|
if (WIFEXITED(exit_code)) {
|
||||||
|
exit_code = WEXITSTATUS(exit_code);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (exit_code) {
|
if (exit_code) {
|
||||||
|
|||||||
+4
-1
@@ -2,7 +2,7 @@ ODIN=../../odin
|
|||||||
PYTHON=$(shell which python3)
|
PYTHON=$(shell which python3)
|
||||||
|
|
||||||
all: download_test_assets image_test compress_test strings_test hash_test crypto_test noise_test encoding_test \
|
all: download_test_assets image_test compress_test strings_test hash_test crypto_test noise_test encoding_test \
|
||||||
math_test linalg_glsl_math_test filepath_test reflect_test
|
math_test linalg_glsl_math_test filepath_test reflect_test os_exit_test
|
||||||
|
|
||||||
download_test_assets:
|
download_test_assets:
|
||||||
$(PYTHON) download_assets.py
|
$(PYTHON) download_assets.py
|
||||||
@@ -41,3 +41,6 @@ filepath_test:
|
|||||||
|
|
||||||
reflect_test:
|
reflect_test:
|
||||||
$(ODIN) run reflect/test_core_reflect.odin -out=test_core_reflect -collection:tests=..
|
$(ODIN) run reflect/test_core_reflect.odin -out=test_core_reflect -collection:tests=..
|
||||||
|
|
||||||
|
os_exit_test:
|
||||||
|
$(ODIN) run os/test_core_os_exit.odin -out=test_core_os_exit && exit 1 || exit 0
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
// Tests that Odin run returns exit code of built executable on Unix
|
||||||
|
// Needs exit status to be inverted to return 0 on success, e.g.
|
||||||
|
// $(./odin run tests/core/os/test_core_os_exit.odin && exit 1 || exit 0)
|
||||||
|
package test_core_os_exit
|
||||||
|
|
||||||
|
import "core:os"
|
||||||
|
|
||||||
|
main :: proc() {
|
||||||
|
os.exit(1)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user