yggdrasil/test.c

74 lines
1.8 KiB
C
Raw Normal View History

2024-11-11 23:50:38 +02:00
#include <assert.h>
#include <stdio.h>
#include <math.h>
#include <setjmp.h>
2024-11-13 22:46:11 +02:00
#include <stdlib.h>
#include <string.h>
2024-11-14 12:20:15 +02:00
#include <unistd.h>
2024-11-14 12:20:15 +02:00
int main(int argc, const char **argv) {
char *val;
2024-11-13 22:46:11 +02:00
2024-11-14 12:20:15 +02:00
assert(environ != NULL);
assert(*environ == NULL);
2024-11-13 22:46:11 +02:00
2024-11-14 12:20:15 +02:00
setenv("key1", "value1", 0);
assert(environ != NULL);
assert(!strcmp(*environ, "key1=value1"));
assert(*(environ + 1) == NULL);
setenv("key1", "value2", 0);
assert(environ != NULL);
assert(!strcmp(*environ, "key1=value1"));
assert(*(environ + 1) == NULL);
setenv("key1", "value3", 1);
assert(environ != NULL);
assert(!strcmp(*environ, "key1=value3"));
assert(*(environ + 1) == NULL);
setenv("key1", "longer-value", 1);
assert(environ != NULL);
assert(!strcmp(*environ, "key1=longer-value"));
assert(*(environ + 1) == NULL);
setenv("key2", "other-value", 0);
assert(environ != NULL);
assert(!strcmp(environ[0], "key1=longer-value"));
assert(!strcmp(environ[1], "key2=other-value"));
assert(environ[2] == NULL);
assert(!strcmp(getenv("key1"), "longer-value"));
assert(!strcmp(getenv("key2"), "other-value"));
assert(getenv("key3") == NULL);
unsetenv("key2");
assert(!strcmp(getenv("key1"), "longer-value"));
assert(getenv("key2") == NULL);
assert(getenv("key3") == NULL);
environ[0] = strdup("key2=???");
assert(!strcmp(getenv("key2"), "???"));
char *value = strdup("key4=!!!");
putenv(value);
assert(!strcmp(getenv("key2"), "???"));
assert(!strcmp(getenv("key4"), "!!!"));
value[6] = '@';
assert(!strcmp(getenv("key2"), "???"));
assert(!strcmp(getenv("key4"), "!@!"));
unsetenv("key4");
unsetenv("key2");
assert(environ != NULL);
assert(*environ == NULL);
2024-11-11 15:19:36 +02:00
return 0;
}