From f20b97abe74cfbb1f28ef70043cf718fbebf4fa4 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Thu, 29 Nov 2007 09:16:53 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@118 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- test/test.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/test.c b/test/test.c index 412e46866..7ea1bb89c 100644 --- a/test/test.c +++ b/test/test.c @@ -19,7 +19,9 @@ #include +#if defined(WIN32) void ChkIntSources(void); +#endif #if defined(WIN32) && defined(_DEBUG) static WorkingArea(wsT1, 512); @@ -122,6 +124,11 @@ t_msg Thread6(void *p) { return 0; } +t_msg Thread7(void *p) { + + return (unsigned int)p + 1; +} + /** * Tester thread, this thread must be created with priority \p NORMALPRIO. */ @@ -254,9 +261,29 @@ t_msg TestThread(void *p) { chThdWait(t1); print("Messages throughput = "); printn(i); - print(" msg/S, "); + print(" msgs/S, "); printn(i << 1); - println(" ctxsw/S"); + println(" ctxsws/S"); + + println("*** Kernel Benchmark, threads creation/termination:"); + time = chSysGetTime() + 1; + while (chSysGetTime() < time) { +#if defined(WIN32) + ChkIntSources(); +#endif + } + time += 1000; + i = 0; + while (chSysGetTime() < time) { + t1 = chThdCreate(chThdGetPriority()-1, 0, wsT1, sizeof(wsT1), Thread7, (void *)i); + i = chThdWait(t1); +#if defined(WIN32) + ChkIntSources(); +#endif + } + print("Threads throughput = "); + printn(i); + print(" threads/S"); println("\r\nTest complete"); return 0; -- cgit v1.2.3