diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2015-02-17 07:35:01 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2015-02-17 07:35:01 -0500 |
commit | ec82227213ac419d294f9f5019e9b94e81a71972 (patch) | |
tree | 090ee6de4ac8efdeb072307a6042991c026396dc /tests/test_arcs.py | |
parent | f7df6f04a5656f562105cf5001c11b9e10e04d2b (diff) | |
download | python-coveragepy-git-ec82227213ac419d294f9f5019e9b94e81a71972.tar.gz |
Properly handle crazy-long code objects. #359
Diffstat (limited to 'tests/test_arcs.py')
-rw-r--r-- | tests/test_arcs.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/test_arcs.py b/tests/test_arcs.py index d3717a88..42e10510 100644 --- a/tests/test_arcs.py +++ b/tests/test_arcs.py @@ -575,6 +575,27 @@ class MiscArcTest(CoverageTest): """, arcz=".1 19 9.") + def test_pathologically_long_code_object(self): + # https://bitbucket.org/ned/coveragepy/issue/359 + # The structure of this file is such that an EXTENDED_ARG byte code is + # needed to encode the jump at the end. We weren't interpreting those + # opcodes. + code = """\ + data = [ + """ + "".join("""\ + [{i}, {i}, {i}, {i}, {i}, {i}, {i}, {i}, {i}, {i}], + """.format(i=i) for i in range(2000) + ) + """\ + ] + + if __name__ == "__main__": + print(len(data)) + """ + self.check_coverage( + code, + arcs=[(-1, 1), (1, 2004), (2004, -2), (2004, 2005), (2005, -2)], + ) + class ExcludeTest(CoverageTest): """Tests of exclusions to indicate known partial branches.""" |