==> tests/report.c <==1/* sched_tests.rs reports_round_trip, with the exact text. */
2#include "mesh/check.h"
3#include "mesh/sched_report.h"
4
5#include <stdlib.h>
6
7int main(void) {
8 msr_report r = {.t_us = 123456789, .cpus = 20, .big = 10, .little = 10, .ram_mb = 121000, .disk_free_mb = 500000, .heap_kb = 6000, .slots_free = 29};
9 msm_perf tick = {.hash = 0xabc, .exec = "wasm", .run = true, .task_us = {true, 12.5f}, .tasks_s = 50.0f, .cpu = 0.25f, .rss_mb = 64.0f};
10 msm_perf hello = {.hash = 1, .exec = "cuda", .share = {true, 0.48f}};
11 msr_add_prog(&r, "tick", &tick);
12 msr_add_prog(&r, "hello", &hello);
13 msr_add_fail(&r, "tick-big", 0xc3, false, "load tick-big: view heap: 1792 pages wanted, 1789 free");
14 msr_add_fail(&r, "tick-m", 7, true, "unsupported");
15 msr_add_rtt(&r, 1, 250.5f);
16 msr_add_rtt(&r, 3, 1900.0f);
17 msr_add_echo(&r, 1, 99, 12);
18 msr_add_echo(&r, 3, 1000, 7);
19 char *e = msr_encode(&r);
20 CHECK_S(e, "t 123456789\n"
21 "caps cpus 20 big 10 little 10 ram_mb 121000 disk_mb 500000 heap_kb 6000 slots_free 29\n"
22 "prog tick hash 0000000000000abc exec wasm run 1 task_us 12.50 tasks_s 50.00 cpu 0.250 share - rss_mb 64.0\n"
23 "prog hello hash 0000000000000001 exec cuda run 0 task_us - tasks_s 0.00 cpu 0.000 share 0.48 rss_mb 0.0\n"
24 "rtt 1 250.5\nrtt 3 1900.0\necho 1 99 12\necho 3 1000 7\n"
25 "fail tick-big 00000000000000c3 0 load tick-big: view heap: 1792 pages wanted, 1789 free\n"
26 "fail tick-m 0000000000000007 1 unsupported\n");
27 msr_report d;
28 char *err = NULL;
29 CHECK(msr_decode(e, &d, &err));
30 CHECK(msr_eq(&d, &r));
31 msr_free(&d);
32 free(e);
33 msr_free(&r);
34 CHECK(!msr_decode("prog x", &d, &err));
35 CHECK_S(err, "F_PERF: \"prog x\"");
36 free(err);
37 CHECK(msr_decode("fail p 0a 1", &d, &err) && d.nfails == 1 && strcmp(d.fails[0].why, "") == 0);
38 msr_free(&d);
39 return mesh_check_done();
40}