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