xref: /freebsd/lib/libutil/tests/cpuset_test.c (revision 1d386b48a555f61cb7325543adbbb5c3f3407a66)
1*8093646bSBaptiste Daroussin #include <sys/cdefs.h>
2*8093646bSBaptiste Daroussin #include <sys/types.h>
3*8093646bSBaptiste Daroussin #include <sys/cpuset.h>
4*8093646bSBaptiste Daroussin 
5*8093646bSBaptiste Daroussin #include <stdio.h>
6*8093646bSBaptiste Daroussin #include <libutil.h>
7*8093646bSBaptiste Daroussin #include <atf-c.h>
8*8093646bSBaptiste Daroussin 
9*8093646bSBaptiste Daroussin ATF_TC(invalid);
ATF_TC_HEAD(invalid,tc)10*8093646bSBaptiste Daroussin ATF_TC_HEAD(invalid, tc)
11*8093646bSBaptiste Daroussin {
12*8093646bSBaptiste Daroussin 	atf_tc_set_md_var(tc, "descr", "Test invalid cpu");
13*8093646bSBaptiste Daroussin }
14*8093646bSBaptiste Daroussin 
ATF_TC_BODY(invalid,tc)15*8093646bSBaptiste Daroussin ATF_TC_BODY(invalid, tc)
16*8093646bSBaptiste Daroussin {
17*8093646bSBaptiste Daroussin 	cpuset_t mask;
18*8093646bSBaptiste Daroussin 	char testvalue[BUFSIZ];
19*8093646bSBaptiste Daroussin 
20*8093646bSBaptiste Daroussin 	snprintf(testvalue, sizeof(testvalue), "%d", CPU_SETSIZE + 1);
21*8093646bSBaptiste Daroussin 
22*8093646bSBaptiste Daroussin 	ATF_CHECK_EQ(cpuset_parselist(testvalue,  &mask), CPUSET_PARSE_INVALID_CPU);
23*8093646bSBaptiste Daroussin }
24*8093646bSBaptiste Daroussin 
25*8093646bSBaptiste Daroussin ATF_TC(invalidchar);
ATF_TC_HEAD(invalidchar,tc)26*8093646bSBaptiste Daroussin ATF_TC_HEAD(invalidchar, tc)
27*8093646bSBaptiste Daroussin {
28*8093646bSBaptiste Daroussin 	atf_tc_set_md_var(tc, "descr", "Test invalid char");
29*8093646bSBaptiste Daroussin }
30*8093646bSBaptiste Daroussin 
ATF_TC_BODY(invalidchar,tc)31*8093646bSBaptiste Daroussin ATF_TC_BODY(invalidchar, tc)
32*8093646bSBaptiste Daroussin {
33*8093646bSBaptiste Daroussin 	cpuset_t mask;
34*8093646bSBaptiste Daroussin 
35*8093646bSBaptiste Daroussin 	ATF_CHECK_EQ(cpuset_parselist("1+3",  &mask), CPUSET_PARSE_ERROR);
36*8093646bSBaptiste Daroussin }
37*8093646bSBaptiste Daroussin 
38*8093646bSBaptiste Daroussin ATF_TC(all);
ATF_TC_HEAD(all,tc)39*8093646bSBaptiste Daroussin ATF_TC_HEAD(all, tc)
40*8093646bSBaptiste Daroussin {
41*8093646bSBaptiste Daroussin 	atf_tc_set_md_var(tc, "descr", "Test 'all' special cpu-list");
42*8093646bSBaptiste Daroussin }
43*8093646bSBaptiste Daroussin 
ATF_TC_BODY(all,tc)44*8093646bSBaptiste Daroussin ATF_TC_BODY(all, tc)
45*8093646bSBaptiste Daroussin {
46*8093646bSBaptiste Daroussin 	cpuset_t mask;
47*8093646bSBaptiste Daroussin 
48*8093646bSBaptiste Daroussin 	ATF_CHECK_EQ(cpuset_parselist("all",  &mask), CPUSET_PARSE_OK);
49*8093646bSBaptiste Daroussin }
50*8093646bSBaptiste Daroussin 
51*8093646bSBaptiste Daroussin ATF_TC(normalsyntax);
ATF_TC_HEAD(normalsyntax,tc)52*8093646bSBaptiste Daroussin ATF_TC_HEAD(normalsyntax, tc)
53*8093646bSBaptiste Daroussin {
54*8093646bSBaptiste Daroussin 	atf_tc_set_md_var(tc, "descr", "Test normal cpu-list syntax");
55*8093646bSBaptiste Daroussin }
56*8093646bSBaptiste Daroussin 
ATF_TC_BODY(normalsyntax,tc)57*8093646bSBaptiste Daroussin ATF_TC_BODY(normalsyntax, tc)
58*8093646bSBaptiste Daroussin {
59*8093646bSBaptiste Daroussin 	cpuset_t mask;
60*8093646bSBaptiste Daroussin 
61*8093646bSBaptiste Daroussin 	ATF_CHECK_EQ(cpuset_parselist("1-3,6",  &mask), CPUSET_PARSE_OK);
62*8093646bSBaptiste Daroussin }
63*8093646bSBaptiste Daroussin 
ATF_TP_ADD_TCS(tp)64*8093646bSBaptiste Daroussin ATF_TP_ADD_TCS(tp)
65*8093646bSBaptiste Daroussin {
66*8093646bSBaptiste Daroussin 	ATF_TP_ADD_TC(tp, invalid);
67*8093646bSBaptiste Daroussin 	ATF_TP_ADD_TC(tp, invalidchar);
68*8093646bSBaptiste Daroussin 	ATF_TP_ADD_TC(tp, all);
69*8093646bSBaptiste Daroussin 	ATF_TP_ADD_TC(tp, normalsyntax);
70*8093646bSBaptiste Daroussin 	return (atf_no_error());
71*8093646bSBaptiste Daroussin }
72