1/**
2 * @file comma_list_tests.cpp
3 *
4 * @remark Copyright 2003 OProfile authors
5 * @remark Read the file COPYING
6 *
7 * @author John Levon
8 * @author Philippe Elie
9 */
10
11#include <stdlib.h>
12
13#include <iostream>
14
15#include "comma_list.h"
16
17using namespace std;
18
19#define check(clist, val, result) \
20	if (clist.match(val) != result) { \
21		cerr << "\"" << #val << "\" matched with " #clist \
22		     << " did not return " #result << endl; \
23		exit(EXIT_FAILURE); \
24	}
25
26int main()
27{
28	comma_list<int> c1;
29
30	check(c1, 1, true);
31
32	c1.set("2");
33
34	check(c1, 2, true);
35	check(c1, 3, false);
36
37	c1.set("3");
38
39	check(c1, 2, false);
40	check(c1, 3, true);
41
42	c1.set("2,3");
43
44	check(c1, 2, true);
45	check(c1, 3, true);
46	check(c1, 4, false);
47
48	c1.set("all");
49
50	check(c1, 2, true);
51	check(c1, 4, true);
52	check(c1, 5, true);
53
54	comma_list<int> c2;
55
56	c2.set("6,all");
57
58	check(c2, 4, true);
59	check(c2, 0, true);
60
61	c2.set("all,6");
62
63	check(c2, 4, true);
64	check(c2, 0, true);
65
66	c2.set("10");
67	check(c2, 10, true);
68	check(c2, 11, false);
69	return EXIT_SUCCESS;
70}
71