summaryrefslogtreecommitdiff
path: root/tools/benchmark_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/benchmark_test.py')
-rwxr-xr-xtools/benchmark_test.py119
1 files changed, 51 insertions, 68 deletions
diff --git a/tools/benchmark_test.py b/tools/benchmark_test.py
index 9905d7d0e..92eb6d5ee 100755
--- a/tools/benchmark_test.py
+++ b/tools/benchmark_test.py
@@ -3,74 +3,57 @@
import sys
import os
import benchmark
-from util import build_path, executable_suffix
-
-
-def strace_parse_test():
- with open(os.path.join(sys.path[0], "testdata/strace_summary.out"),
- "r") as f:
- summary = benchmark.strace_parse(f.read())
- # first syscall line
- assert summary["munmap"]["calls"] == 60
- assert summary["munmap"]["errors"] == 0
- # line with errors
- assert summary["mkdir"]["errors"] == 2
- # last syscall line
- assert summary["prlimit64"]["calls"] == 2
- assert summary["prlimit64"]["% time"] == 0
- # summary line
- assert summary["total"]["calls"] == 704
-
-
-def max_mem_parse_test():
- with open(os.path.join(sys.path[0], "testdata/time.out"), "r") as f:
- data = f.read()
- assert benchmark.find_max_mem_in_bytes(data) == 120380 * 1024
-
-
-def binary_size_test(build_dir):
- binary_size_dict = benchmark.get_binary_sizes(build_dir)
- assert binary_size_dict["deno"] > 0
- assert binary_size_dict["main.js"] > 0
- assert binary_size_dict["main.js.map"] > 0
- assert binary_size_dict["snapshot_deno.bin"] > 0
-
-
-def strace_test(deno_path):
- new_data = {}
- benchmark.run_strace_benchmarks(deno_path, new_data)
- assert "thread_count" in new_data
- assert "syscall_count" in new_data
-
- s = new_data["thread_count"]
- assert "hello" in s
- assert s["hello"] > 1
-
- s = new_data["syscall_count"]
- assert "hello" in s
- assert s["hello"] > 1
-
-
-def benchmark_test(build_dir, deno_path):
- strace_parse_test()
- binary_size_test(build_dir)
- max_mem_parse_test()
- if "linux" in sys.platform:
- strace_test(deno_path)
-
-
-# This test assumes tools/http_server.py is running in the background.
-def main():
- if len(sys.argv) == 2:
- build_dir = sys.argv[1]
- elif len(sys.argv) == 1:
- build_dir = build_path()
- else:
- print "Usage: tools/benchmark_test.py [build_dir]"
- sys.exit(1)
- deno_exe = os.path.join(build_dir, "deno" + executable_suffix)
- benchmark_test(build_dir, deno_exe)
+import unittest
+from util import DenoTestCase, test_main
+
+
+class TestBenchmark(DenoTestCase):
+ def test_strace_parse(self):
+ with open(
+ os.path.join(sys.path[0], "testdata/strace_summary.out"),
+ "r") as f:
+ summary = benchmark.strace_parse(f.read())
+ # first syscall line
+ assert summary["munmap"]["calls"] == 60
+ assert summary["munmap"]["errors"] == 0
+ # line with errors
+ assert summary["mkdir"]["errors"] == 2
+ # last syscall line
+ assert summary["prlimit64"]["calls"] == 2
+ assert summary["prlimit64"]["% time"] == 0
+ # summary line
+ assert summary["total"]["calls"] == 704
+
+ def test_max_mem_parse(self):
+ with open(os.path.join(sys.path[0], "testdata/time.out"), "r") as f:
+ data = f.read()
+ assert benchmark.find_max_mem_in_bytes(data) == 120380 * 1024
+
+ def test_binary_size(self):
+ binary_size_dict = benchmark.get_binary_sizes(self.build_dir)
+ assert binary_size_dict["deno"] > 0
+ assert binary_size_dict["main.js"] > 0
+ assert binary_size_dict["main.js.map"] > 0
+ assert binary_size_dict["snapshot_deno.bin"] > 0
+
+ @unittest.skipIf("linux" not in sys.platform,
+ "strace only supported on linux")
+ def test_strace(self):
+ new_data = {}
+ benchmark.run_strace_benchmarks(self.deno_exe, new_data)
+ assert "thread_count" in new_data
+ assert "syscall_count" in new_data
+
+ s = new_data["thread_count"]
+ assert "hello" in s
+ assert s["hello"] > 1
+
+ s = new_data["syscall_count"]
+ assert "hello" in s
+ assert s["hello"] > 1
if __name__ == '__main__':
- main()
+ # FIME this doesn't appear to be the case.
+ # This test assumes tools/http_server.py is running in the background.
+ test_main()