aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2008-01-22 11:20:50 -0500
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2008-01-22 11:20:50 -0500
commit726fc7a6c8e8f8e1036337e1503af0cbb1bb741f (patch)
treef06d08d6d484b9081d639ffaf145ad4679d91978 /src
parentb9245ec5694dbc690b004f16e525a92db348943f (diff)
add mode_test
Diffstat (limited to 'src')
-rw-r--r--src/mode_test.c112
1 files changed, 112 insertions, 0 deletions
diff --git a/src/mode_test.c b/src/mode_test.c
new file mode 100644
index 0000000..811755e
--- /dev/null
+++ b/src/mode_test.c
@@ -0,0 +1,112 @@
1#include <stdio.h>
2#include <stdlib.h>
3#include <signal.h>
4#include <unistd.h>
5#include <sys/time.h>
6#include <sys/wait.h>
7#include <sys/types.h>
8#include <sys/stat.h>
9#include <fcntl.h>
10
11#include "litmus.h"
12
13#define US_PER_MS 1000
14
15int prefix(void)
16{
17 char field[1024];
18 int prefix[1024];
19 int i, sum = 0;
20
21 for (i = 0; i < 1024; i++) {
22 sum += field[i];
23 prefix[i] = sum;
24 }
25 return sum;
26}
27
28void do_stuff(void)
29{
30 int i =0, j =0;
31
32 for (; i < 50000; i++)
33 j += prefix();
34}
35
36#define CALL(sc) do { ret = sc; if (ret == -1) {perror(" (!!) " #sc " failed: "); /*exit(1)*/;}} while (0);
37
38unsigned int job_no;
39
40void next(void)
41{
42 int ret;
43 unsigned int actual;
44 CALL(get_job_no(&actual));
45 CALL(wait_for_job_release(++job_no));
46 printf("Now executing job %u, waited for %u\n", actual, job_no);
47}
48
49int main(int argc, char** argv)
50{
51 int ret;
52
53 init_litmus();
54
55 CALL(getpid());
56 printf("my pid is %d\n", ret);
57
58
59 CALL(get_job_no(&job_no));
60 printf("my job_no is %u", job_no);
61
62 CALL( task_mode(LITMUS_RT_TASK) );
63
64 next();
65 do_stuff();
66
67 next();
68 do_stuff();
69
70 next();
71 do_stuff();
72
73 CALL( task_mode(BACKGROUND_TASK) );
74
75 do_stuff();
76 do_stuff();
77 do_stuff();
78 do_stuff();
79 do_stuff();
80
81 CALL( task_mode(LITMUS_RT_TASK) );
82
83 do_stuff();
84 do_stuff();
85 do_stuff();
86 do_stuff();
87 do_stuff();
88
89
90 next();
91 next();
92 next();
93 next();
94 next();
95 next();
96 next();
97
98
99 next();
100 do_stuff();
101
102 next();
103 do_stuff();
104
105 next();
106 do_stuff();
107
108 CALL( task_mode(BACKGROUND_TASK) );
109 printf("Exiting...\n");
110
111 return 0;
112}