pattern.c 1.5 KB

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