|
|
@@ -0,0 +1,52 @@
|
|
|
+#!/usr/bin/python
|
|
|
+#
|
|
|
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
|
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
+#
|
|
|
+
|
|
|
+import os
|
|
|
+import sys
|
|
|
+import time
|
|
|
+import subprocess
|
|
|
+from optparse import OptionParser
|
|
|
+
|
|
|
+
|
|
|
+# You can run different runtime by changing the arg '-r':
|
|
|
+# python malformed_test.py -r /path/to/iwasm
|
|
|
+# python malformed_test.py -r /path/to/wasmtime
|
|
|
+# python malformed_test.py -r "/path/to/wasmer run"
|
|
|
+
|
|
|
+
|
|
|
+optParser = OptionParser()
|
|
|
+optParser.add_option("-r", "--run", dest="run",
|
|
|
+ default="iwasm",
|
|
|
+ help="specify a runtime [path/to]([iwasm] / wasmtime / wasmer run)")
|
|
|
+
|
|
|
+(options, args) = optParser.parse_args()
|
|
|
+#optParser.usage = "%prog [options]"
|
|
|
+
|
|
|
+succ_cnt = 0
|
|
|
+fail_cnt = 0
|
|
|
+
|
|
|
+test_start = time.time()
|
|
|
+for root, dirs, files in os.walk("."):
|
|
|
+ for file in files:
|
|
|
+ if len(file.split('.')) < 2 or file.split('.')[1] != 'wasm':
|
|
|
+ continue
|
|
|
+ filepath=os.path.join(root, file)
|
|
|
+ cmd = options.run + " " + filepath
|
|
|
+ test_out = subprocess.getoutput(cmd)
|
|
|
+
|
|
|
+ if not test_out.startswith("Segmentation fault"):
|
|
|
+ print("test {:40} ........ [PASSED]".format(filepath))
|
|
|
+ succ_cnt += 1
|
|
|
+ else:
|
|
|
+ print("test {:40} ........ [FAILED]".format(filepath))
|
|
|
+ print(test_out)
|
|
|
+ print('\n')
|
|
|
+ fail_cnt += 1
|
|
|
+test_end = time.time()
|
|
|
+
|
|
|
+print("\n##################### MALFORMED TEST ########################")
|
|
|
+print("run {} test cases in {}ms, {} passed, {} failed"
|
|
|
+ .format(succ_cnt + fail_cnt, test_end - test_start, succ_cnt, fail_cnt))
|