diff --git a/src/libCom/test/epicsStringTest.c b/src/libCom/test/epicsStringTest.c index e9dea2fb2..d7a91bcfd 100644 --- a/src/libCom/test/epicsStringTest.c +++ b/src/libCom/test/epicsStringTest.c @@ -19,6 +19,7 @@ #include "epicsString.h" #include "testMain.h" +static void testChars(void) { int i; char input[2] = {0, 0}; @@ -38,6 +39,41 @@ void testChars(void) { } } +static +void testGlob(void) { + testOk1(epicsStrGlobMatch("xyz","xyz")); + testOk1(!epicsStrGlobMatch("xyz","xyzm")); + testOk1(!epicsStrGlobMatch("xyzm","xyz")); + testOk1(!epicsStrGlobMatch("","xyzm")); + testOk1(!epicsStrGlobMatch("xyz","")); + testOk1(epicsStrGlobMatch("","")); + + testOk1(epicsStrGlobMatch("","*")); + testOk1(!epicsStrGlobMatch("","?")); + testOk1(!epicsStrGlobMatch("","?*")); + + testOk1(epicsStrGlobMatch("hello","h*o")); + testOk1(!epicsStrGlobMatch("hello","h*x")); + testOk1(!epicsStrGlobMatch("hellx","h*o")); + + testOk1(epicsStrGlobMatch("hello","he?lo")); + testOk1(!epicsStrGlobMatch("hello","he?xo")); + testOk1(epicsStrGlobMatch("hello","he??o")); + testOk1(!epicsStrGlobMatch("helllo","he?lo")); + + testOk1(epicsStrGlobMatch("hello world","he*o w*d")); + testOk1(!epicsStrGlobMatch("hello_world","he*o w*d")); + testOk1(epicsStrGlobMatch("hello world","he**d")); + + testOk1(epicsStrGlobMatch("hello hello world","he*o w*d")); + + testOk1(!epicsStrGlobMatch("hello hello xorld","he*o w*d")); + + testOk1(epicsStrGlobMatch("hello","he*")); + testOk1(epicsStrGlobMatch("hello","*lo")); + testOk1(epicsStrGlobMatch("hello","*")); +} + MAIN(epicsStringTest) { const char * const empty = ""; @@ -50,7 +86,7 @@ MAIN(epicsStringTest) const char * const abcde = "abcde"; char *s; - testPlan(281); + testPlan(305); testChars(); @@ -85,5 +121,7 @@ MAIN(epicsStringTest) testOk1(epicsStrHash(abcd, 0) == epicsMemHash(abcde, 4, 0)); testOk1(epicsStrHash(abcd, 0) != epicsMemHash("abcd\0", 5, 0)); + testGlob(); + return testDone(); }