summaryrefslogtreecommitdiff
path: root/tests/std/test_env.zc
diff options
context:
space:
mode:
authorSteven <burnett@posteo.de>2026-01-22 22:57:14 +0000
committerSteven <burnett@posteo.de>2026-01-22 22:57:14 +0000
commitf4cd3cd10428af1a248c3a8bfe7b99332f072fbf (patch)
treeea17fbcc875b425738a651011b94ec41b7b2c2e1 /tests/std/test_env.zc
parented4bbfd8cf4a72fdf4a5d6cba94d537cab340356 (diff)
feat: New std library "env" for accessing the process environment
Diffstat (limited to 'tests/std/test_env.zc')
-rw-r--r--tests/std/test_env.zc68
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/std/test_env.zc b/tests/std/test_env.zc
new file mode 100644
index 0000000..94a7ee0
--- /dev/null
+++ b/tests/std/test_env.zc
@@ -0,0 +1,68 @@
+import "std.zc"
+import "std/env.zc"
+
+test "test_std_env_set_and_get" {
+ var res = Env::set("TEST1", "ok1");
+ assert(res == EnvRes::OK(), "result should be EnvRes::OK()");
+
+ var env_var = Env::get("TEST1");
+ assert(env_var.is_some(), "env_var should have a value");
+ assert(env_var.unwrap() == "ok1", "env_var should be ok1");
+}
+
+test "test_std_env_set_overwrite" {
+ var res = Env::set("TEST2", "ok2");
+ assert(res == EnvRes::OK(), "res should be EnvRes::OK()");
+
+ var res2 = Env::set("TEST2", "ok2-no-ovwr");
+ assert(res2 == EnvRes::OK(), "res2 should be EnvRes::OK()");
+
+ var env_var = Env::get("TEST2");
+ assert(env_var.is_some(), "env_var should have a value");
+ assert(env_var.unwrap() == "ok2", "env_var should be ok2");
+
+ var res3 = Env::set_overwrite("TEST2", "ok2-with-ovwr");
+ assert(res3 == EnvRes::OK(), "res3 should be EnvRes::OK()");
+
+ var env_var2 = Env::get("TEST2");
+ assert(env_var2.is_some(), "env_var2 should have a value");
+ assert(env_var2.unwrap() == "ok2-with-ovwr", "env_var2 should be ok2-with-ovwr");
+}
+
+test "test_std_env_get_dup" {
+ var res = Env::set("TEST3", "ok3");
+ assert(res == EnvRes::OK(), "result should be EnvRes::OK()");
+
+ var env_var = Env::get_dup("TEST3");
+ assert(env_var.is_some(), "env_var should have a value");
+
+ var value = env_var.unwrap();
+ assert(value.c_str() == "ok3", "value should be ok3");
+
+ value.free();
+
+ assert(value.is_empty(), "value should be empty");
+}
+
+test "test_std_env_get_and_get_dup_with_invalid" {
+ var env_var = Env::get("TEST4");
+ assert(env_var.is_none(), "env_var should not have a value");
+
+ var env_var2 = Env::get_dup("TEST4");
+ assert(env_var2.is_none(), "env_var2 should not have a value");
+}
+
+test "test_std_env_unset" {
+ var res = Env::set("TEST5", "ok5");
+ assert(res == EnvRes::OK(), "res should be EnvRes::OK()");
+
+ var env_var = Env::get("TEST5");
+ assert(env_var.is_some(), "env_var should have a value");
+ assert(env_var.unwrap() == "ok5", "env_var should be ok5");
+
+ var res2 = Env::unset("TEST5");
+ assert(res2 == EnvRes::OK(), "res2 should be EnvRes::OK()");
+
+ var env_var2 = Env::get("TEST5");
+ assert(env_var2.is_none(), "env_var2 should not have a value");
+}