diff options
Diffstat (limited to 'unitTests.py')
-rw-r--r-- | unitTests.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/unitTests.py b/unitTests.py index 40dd58b..cfc4e90 100644 --- a/unitTests.py +++ b/unitTests.py @@ -2046,6 +2046,21 @@ class PrecededByTest(ParseTestCase): "Erroneous named results for {0}: expected {1}, got {2}".format(expr, expected_dict, result.asDict())) + # infinite loop test - from Issue #127 + string_test = 'notworking' + # negs = pp.Or(['not', 'un'])('negs') + negs_pb = pp.PrecededBy('not', retreat=100)('negs_lb') + # negs_pb = pp.PrecededBy(negs, retreat=100)('negs_lb') + pattern = pp.Group(negs_pb + pp.Literal('working'))('main') + + results = pattern.searchString(string_test) + try: + print_(results.dump()) + except RecursionError: + self.assertTrue(False, "got maximum excursion limit exception") + else: + self.assertTrue(True, "got maximum excursion limit exception") + class CountedArrayTest(ParseTestCase): def runTest(self): |