Home | History | Annotate | Download | only in tests
      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 
     17 using 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 
     26 int 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