18cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/**
28cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @file comma_list_tests.cpp
38cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
48cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Copyright 2003 OProfile authors
58cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Read the file COPYING
68cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
78cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author John Levon
88cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author Philippe Elie
98cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */
108cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
118cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <stdlib.h>
128cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
138cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <iostream>
148cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
158cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include "comma_list.h"
168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddusing namespace std;
188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#define check(clist, val, result) \
208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	if (clist.match(val) != result) { \
218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd		cerr << "\"" << #val << "\" matched with " #clist \
228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd		     << " did not return " #result << endl; \
238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd		exit(EXIT_FAILURE); \
248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	}
258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddint main()
278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{
288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	comma_list<int> c1;
298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c1, 1, true);
318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	c1.set("2");
338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c1, 2, true);
358cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c1, 3, false);
368cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
378cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	c1.set("3");
388cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
398cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c1, 2, false);
408cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c1, 3, true);
418cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
428cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	c1.set("2,3");
438cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
448cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c1, 2, true);
458cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c1, 3, true);
468cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c1, 4, false);
478cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
488cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	c1.set("all");
498cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
508cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c1, 2, true);
518cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c1, 4, true);
528cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c1, 5, true);
538cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
548cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	comma_list<int> c2;
558cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
568cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	c2.set("6,all");
578cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
588cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c2, 4, true);
598cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c2, 0, true);
608cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
618cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	c2.set("all,6");
628cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
638cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c2, 4, true);
648cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c2, 0, true);
658cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
668cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	c2.set("10");
678cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c2, 10, true);
688cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	check(c2, 11, false);
698cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	return EXIT_SUCCESS;
708cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}
71