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