aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/isolateTests.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/scripts/isolateTests.py b/scripts/isolateTests.py
new file mode 100755
index 00000000..0290d13e
--- /dev/null
+++ b/scripts/isolateTests.py
@@ -0,0 +1,23 @@
+#!/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.
+
+import sys
+lines = sys.stdin.read().split('\n')
+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 += ['']
+for i in range(len(tests)):
+ open('test%d.sol' % i, 'w').write(tests[i])