diff options
author | chriseth <chris@ethereum.org> | 2016-12-07 18:29:37 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-07 18:29:37 +0800 |
commit | 740294f65ac78d57989820b5efe45f787069bc9d (patch) | |
tree | ab623e6d191827d1e79150f62f8b0450216144c9 /scripts/isolate_tests.py | |
parent | fd7561ed609c07ea38b8647982121d73be9224f7 (diff) | |
parent | 72f9a4a73eba906f349ccb3e577899d0f9add963 (diff) | |
download | dexon-solidity-740294f65ac78d57989820b5efe45f787069bc9d.tar dexon-solidity-740294f65ac78d57989820b5efe45f787069bc9d.tar.gz dexon-solidity-740294f65ac78d57989820b5efe45f787069bc9d.tar.bz2 dexon-solidity-740294f65ac78d57989820b5efe45f787069bc9d.tar.lz dexon-solidity-740294f65ac78d57989820b5efe45f787069bc9d.tar.xz dexon-solidity-740294f65ac78d57989820b5efe45f787069bc9d.tar.zst dexon-solidity-740294f65ac78d57989820b5efe45f787069bc9d.zip |
Merge pull request #1489 from federicobond/isolate-tests
Cleanup and fix scripts/isolate_tests.py
Diffstat (limited to 'scripts/isolate_tests.py')
-rwxr-xr-x | scripts/isolate_tests.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/scripts/isolate_tests.py b/scripts/isolate_tests.py new file mode 100755 index 00000000..91900aa6 --- /dev/null +++ b/scripts/isolate_tests.py @@ -0,0 +1,44 @@ +#!/usr/bin/python +# +# This script reads C++ source files and writes all +# multi-line strings into individual files. +# This can be used to extract the Solidity test cases +# into files for e.g. fuzz testing as +# scripts/isolate_tests.py test/libsolidity/* + +import sys + + +def extract_cases(path): + lines = open(path).read().splitlines() + + inside = False + tests = [] + + for l in lines: + if inside: + if l.strip().endswith(')";'): + inside = False + else: + tests[-1] += l + '\n' + else: + if l.strip().endswith('R"('): + inside = True + tests += [''] + + return tests + + +def write_cases(tests, start=0): + for i, test in enumerate(tests, start=start): + open('test%d.sol' % i, 'w').write(test) + + +if __name__ == '__main__': + files = sys.argv[1:] + + i = 0 + for path in files: + cases = extract_cases(path) + write_cases(cases, start=i) + i += len(cases) |