#include "ace/ACE.h" #include "ace/Log_Msg.h" #include "test_config.h" bool match (const char *str, const char *pat, bool cs = true, bool cc = false) { bool const result = ACE::wild_match (str, pat, cs, cc); ACE_DEBUG ((LM_DEBUG, "string {%C} %C pattern {%C}\t%C\t%C\n", str, (result ? "matches" : "does not match"), pat, (cs ? "" : "case-insensitive"), (cc ? "char classes" : ""))); return result; } int run_main (int, ACE_TCHAR *[]) { ACE_START_TEST (ACE_TEXT ("Wild_Match_Test")); bool ok = true; ok &= match ("foo_baz_bar", "foo*bar"); ok &= match ("lksfj;laskf;jbaz", "*baz"); ok &= !match ("abc", "abc?"); ok &= match ("simple", "simple"); ok &= !match ("not so simple", "simple"); ok &= match ("AbC", "abc", false); ok &= match ("*\\", "\\*\\\\"); ok &= match ("Nonwild[foo]", "*[foo]"); ok &= match ("Apple][", "[zxya]p*[]125]\\[", false, true); ok &= match ("[!]", "[][!][][!][][!]", true, true); ok &= match ("ace", "[a-e][a-e][a-e]", true, true); ok &= match ("--x", "[-1][2-][!-]", true, true); ok &= !match ("C2", "[!C]?", true, true); ok &= match ("D1", "[!C]?", true, true); ok &= match ("D2", "[!C]?", true, true); ok &= !match ("C2", "?[!2]", true, true); ok &= match ("C1", "?[!2]", true, true); ok &= !match (0, "[!C]?", true, true); // invalid classes: results are undefined but we shouldn't crash match ("foo", "f[o-a]o", true, true); match ("bar", "[f-", true, true); match ("bar", "[z", true, true); match ("bar", "[]x", true, true); match ("foo", "[f-f]oo", true, true); if (!ok) { ACE_ERROR ((LM_ERROR, ACE_TEXT ("ERROR: Wild_Match_Test failed\n"))); } ACE_END_TEST; return ok ? 0 : 1; }