2024-11-11 23:50:38 +02:00
|
|
|
#include <assert.h>
|
2024-11-13 15:58:29 +02:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <math.h>
|
2024-11-13 21:36:50 +02:00
|
|
|
#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-13 21:36:50 +02:00
|
|
|
|
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-13 21:36:50 +02:00
|
|
|
|
2024-11-11 15:19:36 +02:00
|
|
|
return 0;
|
|
|
|
}
|