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