Kref changes and tweaks
[akaros.git] / tests / spawn.c
1
2 #include <rstdio.h>
3 #include <parlib.h>
4
5 int main(int argc, char **argv, char **envp)
6 {
7         #define FILENAME "/bin/hello"
8         #if 0
9         /* try some bad combos */
10         int pid = sys_proc_create("garbagexxx");
11         printf("Garbage pid result: %d\n", pid);
12
13         error_t err = sys_proc_run(2342);
14         printf("sys_proc_run(2342) error: %e\n", err);
15
16         err = sys_proc_run(-1);
17         cprintf("sys_proc_run(-1) error: %e\n", err);
18         #endif
19
20         #define NUM_KIDS 5
21         int child_pid[NUM_KIDS];
22         #if 0
23         printf("U: attempting to create hello(s)\n");
24         for (int i = 0; i < NUM_KIDS; i++)
25                 child_pid[i] = sys_proc_create("roslib_hello");
26
27         for (int i = 0; i < NUM_KIDS; i++) {
28                 cprintf("U: attempting to run hello (pid: %d)\n", child_pid[i]);
29                 sys_proc_run(child_pid[i]);
30         }
31         #endif
32         printf("U: attempting to create and run hello\n");
33         child_pid[0] = sys_proc_create(FILENAME, strlen(FILENAME), 0, 0);
34         if (child_pid[0] <= 0)
35                 perror("");
36         else
37                 if (sys_proc_run(child_pid[0]) < 0)
38                         perror("");
39         #if 0
40         printf("U: attempting to create and run another hello\n");
41         child_pid[1] = sys_proc_create(FILENAME, strlen(FILENAME), 0, 0);
42         if (child_pid[1] <= 0)
43                 perror("");
44         else
45                 if (sys_proc_run(child_pid[1]) < 0)
46                         perror("");
47         #endif
48         return 0;
49 }