1 #include <assert.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include "uvwasi.h"
5
main(void)6 int main(void) {
7 uvwasi_t uvwasi;
8 uvwasi_options_t init_options;
9 uvwasi_errno_t err;
10 uvwasi_size_t argc;
11 uvwasi_size_t argv_buf_size;
12 char** args_get_argv;
13 char* buf;
14
15 uvwasi_options_init(&init_options);
16 init_options.argc = 3;
17 init_options.argv = calloc(3, sizeof(char*));
18 init_options.argv[0] = "--foo=bar";
19 init_options.argv[1] = "-baz";
20 init_options.argv[2] = "100";
21
22 err = uvwasi_init(&uvwasi, &init_options);
23 assert(err == 0);
24
25 err = uvwasi_args_sizes_get(&uvwasi, &argc, &argv_buf_size);
26 assert(err == 0);
27 assert(argc == init_options.argc);
28 assert(argv_buf_size == 19);
29
30 args_get_argv = calloc(argc, sizeof(char*));
31 assert(args_get_argv != NULL);
32 buf = malloc(argv_buf_size);
33 assert(buf != NULL);
34
35 err = uvwasi_args_get(&uvwasi, args_get_argv, buf);
36 assert(err == 0);
37 assert(strcmp(args_get_argv[0], init_options.argv[0]) == 0);
38 assert(strcmp(args_get_argv[1], init_options.argv[1]) == 0);
39 assert(strcmp(args_get_argv[2], init_options.argv[2]) == 0);
40
41 uvwasi_destroy(&uvwasi);
42 free(init_options.argv);
43 free(args_get_argv);
44 free(buf);
45
46 return 0;
47 }
48