string_filter_tests.cpp revision 8cfa702f803c5ef6a2b062a489a1b2cf66b45b5e
18cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/** 28cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @file string_filter_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 "string_filter.h" 168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddusing namespace std; 188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#define check(filter, str, result) \ 208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd if (filter.match(str) != result) { \ 218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd cerr << "\"" << str << "\" matched with " #filter \ 228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd << " did not return " #result << endl; \ 238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd exit(EXIT_FAILURE); \ 248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd } 258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddint main() 278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{ 288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string_filter f1; 298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f1, "", true); 308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f1, "ok", true); 318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string_filter f2("ok", ""); 338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f2, "ok", true); 348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f2, "no", false); 358cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 368cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string_filter f3("", "no"); 378cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f3, "ok", true); 388cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f3, "no", false); 398cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 408cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string_filter f4("ok,ok2,", ""); 418cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f4, "ok", true); 428cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f4, "ok2", true); 438cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f4, "no", false); 448cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 458cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string_filter f5("ok,ok2", "no,no2"); 468cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f5, "ok", true); 478cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f5, "ok2", true); 488cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f5, "no", false); 498cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f5, "no2", false); 508cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 518cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd vector<string> v1; 528cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd vector<string> v2; 538cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 548cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string_filter f6(v1, v2); 558cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f6, "", true); 568cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f6, "ok", true); 578cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 588cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd v1.push_back("ok"); 598cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd v1.push_back("ok2"); 608cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 618cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string_filter f7(v1, v2); 628cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f7, "ok", true); 638cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f7, "ok2", true); 648cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f7, "no", false); 658cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 668cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd v1.clear(); 678cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 688cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd v2.push_back("no"); 698cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd v2.push_back("no2"); 708cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 718cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string_filter f8(v1, v2); 728cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f8, "ok", true); 738cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f8, "no", false); 748cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f8, "no", false); 758cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 768cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd v1.push_back("ok"); 778cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd v1.push_back("ok2"); 788cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 798cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string_filter f9(v1, v2); 808cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f9, "ok", true); 818cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f9, "no2", false); 828cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 838cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd string_filter f10(" foo ", ""); 848cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f10, " foo ", true); 858cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f10, " foo", false); 868cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f10, "foo ", false); 878cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd check(f10, "foo", false); 888cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 898cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd return EXIT_SUCCESS; 908cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd} 91