diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2007-10-03 18:18:58 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2007-10-03 18:18:58 +0000 |
commit | dd18ff8898aaeef5c34012da4f537f057cd0b082 (patch) | |
tree | 86bb66a785e3fd1cb31d5bae5e7110d5a40a2274 /test | |
parent | 2310f80695b4051cb63ca14878dfc5e76acb94e6 (diff) | |
download | ChibiOS-dd18ff8898aaeef5c34012da4f537f057cd0b082.tar.gz ChibiOS-dd18ff8898aaeef5c34012da4f537f057cd0b082.tar.bz2 ChibiOS-dd18ff8898aaeef5c34012da4f537f057cd0b082.zip |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@31 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'test')
-rw-r--r-- | test/test.c | 84 |
1 files changed, 9 insertions, 75 deletions
diff --git a/test/test.c b/test/test.c index deed9a08c..4351e79a2 100644 --- a/test/test.c +++ b/test/test.c @@ -75,34 +75,6 @@ t_msg Thread3(void *p) { }
t_msg Thread4(void *p) {
-
- chSemWait(&sem1);
- chFDDPut(comp, *(BYTE8 *)p);
- /*
- * NOTE: chSemSignalWait() is not the same of chSemSignal()+chSemWait().
- * The former is performed atomically, try it.
- */
- chSemSignalWait(&sem1, &sem2);
-// chSemSignal(&sem1);
-// chSemWait(&sem2);
- chFDDPut(comp, *(BYTE8 *)p);
- chSemSignal(&sem2);
- return 0;
-}
-
-t_msg Thread5(void *p) {
-
- chSemWait(&sem1);
- chFDDPut(comp, *(BYTE8 *)p);
- chSemRaisePrioSignalWait(&sem1, &sem2);
-// chSemSignal(&sem1);
-// chSemRaisePrioWait(&sem2);
- chFDDPut(comp, *(BYTE8 *)p);
- chSemLowerPrioSignal(&sem2);
- return 0;
-}
-
-t_msg Thread6(void *p) {
t_msg msg;
int i;
@@ -114,7 +86,7 @@ t_msg Thread6(void *p) { return 0;
}
-t_msg Thread7(void *p) {
+t_msg Thread5(void *p) {
// NOTE, this thread does not serve messages this causes the client to
// timeout.
@@ -130,6 +102,10 @@ t_msg TestThread(void *p) { int i;
comp = p;
+ println("*****************************");
+ println("*** ChibiOS/RT test suite ***");
+ println("*****************************");
+ println("");
/*
* Ready list ordering test.
@@ -169,6 +145,7 @@ t_msg TestThread(void *p) { wait();
println("");
println("*** Semaphores, priority enqueuing test #1, you should read ABCDE:");
+ chSemInit(&sem1, 0);
t5 = chThdCreate(NORMALPRIO+1, 0, wsT5, sizeof(wsT5), Thread3, "E");
t4 = chThdCreate(NORMALPRIO+2, 0, wsT4, sizeof(wsT4), Thread3, "D");
t3 = chThdCreate(NORMALPRIO+3, 0, wsT3, sizeof(wsT3), Thread3, "C");
@@ -182,6 +159,7 @@ t_msg TestThread(void *p) { wait();
println("");
println("*** Semaphores, priority enqueuing test #2, you should read ABCDE:");
+ chSemInit(&sem1, 0);
t4 = chThdCreate(NORMALPRIO+2, 0, wsT4, sizeof(wsT4), Thread3, "D");
t5 = chThdCreate(NORMALPRIO+1, 0, wsT5, sizeof(wsT5), Thread3, "E");
t1 = chThdCreate(NORMALPRIO+5, 0, wsT1, sizeof(wsT1), Thread3, "A");
@@ -194,50 +172,6 @@ t_msg TestThread(void *p) { chSemLowerPrioSignal(&sem1);
wait();
println("");
- println("*** Semaphores, atomicity test #1, you should read ABCDEABCDE:");
- chSemInit(&sem1, 0);
- chSemInit(&sem2, 1);
- t1 = chThdCreate(NORMALPRIO+1, 0, wsT1, sizeof(wsT1), Thread4, "A");
- t2 = chThdCreate(NORMALPRIO+2, 0, wsT2, sizeof(wsT2), Thread4, "B");
- t3 = chThdCreate(NORMALPRIO+3, 0, wsT3, sizeof(wsT3), Thread4, "C");
- t4 = chThdCreate(NORMALPRIO+4, 0, wsT4, sizeof(wsT4), Thread4, "D");
- t5 = chThdCreate(NORMALPRIO+5, 0, wsT5, sizeof(wsT5), Thread4, "E");
- chSemSignal(&sem1);
- wait();
- println("");
- println("*** Semaphores, atomicity test #2, you should read ABCDEABCDE:");
- chSemInit(&sem1, 0);
- chSemInit(&sem2, 1);
- t1 = chThdCreate(NORMALPRIO+1, 0, wsT1, sizeof(wsT1), Thread4, "A");
- t2 = chThdCreate(NORMALPRIO+5, 0, wsT2, sizeof(wsT2), Thread4, "B");
- t3 = chThdCreate(NORMALPRIO+2, 0, wsT3, sizeof(wsT3), Thread4, "C");
- t4 = chThdCreate(NORMALPRIO+4, 0, wsT4, sizeof(wsT4), Thread4, "D");
- t5 = chThdCreate(NORMALPRIO+3, 0, wsT5, sizeof(wsT5), Thread4, "E");
- chSemSignal(&sem1);
- wait();
- println("");
- println("*** Semaphores, atomicity test #3, you should read AABBCCDDEE:");
- chSemInit(&sem1, 0);
- chSemInit(&sem2, 1);
- t1 = chThdCreate(NORMALPRIO+1, 0, wsT1, sizeof(wsT1), Thread5, "A");
- t2 = chThdCreate(NORMALPRIO+2, 0, wsT2, sizeof(wsT2), Thread5, "B");
- t3 = chThdCreate(NORMALPRIO+3, 0, wsT3, sizeof(wsT3), Thread5, "C");
- t4 = chThdCreate(NORMALPRIO+4, 0, wsT4, sizeof(wsT4), Thread5, "D");
- t5 = chThdCreate(NORMALPRIO+5, 0, wsT5, sizeof(wsT5), Thread5, "E");
- chSemSignal(&sem1);
- wait();
- println("");
- println("*** Semaphores, atomicity test #4, you should read AABBCCDDEE:");
- chSemInit(&sem1, 0);
- chSemInit(&sem2, 1);
- t1 = chThdCreate(NORMALPRIO+1, 0, wsT1, sizeof(wsT1), Thread5, "A");
- t2 = chThdCreate(NORMALPRIO+5, 0, wsT2, sizeof(wsT2), Thread5, "B");
- t3 = chThdCreate(NORMALPRIO+2, 0, wsT3, sizeof(wsT3), Thread5, "C");
- t4 = chThdCreate(NORMALPRIO+4, 0, wsT4, sizeof(wsT4), Thread5, "D");
- t5 = chThdCreate(NORMALPRIO+3, 0, wsT5, sizeof(wsT5), Thread5, "E");
- chSemSignal(&sem1);
- wait();
- println("");
println("*** Semaphores, timeout test, you should read ABCDE (slowly):");
chSemInit(&sem1, 0);
for (i = 0; i < 5; i++) {
@@ -250,7 +184,7 @@ t_msg TestThread(void *p) { * Messages test.
*/
println("*** Messages, dispatch test, you should read AABBCCDDEE:");
- t1 = chThdCreate(NORMALPRIO-1, 0, wsT1, sizeof(wsT1), Thread6, chThdSelf());
+ t1 = chThdCreate(NORMALPRIO-1, 0, wsT1, sizeof(wsT1), Thread4, chThdSelf());
do {
chMsgRelease(msg = chMsgWait());
if (msg)
@@ -259,7 +193,7 @@ t_msg TestThread(void *p) { chThdWait(t1);
println("");
println("*** Messages, timeout test, you should read ABCDE (slowly):");
- t1 = chThdCreate(NORMALPRIO-1, 0, wsT1, sizeof(wsT1), Thread7, chThdSelf());
+ t1 = chThdCreate(NORMALPRIO-1, 0, wsT1, sizeof(wsT1), Thread5, chThdSelf());
for (i = 0; i < 5; i++) {
chFDDPut(comp, 'A'+i);
chMsgSendTimeout(t1, 'A'+i, 500);
|