X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Flib%2Ftestsuite%2Fcflags.c;h=897def8a71281655875c31c6edf3ad190aef4533;hb=a0fc0a49a28cbb2cd0752044b60a3dafc8834d7b;hp=e632904206e5af64c017b79ea8b8602178cc65ee;hpb=f3f32cef24ab2e6127b3e8cf4f8384db57f432af;p=util-vserver.git diff --git a/util-vserver/lib/testsuite/cflags.c b/util-vserver/lib/testsuite/cflags.c index e632904..897def8 100644 --- a/util-vserver/lib/testsuite/cflags.c +++ b/util-vserver/lib/testsuite/cflags.c @@ -20,15 +20,18 @@ # include #endif +#include "lib_internal/coreassert.h" #include "vserver.h" -#include + #include +#include + #define TEST_T2F_C(X,Y,Z) assert(vc_text2cflag_compat(X,Y)==Z) -#define TEST_F2T_C(Y,X) { \ - char const *x=vc_hicflag2text_compat(X); \ - assert((x==0 && Y==0) || (x!=0 && Y!=0)); \ - if (x!=0) assert(strcmp(x, Y)==0); \ +#define TEST_F2T_C(Y,X) { \ + char const *x=vc_hicflag2text_compat(X); \ + assert((x==0 && Y==0) || (x!=0 && Y!=0)); \ + if (x!=0 && Y!=0) assert(strcmp(x, Y)==0); \ } #define TEST_LIST_C(STR,LEN,EXP,ERR_POS,ERR_LEN) { \ @@ -45,21 +48,21 @@ //---- #define TEST_T2F(X,Y,Z) assert(vc_text2cflag(X,Y)==Z) -#define TEST_F2T(Y,X) { \ - uint_least64_t x = (X); \ - char const *rc=vc_locflag2text(&x); \ - assert((rc==0 && Y==0) || (rc!=0 && Y!=0)); \ - if (rc!=0) assert(strcmp(rc, Y)==0); \ +#define TEST_F2T(Y,X) { \ + uint_least64_t x = (X); \ + char const *rc=vc_locflag2text(&x); \ + assert((rc==0 && Y==0) || (rc!=0 && Y!=0)); \ + if (rc!=0 && Y!=0) assert(strcmp(rc, Y)==0); \ } #define TEST_LIST(STR,LEN,EXP_RES,EXP_FLAG,EXP_MASK,ERR_POS,ERR_LEN) { \ struct vc_err_listparser err; \ char buf[] = STR; \ volatile int res; \ struct vc_ctx_flags flags = {0,0}; \ - res = vc_list2cflag(buf, LEN, &err, &flags); \ + res = vc_list2cflag(buf, LEN, &err, &flags); \ assert(res==(EXP_RES)); \ - assert(flags.flagword==(EXP_FLAG)); \ - assert(flags.mask ==(EXP_MASK)); \ + assert(flags.flagword==(uint_least64_t)(EXP_FLAG)); \ + assert(flags.mask ==(uint_least64_t)(EXP_MASK)); \ assert(err.len==ERR_LEN); \ if (ERR_POS==-1) assert(err.ptr==0); \ else assert(err.ptr==buf+(ERR_POS)); \ @@ -109,10 +112,13 @@ int main() TEST_F2T(0, 0); TEST_LIST("fakeinit", 0, 0, VC_VXF_INFO_INIT, VC_VXF_INFO_INIT,-1,0); + TEST_LIST("FaKeInIt", 0, 0, VC_VXF_INFO_INIT, VC_VXF_INFO_INIT,-1,0); TEST_LIST("~fakeinit", 0, 0, 0, VC_VXF_INFO_INIT,-1,0); TEST_LIST("!fakeinit", 0, 0, 0, VC_VXF_INFO_INIT,-1,0); TEST_LIST("fakeinit,XXX", 0, -1, VC_VXF_INFO_INIT, VC_VXF_INFO_INIT, 9,3); TEST_LIST("", 0, 0, 0, 0, -1,0); + TEST_LIST("0", 0, 0, 0, 0, -1,0); + TEST_LIST("00", 0, 0, 0, 0, -1,0); TEST_LIST("X", 0, -1, 0, 0, 0,1); TEST_LIST("all", 0, 0, ALL64, ALL64, -1,0); TEST_LIST("ALL", 0, 0, ALL64, ALL64, -1,0); @@ -120,18 +126,37 @@ int main() TEST_LIST("ANY", 0, 0, ALL64, ALL64, -1,0); TEST_LIST("~all", 0, 0, 0, ALL64, -1,0); TEST_LIST("~ALL", 0, 0, 0, ALL64, -1,0); - TEST_LIST("all,~fakeinit",0, 0, ~VC_VXF_INFO_INIT,ALL64, -1,0); - TEST_LIST("~all,fakeinit",0, 0, VC_VXF_INFO_INIT, ALL64, -1,0); + TEST_LIST("none", 0, 0, 0, 0, -1,0); + TEST_LIST("NONE", 0, 0, 0, 0, -1,0); + TEST_LIST("~none", 0, 0, 0, 0, -1,0); + TEST_LIST("~NONE", 0, 0, 0, 0, -1,0); + TEST_LIST("all,~fakeinit",0, 0, ~VC_VXF_INFO_INIT,ALL64, -1,0); + TEST_LIST("~all,fakeinit",0, 0, VC_VXF_INFO_INIT, ALL64, -1,0); TEST_LIST("fakeinit,~all",0, 0, 0, ALL64, -1,0); + TEST_LIST("none,~lock", 0, 0, 0, VC_VXF_INFO_LOCK,-1,0); + TEST_LIST("~none,lock", 0, 0, VC_VXF_INFO_LOCK,VC_VXF_INFO_LOCK,-1,0); + TEST_LIST("lock,none", 0, 0, VC_VXF_INFO_LOCK,VC_VXF_INFO_LOCK,-1,0); + TEST_LIST("lock,~none", 0, 0, VC_VXF_INFO_LOCK,VC_VXF_INFO_LOCK,-1,0); TEST_LIST("~", 0, -1, 0, 0, 1,0); + TEST_LIST("~~", 0, -1, 0, 0, 2,0); + TEST_LIST("!", 0, -1, 0, 0, 1,0); + TEST_LIST("^", 0, -1, 0, 0, 1,0); TEST_LIST("fakeinit,~", 0, -1, VC_VXF_INFO_INIT, VC_VXF_INFO_INIT,10,0); TEST_LIST("1", 0, 0, 1, 1, -1,0); TEST_LIST("1,23,42", 0, 0, 1|23|42, 1|23|42, -1,0); TEST_LIST("~1", 0, 0, 0, 1, -1,0); + TEST_LIST("!1", 0, 0, 0, 1, -1,0); + TEST_LIST("~~1", 0, 0, 1, 1, -1,0); + TEST_LIST("~~~1", 0, 0, 0, 1, -1,0); + TEST_LIST("~!~1", 0, 0, 0, 1, -1,0); TEST_LIST("42,fakeinit", 0, 0, VC_VXF_INFO_INIT|42, VC_VXF_INFO_INIT|42, -1,0); TEST_LIST("42x,1", 0, -1, 0, 0, 0,3); TEST_LIST("^4,~^2", 0, 0, 0x10, 0x14, -1,0); + TEST_LIST("^4,~~^2", 0, 0, 0x14, 0x14, -1,0); + TEST_LIST("^4,~~~^2", 0, 0, 0x10, 0x14, -1,0); + TEST_LIST("~^2,^4", 0, 0, 0x10, 0x14, -1,0); + TEST_LIST("1,^1,~^2,8", 0, 0, 0x0b, 0x0f, -1,0); TEST_LIST("lock,nproc,private,fakeinit,hideinfo,ulimit,namespace," "sched_hard,sched_prio,sched_pause," @@ -172,4 +197,3 @@ int main() return 0; } -