##// END OF EJS Templates
run-tests: make globmatch a static method of TTest
Gregory Szorc -
r21317:58a59978 default
parent child Browse files
Show More
@@ -695,32 +695,6 b' def escapef(m):'
695 695 def stringescape(s):
696 696 return escapesub(escapef, s)
697 697
698 def globmatch(el, l):
699 # The only supported special characters are * and ? plus / which also
700 # matches \ on windows. Escaping of these characters is supported.
701 if el + '\n' == l:
702 if os.altsep:
703 # matching on "/" is not needed for this line
704 return '-glob'
705 return True
706 i, n = 0, len(el)
707 res = ''
708 while i < n:
709 c = el[i]
710 i += 1
711 if c == '\\' and el[i] in '*?\\/':
712 res += el[i - 1:i + 1]
713 i += 1
714 elif c == '*':
715 res += '.*'
716 elif c == '?':
717 res += '.'
718 elif c == '/' and os.altsep:
719 res += '[/\\\\]'
720 else:
721 res += re.escape(c)
722 return TTest.rematch(res, l)
723
724 698 class TTest(Test):
725 699 """A "t test" is a test backed by a .t file."""
726 700
@@ -945,6 +919,33 b' class TTest(Test):'
945 919 return False
946 920
947 921 @staticmethod
922 def globmatch(el, l):
923 # The only supported special characters are * and ? plus / which also
924 # matches \ on windows. Escaping of these characters is supported.
925 if el + '\n' == l:
926 if os.altsep:
927 # matching on "/" is not needed for this line
928 return '-glob'
929 return True
930 i, n = 0, len(el)
931 res = ''
932 while i < n:
933 c = el[i]
934 i += 1
935 if c == '\\' and el[i] in '*?\\/':
936 res += el[i - 1:i + 1]
937 i += 1
938 elif c == '*':
939 res += '.*'
940 elif c == '?':
941 res += '.'
942 elif c == '/' and os.altsep:
943 res += '[/\\\\]'
944 else:
945 res += re.escape(c)
946 return TTest.rematch(res, l)
947
948 @staticmethod
948 949 def linematch(el, l):
949 950 if el == l: # perfect match (fast)
950 951 return True
@@ -956,7 +957,7 b' class TTest(Test):'
956 957 if el.endswith(" (re)\n"):
957 958 return TTest.rematch(el[:-6], l)
958 959 if el.endswith(" (glob)\n"):
959 return globmatch(el[:-8], l)
960 return TTest.globmatch(el[:-8], l)
960 961 if os.altsep and l.replace('\\', '/') == el:
961 962 return '+glob'
962 963 return False
General Comments 0
You need to be logged in to leave comments. Login now