pattern.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include <glib.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5. #include <stdio.h>
  6. #include "test.h"
  7. #define MATCH(pat,string,error_if,msg) \
  8. spec = g_pattern_spec_new (pat); \
  9. res = g_pattern_match_string (spec, string); \
  10. if (res == error_if) \
  11. return FAILED (msg " returned %s", res ? "TRUE" : "FALSE"); \
  12. g_pattern_spec_free (spec);
  13. #define TEST_MATCH(pat,string,n) MATCH (pat, string, FALSE, "MATCH " #n)
  14. #define TEST_NO_MATCH(pat,string,n) MATCH (pat, string,TRUE, "NO_MATCH " #n)
  15. RESULT
  16. test_pattern_spec ()
  17. {
  18. GPatternSpec *spec;
  19. gboolean res;
  20. /* spec = g_pattern_spec_new (NULL); */
  21. TEST_MATCH ("*", "hola", 1);
  22. TEST_MATCH ("hola", "hola", 2);
  23. TEST_MATCH ("????", "hola", 3);
  24. TEST_MATCH ("???a", "hola", 4);
  25. TEST_MATCH ("h??a", "hola", 5);
  26. TEST_MATCH ("h??*", "hola", 6);
  27. TEST_MATCH ("h*", "hola", 7);
  28. TEST_MATCH ("*hola", "hola", 8);
  29. TEST_MATCH ("*l*", "hola", 9);
  30. TEST_MATCH ("h*??", "hola", 10);
  31. TEST_MATCH ("h*???", "hola", 11);
  32. TEST_MATCH ("?o??", "hola", 12);
  33. TEST_MATCH ("*h*o*l*a*", "hola", 13);
  34. TEST_MATCH ("h*o*l*a", "hola", 14);
  35. TEST_MATCH ("h?*?", "hola", 15);
  36. TEST_NO_MATCH ("", "hola", 1);
  37. TEST_NO_MATCH ("?????", "hola", 2);
  38. TEST_NO_MATCH ("???", "hola", 3);
  39. TEST_NO_MATCH ("*o", "hola", 4);
  40. TEST_NO_MATCH ("h", "hola", 5);
  41. TEST_NO_MATCH ("h*????", "hola", 6);
  42. return OK;
  43. }
  44. static Test pattern_tests [] = {
  45. {"g_pattern_spec*", test_pattern_spec},
  46. {NULL, NULL}
  47. };
  48. DEFINE_TEST_GROUP_INIT(pattern_tests_init, pattern_tests)