diff --git a/tests/extmod/ure_split.py b/tests/extmod/ure_split.py index 3f7718813f..620fd9052b 100644 --- a/tests/extmod/ure_split.py +++ b/tests/extmod/ure_split.py @@ -19,16 +19,6 @@ r = re.compile(" +") s = r.split("a b c foobar", 2) print(s) -r = re.compile(" *") -s = r.split("a b c foobar") -# TODO - no idea how this is supposed to work, per docs, empty match == stop -# splitting, so CPython code apparently does some dirty magic. -#print(s) - -r = re.compile("x*") -s = r.split("foo") -print(s) - r = re.compile("[a-f]+") s = r.split("0a3b9") print(s) diff --git a/tests/extmod/ure_split_empty.py b/tests/extmod/ure_split_empty.py new file mode 100644 index 0000000000..6f31e6dc6c --- /dev/null +++ b/tests/extmod/ure_split_empty.py @@ -0,0 +1,19 @@ +# test splitting with pattern matches that can be empty +# +# CPython 3.5 issues a FutureWarning for these tests because their +# behaviour will change in a future version. MicroPython just stops +# splitting as soon as an empty match is found. + +import ure as re + +r = re.compile(" *") +s = r.split("a b c foobar") +print(s) + +r = re.compile("x*") +s = r.split("foo") +print(s) + +r = re.compile("x*") +s = r.split("axbc") +print(s) diff --git a/tests/extmod/ure_split_empty.py.exp b/tests/extmod/ure_split_empty.py.exp new file mode 100644 index 0000000000..42cfea0d5d --- /dev/null +++ b/tests/extmod/ure_split_empty.py.exp @@ -0,0 +1,3 @@ +['a b c foobar'] +['foo'] +['axbc']