diff options
Diffstat (limited to 'testcase/helloworld.c')
| -rw-r--r-- | testcase/helloworld.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/testcase/helloworld.c b/testcase/helloworld.c new file mode 100644 index 0000000..554b258 --- /dev/null +++ b/testcase/helloworld.c @@ -0,0 +1,51 @@ +#include "../user/monitor_user.h" +#include <stdio.h> +#include <unistd.h> +#include <string.h> + +#define NUM_VARS 2049 + +int main() +{ + int i = 0; + int temps[NUM_VARS] = {0}; + watch_arg watch_args[NUM_VARS] = {0}; + + cancel_watch(); + + for (i = 0; i < NUM_VARS; i++) + { + temps[i] = 100; + + watch_args[i] = (watch_arg){ + .task_id = getpid(), + .ptr = &temps[i], + .name = "temp", + .length_byte = sizeof(int), + .threshold = 150 + i, + .unsigned_flag = 0, + .greater_flag = 1, + .time_ns = 2000 + (i / 33) * 5000, // on hyper-v, 1us will block all system. 2us just fine, maybe 1us is too short for hyper-v + }; + char name[20]; + snprintf(name, sizeof(name), "temp%d", i); + // 拷贝字符串 + strncpy(watch_args[i].name, name, (MAX_NAME_LEN + 1)); + + start_watch(watch_args[i]); + } + + while (temps[NUM_VARS - 1] < 205) + { + for (i = 0; i < NUM_VARS; i++) + { + temps[i]++; + } + printf("Value of variable %d: %d", i, temps[0]); + printf("\n"); + sleep(1); + } + + cancel_watch(); + return 0; +}
\ No newline at end of file |
