Hi Gilles

I did some more testing, about how the vxWorks skins handles 
taskSpawn/taskInit and taskName.

I did not discover any differences between running it on my board under 
vxworks and under using the Xenomai simulator on my PowerBook.

There are probably some tests that you consider redundant, so please feel free 
to minimize is.

It is very nice to have an infrastructure where I can easily add testcases and 
verify that everything is okay! Congratulations for all your work on the 
simulator and the skins!

Best regards

-- 
Niklaus Giger
Index: t010823-1.c
===================================================================
--- t010823-1.c	(Revision 1240)
+++ t010823-1.c	(Arbeitskopie)
@@ -28,16 +28,20 @@
  * - taskTcb
  * - taskSafe
  * - taskUnsafe
+ * - taskName
  *
  */
 
 #include <vxworks_test.h>
 
 static WIND_TCB peerTcb;
+static WIND_TCB peerTcbPrio18;
+static WIND_TCB peerTcbPrio21;
 
 void peerTask  (long a0, long a1, long a2, long a3, long a4,
 		long a5, long a6, long a7, long a8, long a9)
 {
+    int rc; 
     WIND_TCB *pTcb = taskTcb(taskIdSelf());
     TEST_ASSERT(pTcb == &peerTcb);
 
@@ -53,9 +57,65 @@
 
     TEST_ASSERT_OK(taskUnsafe());
 
+    rc = strcmp(taskName(taskIdSelf()),"peerTask");
+    TEST_ASSERT(rc == 0);
+    rc = strcmp(taskName(0),"peerTask");
+    TEST_ASSERT(rc == 0);
+
     TEST_MARK();
 }
 
+void peerTaskPrio18  (long a0, long a1, long a2, long a3, long a4,
+		long a5, long a6, long a7, long a8, long a9)
+{
+    int rc; 
+    int prio;
+    TEST_MARK();
+    taskPriorityGet(taskIdSelf(),&prio);
+    TEST_ASSERT(prio == 18);
+    TEST_MARK();
+    rc = strcmp(taskName(taskIdSelf()),"peerPrio18");
+    TEST_ASSERT(rc == 0);
+    rc = strcmp(taskName(0),"peerPrio18");
+    TEST_ASSERT(rc == 0);
+    TEST_MARK();
+}
+
+
+void peerTaskPrio20  (long a0, long a1, long a2, long a3, long a4,
+		long a5, long a6, long a7, long a8, long a9)
+{
+    int rc; 
+    int prio;
+    TEST_MARK();
+    taskPriorityGet(taskIdSelf(),&prio);
+    TEST_ASSERT(prio == 20);
+    TEST_MARK();
+    rc = strcmp(taskName(taskIdSelf()),"peerPrio20");
+    TEST_ASSERT(rc == 0);
+    rc = strcmp(taskName(0),"peerPrio20");
+    TEST_ASSERT(rc == 0);
+    TEST_MARK();
+}
+
+void peerTaskPrio21  (long a0, long a1, long a2, long a3, long a4,
+		long a5, long a6, long a7, long a8, long a9)
+{
+    int rc; 
+    int prio;
+    TEST_MARK();
+    taskPriorityGet(taskIdSelf(),&prio);
+    TEST_ASSERT(prio == 21);
+    TEST_MARK();
+    rc = strcmp(taskName(taskIdSelf()),"peerPrio21");
+    TEST_ASSERT(rc == 0);
+    rc = strcmp(taskName(0),"peerPrio21");
+    TEST_ASSERT(rc == 0);
+    TEST_MARK();
+    taskDelay(2);
+    TEST_MARK();
+}
+
 void rootTask (long a0, long a1, long a2, long a3, long a4,
 	       long a5, long a6, long a7, long a8, long a9)
 {
@@ -64,6 +124,8 @@
     WIND_TCB *pTcb;
     int prio = 0;
     TASK_ID id;
+    int rc = 0;
+    int tid18 = 0, tid20 = 0, tid21 = 0;
 
     TEST_START(0);
 
@@ -113,15 +175,101 @@
 
     TEST_MARK();
 
-    TEST_CHECK_SEQUENCE(SEQ("root",2),
-			SEQ("peerTask",2),
-			SEQ("root",1),
-			END_SEQ);
-
     TEST_ASSERT_OK(taskDelete((TASK_ID)&peerTcb));
 
     TEST_ASSERT(taskIdVerify((TASK_ID)&peerTcb)==ERROR);
 
+    TEST_ASSERT_OK(taskPrioritySet(taskIdSelf(),20));
+
+    TEST_ASSERT_OK(taskInit(&peerTcbPrio18,
+                "peerPrio18",
+                18,
+                0,
+                pstackBase,
+                stackSize,
+                peerTaskPrio18,
+                0,0,0,0,0,0,0,0,0,0));
+    TEST_MARK();
+    TEST_ASSERT_OK(taskActivate((TASK_ID)&peerTcbPrio18));
+
+    TEST_MARK();
+
+    rc = taskDelete((TASK_ID)&peerTcbPrio18);
+    TEST_ASSERT(rc == ERROR);
+    TEST_MARK();
+
+    TEST_ASSERT_OK(taskInit(&peerTcbPrio21,
+                "peerPrio21",
+                21,
+                0,
+                pstackBase,
+                stackSize,
+                peerTaskPrio21,
+                0,0,0,0,0,0,0,0,0,0));
+    TEST_MARK();
+    TEST_ASSERT_OK(taskActivate((TASK_ID)&peerTcbPrio21));
+
+    TEST_MARK();
+
+    taskDelay(1);
+    TEST_MARK();
+
+    TEST_ASSERT_OK(taskDelete((TASK_ID)&peerTcbPrio21));
+    TEST_MARK();
+
+    tid18 = taskSpawn("peerPrio18",                                     
+                18,                                               
+                0,  
+                32768,
+                peerTaskPrio18,
+                0,0,0,0,0,0,0,0,0,0);
+    TEST_ASSERT(tid18 != 0);
+    TEST_MARK();
+
+    tid20 = taskSpawn("peerPrio20",                                     
+                20,                                               
+                0,                                                
+                32768,
+                peerTaskPrio20,
+                0,0,0,0,0,0,0,0,0,0);
+    TEST_ASSERT(tid20 != 0);
+
+    TEST_MARK();
+
+    tid21 = taskSpawn("peerPrio21",                                     
+                21,                                               
+                0,                                                
+                32768,
+                peerTaskPrio21,
+                0,0,0,0,0,0,0,0,0,0);
+    TEST_ASSERT(tid21 != 0);
+
+    TEST_MARK();
+    taskDelay(1);
+    TEST_MARK();
+    TEST_ASSERT_OK(taskDelete(tid21));
+    errno = 0;
+    TEST_ASSERT(taskDelete(tid18) == ERROR && errno == S_objLib_OBJ_ID_ERROR);
+    errno = 0;
+    TEST_ASSERT(taskDelete(tid20) == ERROR && errno == S_objLib_OBJ_ID_ERROR);
+    TEST_MARK();
+
+    TEST_CHECK_SEQUENCE(SEQ("root",2),
+            SEQ("peerTask",2),
+            SEQ("root",1),
+            SEQ("peerTask",1),
+            SEQ("root",1),
+            SEQ("peerPrio18",3),
+            SEQ("root",4),
+            SEQ("peerPrio21",3),
+            SEQ("root",2),
+            SEQ("peerPrio18",3),
+            SEQ("root",3),
+            SEQ("peerPrio20",3),
+            SEQ("peerPrio21",3),
+            SEQ("root",2),
+            END_SEQ);
+
     TEST_FINISH();
 }
 
_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to