blob: e88a3ed5a967e0cccf4544a5c6e1cf6b25b94a5c [file] [log] [blame]
Mike Dodd8cfa7022010-11-17 11:12:26 -08001/**
2 * @file glob_filter_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 "glob_filter.h"
16
17using namespace std;
18
19#define check(filter, str, result) \
20 if (filter.match(str) != result) { \
21 cerr << "\"" << str << "\" matched with " #filter \
22 << " did not return " #result << endl; \
23 exit(EXIT_FAILURE); \
24 }
25
26int main()
27{
28 glob_filter f1("foo,*bar", "foobar");
29 check(f1, "foo/barfoobar", true);
30 check(f1, "foo/bar", true);
31 check(f1, "/foo/foobar/foo", false);
32 check(f1, "fooobar1", false);
33 check(f1, "foo1", false);
34 check(f1, "foobar", false);
35 check(f1, "bar1", false);
36
37 glob_filter f2("foo", "");
38 check(f2, "foo", true);
39 check(f2, "foo1", false);
40 check(f2, "foo/foo", false);
41
42 glob_filter f3("", "foo");
43 check(f3, "foo", false);
44 check(f3, "foo1", true);
45 check(f3, "foo/foo", true);
46
47 glob_filter f4("foo", "foo");
48 check(f4, "foo", false);
49 check(f4, "foo1", false);
50 check(f4, "foo/foo", false);
51
52 return EXIT_SUCCESS;
53}