From 1931509c925957cb0eee70bd886e2558c0acb43a Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Thu, 4 Jul 2024 01:04:22 +0800 Subject: [PATCH] idris_support: fix environ for macOS (#3324) * idris_support: fix environ for macOS * Add test that touches the new implementation of environ --------- Co-authored-by: Sergey Fedorov Co-authored-by: Mathew Polzin --- support/c/idris_support.c | 3 +++ tests/base/system_get_environment/Test.idr | 8 ++++++++ tests/base/system_get_environment/expected | 1 + tests/base/system_get_environment/run | 4 ++++ 4 files changed, 16 insertions(+) create mode 100644 tests/base/system_get_environment/Test.idr create mode 100644 tests/base/system_get_environment/expected create mode 100755 tests/base/system_get_environment/run diff --git a/support/c/idris_support.c b/support/c/idris_support.c index a90345b2a9..d337f5e4d4 100644 --- a/support/c/idris_support.c +++ b/support/c/idris_support.c @@ -23,6 +23,9 @@ char **_argv; extern char **_environ; #include "windows/win_utils.h" #define environ _environ +#elif defined(__APPLE__) +#include +#define environ (*_NSGetEnviron()) #else extern char **environ; #endif diff --git a/tests/base/system_get_environment/Test.idr b/tests/base/system_get_environment/Test.idr new file mode 100644 index 0000000000..9356682fa1 --- /dev/null +++ b/tests/base/system_get_environment/Test.idr @@ -0,0 +1,8 @@ +import System + +main : IO () +main = do + env <- getEnvironment + -- it better be non-empty because we set a variable before starting this test + printLn $ null env + diff --git a/tests/base/system_get_environment/expected b/tests/base/system_get_environment/expected new file mode 100644 index 0000000000..bc59c12aa1 --- /dev/null +++ b/tests/base/system_get_environment/expected @@ -0,0 +1 @@ +False diff --git a/tests/base/system_get_environment/run b/tests/base/system_get_environment/run new file mode 100755 index 0000000000..e596e28bb8 --- /dev/null +++ b/tests/base/system_get_environment/run @@ -0,0 +1,4 @@ +. ../../testutils.sh + +idris2 --cg chez -o test Test.idr +HELLO=hi ./build/exec/test