]> rtime.felk.cvut.cz Git - hercules2020/jailhouse-build.git/commitdiff
Add more memguard checks
authorMichal Sojka <michal.sojka@cvut.cz>
Thu, 1 Nov 2018 13:33:28 +0000 (14:33 +0100)
committerMichal Sojka <michal.sojka@cvut.cz>
Thu, 1 Nov 2018 13:33:28 +0000 (14:33 +0100)
test/memguard-test.c

index 82385246b0bd9e2c5b1eefd1865acf0bd0327668..dde5f6441de7e751cbcd6481693916fdc3889376 100644 (file)
@@ -127,12 +127,12 @@ static void print_test_info(uint64_t timeout_us, uint64_t mem_budget, uint64_t f
               r.mem, r.mem_ovf ? '!' : ' ');
 }
 
-void wvtest_pass(bool cond, const char* str)
+void wvtest_pass(bool cond, const char* file, int line, const char* str)
 {
-       printf("! %s %s\n", str, cond ? "ok" : "FAILURE");
+       printf("! %s:%d  %s %s\n", file, line, str, cond ? "ok" : "FAILURE");
 }
 
-#define WVPASS(cond) wvtest_pass(cond, #cond)
+#define WVPASS(cond) wvtest_pass(cond, __FILE__, __LINE__, #cond)
 
 #define MGTEST(timeout_us, mem_budget, flags, code)                            \
        ({                                                                     \
@@ -165,26 +165,74 @@ int main(int argc, char *argv[])
        struct mg_ret r;
        for (uint64_t flags = 0; flags < 4; flags++) {
                compute_kernel(1); /* warm up */
+
+               ///////////////////////////////////////////////////////
                r = MGTEST(5000, 10000, flags, compute_kernel(1000));
-               WVPASS(!r.mem_ovf);
+               WVPASS(!r.time_ovf);
+               WVPASS(r.time > 900);
+
+               r = MGTEST(500, 10000, flags, compute_kernel(1000));
+               WVPASS(r.time_ovf);
                WVPASS(r.time > 900);
-               MGTEST(500, 10000, flags, compute_kernel(1000));
-               MGTEST(5000, 10000, flags, compute_kernel(2000));
-               MGTEST(500, 10000, flags, compute_kernel(2000));
-
-               MGTEST(100000, 500000, flags, read_memory(100000));
-               MGTEST(100000, 50000,  flags, read_memory(100000));
-               MGTEST(100000, 500000, flags, read_memory_rnd(100000));
-               MGTEST(100000, 50000,  flags, read_memory_rnd(100000));
-               MGTEST(100000, 500000, flags, write_memory(100000));
-               MGTEST(100000, 50000,  flags, write_memory(100000));
-
-               MGTEST(100000, 5000000, flags, read_memory(1000000));
-               MGTEST(100000, 500000,  flags, read_memory(1000000));
-               MGTEST(100000, 5000000, flags, read_memory_rnd(1000000));
-               MGTEST(100000, 500000,  flags, read_memory_rnd(1000000));
-               MGTEST(100000, 5000000, flags, write_memory(1000000));
-               MGTEST(100000, 500000,  flags, write_memory(1000000));
+
+               r = MGTEST(5000, 10000, flags, compute_kernel(2000));
+               WVPASS(!r.time_ovf);
+               WVPASS(r.time > 1900);
+
+               r = MGTEST(500, 10000, flags, compute_kernel(2000));
+               WVPASS(r.time_ovf);
+               WVPASS(r.time > 1900);
+
+               ///////////////////////////////////////////////////////
+               r = MGTEST(100000, 500000, flags, read_memory(100000));
+               WVPASS(!r.mem_ovf);
+               WVPASS(r.mem >= 100000);
+
+               r = MGTEST(100000, 50000,  flags, read_memory(100000));
+               WVPASS(r.mem_ovf);
+               WVPASS(r.mem >= 100000);
+
+               r = MGTEST(100000, 500000, flags, read_memory_rnd(100000));
+               WVPASS(!r.mem_ovf);
+               WVPASS(r.mem >= 100000);
+
+               r = MGTEST(100000, 50000,  flags, read_memory_rnd(100000));
+               WVPASS(r.mem_ovf);
+               WVPASS(r.mem >= 100000);
+
+               r = MGTEST(100000, 500000, flags, write_memory(100000));
+               WVPASS(!r.mem_ovf);
+               WVPASS(r.mem >= 100000);
+
+               r = MGTEST(100000, 50000,  flags, write_memory(100000));
+               WVPASS(r.mem_ovf);
+               WVPASS(r.mem >= 100000);
+
+
+               ///////////////////////////////////////////////////////
+               r = MGTEST(100000, 5000000, flags, read_memory(1000000));
+               WVPASS(!r.mem_ovf);
+               WVPASS(r.mem >= 100000);
+
+               r = MGTEST(100000, 500000,  flags, read_memory(1000000));
+               WVPASS(r.mem_ovf);
+               WVPASS(r.mem >= 100000);
+
+               r = MGTEST(100000, 5000000, flags, read_memory_rnd(1000000));
+               WVPASS(!r.mem_ovf);
+               WVPASS(r.mem >= 100000);
+
+               r = MGTEST(100000, 500000,  flags, read_memory_rnd(1000000));
+               WVPASS(r.mem_ovf);
+               WVPASS(r.mem >= 100000);
+
+               r = MGTEST(100000, 5000000, flags, write_memory(1000000));
+               WVPASS(!r.mem_ovf);
+               WVPASS(r.mem >= 100000);
+
+               r = MGTEST(100000, 500000,  flags, write_memory(1000000));
+               WVPASS(r.mem_ovf);
+               WVPASS(r.mem >= 100000);
 
                printf("\n");
        }