diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/test.c | 1 | ||||
-rw-r--r-- | test/testbmk.c | 37 | ||||
-rw-r--r-- | test/testbmk.h | 2 |
3 files changed, 39 insertions, 1 deletions
diff --git a/test/test.c b/test/test.c index 9510eb39d..667b89749 100644 --- a/test/test.c +++ b/test/test.c @@ -62,6 +62,7 @@ static const struct testcase *tests[] = { &testbmk5,
&testbmk6,
&testbmk7,
+ &testbmk8,
NULL
};
diff --git a/test/testbmk.c b/test/testbmk.c index acdfa50e8..02b810e1f 100644 --- a/test/testbmk.c +++ b/test/testbmk.c @@ -292,3 +292,40 @@ const struct testcase testbmk7 = { empty,
bmk7_execute
};
+
+static char *bmk8_gettest(void) {
+
+ return "Benchmark, virtual timers set/reset";
+}
+
+static void tmo(void *param) {}
+
+static void bmk8_execute(void) {
+ static VirtualTimer vt1, vt2;
+ uint32_t n = 0;
+
+ test_wait_tick();
+ test_start_timer(1000);
+ do {
+ chSysLock();
+ chVTSetI(&vt1, 1, tmo, NULL);
+ chVTSetI(&vt2, 10000, tmo, NULL);
+ chVTResetI(&vt1);
+ chVTResetI(&vt2);
+ chSysUnlock();
+ n++;
+#if defined(WIN32)
+ ChkIntSources();
+#endif
+ } while (!test_timer_done);
+ test_print("--- Score : ");
+ test_printn(n * 2);
+ test_println(" timers/S");
+}
+
+const struct testcase testbmk8 = {
+ bmk8_gettest,
+ empty,
+ empty,
+ bmk8_execute
+};
diff --git a/test/testbmk.h b/test/testbmk.h index 5e99dc3d5..afa3381e4 100644 --- a/test/testbmk.h +++ b/test/testbmk.h @@ -22,6 +22,6 @@ extern const struct testcase testbmk1, testbmk2, testbmk3,
testbmk4, testbmk5, testbmk6,
- testbmk7;
+ testbmk7, testbmk8;
#endif /* _TESTBMK_H_ */
|