updated to new flag functions
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Fri, 5 Mar 2004 03:17:24 +0000 (03:17 +0000)
committerEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Fri, 5 Mar 2004 03:17:24 +0000 (03:17 +0000)
git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1072 94cd875c-1c1d-0410-91d2-eb244daf1a30

util-vserver/lib/testsuite/flags.c

index 45b70c1..239b1f1 100644 (file)
 #include <assert.h>
 #include <string.h>
 
-#define TEST_T2F(X,Y,Z) assert(vc_text2flag(X,Y)==Z)
-#define TEST_F2T(Y,X) {                                \
-    char const *x=vc_hiflag2text(X);           \
+#define TEST_T2F_C(X,Y,Z) assert(vc_text2flag_compat(X,Y)==Z)
+#define TEST_F2T_C(Y,X) {                      \
+    char const *x=vc_hiflag2text_compat(X);    \
     assert((x==0 && Y==0) || (x!=0 && Y!=0));  \
     if (x!=0) assert(strcmp(x, Y)==0);         \
   }
 
-#define TEST_LIST(STR,LEN,EXP,ERR_POS,ERR_LEN) {               \
+#define TEST_LIST_C(STR,LEN,EXP,ERR_POS,ERR_LEN) {             \
     char const *err_ptr;                                       \
     size_t     err_len;                                        \
     char       buf[] = STR;                                    \
     uint32_t   res;                                            \
-    res = vc_textlist2flag(buf, LEN, &err_ptr, &err_len);      \
+    res = vc_list2flag_compat(buf, LEN, &err_ptr, &err_len);   \
     assert(res==(EXP));                                                \
     assert(err_len==ERR_LEN);                                  \
     if (ERR_POS==-1) assert(err_ptr==0);                       \
     else             assert(err_ptr==buf+(ERR_POS));           \
   }
 
+//----
+
+#define TEST_T2F(X,Y,Z) assert(vc_text2flag(X,Y)==Z)
+#define TEST_F2T(Y,X) {                                \
+    char const *x=vc_hiflag2text(X);           \
+    assert((x==0 && Y==0) || (x!=0 && Y!=0));  \
+    if (x!=0) assert(strcmp(x, Y)==0);         \
+  }
+#define TEST_LIST(STR,LEN,EXP_RES,EXP_FLAG,EXP_MASK,ERR_POS,ERR_LEN) { \
+    char const         *err_ptr;                                       \
+    size_t             err_len;                                        \
+    char               buf[] = STR;                                    \
+    volatile int       res;                                            \
+    uint_least64_t     flag=0,mask=0;                                  \
+    res = vc_list2flag(buf, LEN, &err_ptr, &err_len, &flag, &mask);    \
+    assert(res==(EXP_RES));                                            \
+    assert(flag==(EXP_FLAG) && mask==(EXP_MASK));                      \
+    assert(err_len==ERR_LEN);                                          \
+    if (ERR_POS==-1) assert(err_ptr==0);                               \
+    else             assert(err_ptr==buf+(ERR_POS));                   \
+  }
+
 
 int main()
 {
-  TEST_T2F("lock",     0, S_CTX_INFO_LOCK);
-  TEST_T2F("lockXXXX", 4, S_CTX_INFO_LOCK);
-  TEST_T2F("locXXXXX", 3, 0);
-  TEST_T2F("sched",    0, S_CTX_INFO_SCHED);
-  TEST_T2F("nproc",    0, S_CTX_INFO_NPROC);
-  TEST_T2F("private",  0, S_CTX_INFO_PRIVATE);
+  TEST_T2F_C("lock",     0, S_CTX_INFO_LOCK);
+  TEST_T2F_C("lockXXXX", 4, S_CTX_INFO_LOCK);
+  TEST_T2F_C("locXXXXX", 3, 0);
+  TEST_T2F_C("sched",    0, S_CTX_INFO_SCHED);
+  TEST_T2F_C("nproc",    0, S_CTX_INFO_NPROC);
+  TEST_T2F_C("private",  0, S_CTX_INFO_PRIVATE);
+  TEST_T2F_C("fakeinit", 0, S_CTX_INFO_INIT);
+  TEST_T2F_C("hideinfo", 0, S_CTX_INFO_HIDEINFO);
+  TEST_T2F_C("ulimit",   0, S_CTX_INFO_ULIMIT);
+  TEST_T2F_C("XXX",      0, 0);
+  TEST_T2F_C("",         0, 0);
+
+  TEST_F2T_C("lock",     S_CTX_INFO_LOCK);
+  TEST_F2T_C("sched",    S_CTX_INFO_SCHED);
+  TEST_F2T_C("nproc",    S_CTX_INFO_NPROC);
+  TEST_F2T_C("private",  S_CTX_INFO_PRIVATE);
+  TEST_F2T_C("fakeinit", S_CTX_INFO_INIT);
+  TEST_F2T_C("hideinfo", S_CTX_INFO_HIDEINFO);
+  TEST_F2T_C("ulimit",   S_CTX_INFO_ULIMIT);
+  TEST_F2T_C(0,          0);
+  TEST_F2T_C("ulimit",   64 | 128 | 23 );
+  TEST_F2T_C("fakeinit", 23);
+
+  TEST_LIST_C("lock",         0, S_CTX_INFO_LOCK,                  -1,0);
+  TEST_LIST_C("lock,sched,",  0, S_CTX_INFO_LOCK|S_CTX_INFO_SCHED, -1,0);
+  TEST_LIST_C("lock,XXX",     0, S_CTX_INFO_LOCK,                   5,3);
+  TEST_LIST_C("",             0, 0,                                -1,0);
+  TEST_LIST_C("X",            0, 0,                                 0,1);
+  TEST_LIST_C("lock,sched,", 10, S_CTX_INFO_LOCK|S_CTX_INFO_SCHED, -1,0);
+
+  //-------
+
   TEST_T2F("fakeinit", 0, S_CTX_INFO_INIT);
-  TEST_T2F("hideinfo", 0, S_CTX_INFO_HIDEINFO);
-  TEST_T2F("ulimit",   0, S_CTX_INFO_ULIMIT);
   TEST_T2F("XXX",      0, 0);
   TEST_T2F("",         0, 0);
-
-  TEST_F2T("lock",     S_CTX_INFO_LOCK);
-  TEST_F2T("sched",    S_CTX_INFO_SCHED);
-  TEST_F2T("nproc",    S_CTX_INFO_NPROC);
-  TEST_F2T("private",  S_CTX_INFO_PRIVATE);
+  
   TEST_F2T("fakeinit", S_CTX_INFO_INIT);
-  TEST_F2T("hideinfo", S_CTX_INFO_HIDEINFO);
-  TEST_F2T("ulimit",   S_CTX_INFO_ULIMIT);
   TEST_F2T(0,          0);
-  TEST_F2T("ulimit",   64 | 128 | 23 );
-  TEST_F2T("fakeinit", 23);
-
-  TEST_LIST("lock",         0, S_CTX_INFO_LOCK,                  -1,0);
-  TEST_LIST("lock,sched,",  0, S_CTX_INFO_LOCK|S_CTX_INFO_SCHED, -1,0);
-  TEST_LIST("lock,XXX",     0, S_CTX_INFO_LOCK,                   5,3);
-  TEST_LIST("",             0, 0,                                -1,0);
-  TEST_LIST("X",            0, 0,                                 0,1);
-  TEST_LIST("lock,sched,", 10, S_CTX_INFO_LOCK|S_CTX_INFO_SCHED, -1,0);
 
+  TEST_LIST("fakeinit",     0,  0, S_CTX_INFO_INIT, S_CTX_INFO_INIT,-1,0);
+  TEST_LIST("~fakeinit",    0,  0, 0,               S_CTX_INFO_INIT,-1,0);
+  TEST_LIST("!fakeinit",    0,  0, 0,               S_CTX_INFO_INIT,-1,0);
+  TEST_LIST("fakeinit,XXX", 0, -1, S_CTX_INFO_INIT, S_CTX_INFO_INIT, 9,3);
+  TEST_LIST("",             0,  0, 0,               0,              -1,0);
+  TEST_LIST("X",            0, -1, 0,               0,               0,1);
+  
   return 0;
 }