diff --git a/.github/workflows/es-actions.yml b/.github/workflows/es-actions.yml index 4ee0a67ba..e54069260 100644 --- a/.github/workflows/es-actions.yml +++ b/.github/workflows/es-actions.yml @@ -268,7 +268,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - tc: ['octane', 'v8 chakracore spidermonkey', 'jetstream-only-simple-parallel-1', 'jetstream-only-simple-parallel-2 jsc-stress', 'jetstream-only-simple-parallel-3 jetstream-only-cdjs'] + tc: ['new-es octane', 'v8 chakracore spidermonkey', 'jetstream-only-simple-parallel-1', 'jetstream-only-simple-parallel-2 jsc-stress', 'jetstream-only-simple-parallel-3 jetstream-only-cdjs'] steps: - uses: actions/checkout@v3 with: @@ -304,7 +304,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - tc: ['new-es octane v8', 'chakracore spidermonkey'] + tc: ['new-es octane v8', 'chakracore spidermonkey web-tooling-benchmark'] build_opt: ['', '-DESCARGOT_THREADING=ON -DESCARGOT_TCO=ON', '-DESCARGOT_SMALL_CONFIG=ON -DESCARGOT_USE_CUSTOM_LOGGING=ON'] exclude: # exclude octane, v8 due to low performance incurred by SMALL_CONFIG @@ -515,6 +515,8 @@ jobs: $RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/codecache/x86/escargot" new-es $RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/codecache/x86/escargot" octane-loading $RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/codecache/x86/escargot" octane-loading + $RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/codecache/x86/escargot" web-tooling-benchmark + $RUNNER --arch=x86 --engine="$GITHUB_WORKSPACE/out/codecache/x86/escargot" web-tooling-benchmark rm -rf $HOME/Escargot-cache/ - name: Run x64 test run: | @@ -524,6 +526,8 @@ jobs: $RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" new-es $RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" octane-loading $RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" octane-loading + $RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" web-tooling-benchmark + $RUNNER --arch=x86_64 --engine="$GITHUB_WORKSPACE/out/codecache/x64/escargot" web-tooling-benchmark rm -rf $HOME/Escargot-cache/ - name: Handle error cases run: | diff --git a/.gitmodules b/.gitmodules index 23d5acd38..872469a8b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -26,3 +26,6 @@ path = third_party/walrus url = https://github.com/Samsung/walrus.git ignore = untracked +[submodule "test/web-tooling-benchmark"] + path = test/web-tooling-benchmark + url = https://github.com/v8/web-tooling-benchmark diff --git a/test/web-tooling-benchmark b/test/web-tooling-benchmark new file mode 160000 index 000000000..4a12828c6 --- /dev/null +++ b/test/web-tooling-benchmark @@ -0,0 +1 @@ +Subproject commit 4a12828c6a1eed02a70c011bd080445dd319a05f diff --git a/tools/run-tests.py b/tools/run-tests.py index 79a2ce7a0..750fe3111 100755 --- a/tools/run-tests.py +++ b/tools/run-tests.py @@ -880,7 +880,7 @@ def run_escargot_debugger(engine, arch, extra_arg): ESCARGOT_DEBUGGER_TESTER = join(PROJECT_SOURCE_DIR, 'tools', 'debugger', 'debugger_tester.sh') print('Running Escargot-Debugger-Server-Source test:') fails = 0 - proc = Popen(['chmod', '+x', ESCARGOT_DEBUGGER_TESTER],stdout=PIPE) + proc = Popen(['chmod', '+x', ESCARGOT_DEBUGGER_TESTER], stdout=PIPE) for files in os.listdir(ESCARGOT_DEBUGGER_TEST_DIR): if files.endswith(".cmd"): test_case, _ = os.path.splitext(files) @@ -902,7 +902,7 @@ def run_escargot_debugger2(engine, arch, extra_arg): ESCARGOT_DEBUGGER_TESTER = join(PROJECT_SOURCE_DIR, 'tools', 'debugger', 'debugger_tester.sh') print('Running Escargot-Debugger-Client-Source test:') fails = 0 - proc = Popen(['chmod', '+x', ESCARGOT_DEBUGGER_TESTER],stdout=PIPE) + proc = Popen(['chmod', '+x', ESCARGOT_DEBUGGER_TESTER], stdout=PIPE) for files in os.listdir(ESCARGOT_DEBUGGER_TEST_DIR): if files.endswith(".cmd"): test_case, _ = os.path.splitext(files) @@ -917,6 +917,40 @@ def run_escargot_debugger2(engine, arch, extra_arg): if fails > 0: raise Exception('Escargot-Debugger-Client-Source tests failed') +@runner('web-tooling-benchmark', default=False) +def run_web_tooling_benchmark(engine, arch, extra_arg): + WEB_TOOLING_DIR = join(PROJECT_SOURCE_DIR, 'test', 'web-tooling-benchmark') + WEB_TOOLING_SRC_DIR = join(WEB_TOOLING_DIR, 'src') + + lock_file = join(WEB_TOOLING_DIR, 'package-lock.json') + with open(lock_file, "r") as f: + lines = f.readlines() + with open(lock_file, "w") as f: + for line in lines: + f.write(re.sub(r'"lockfileVersion": 1', '"lockfileVersion": 2', line)) + + suite_file = join(WEB_TOOLING_SRC_DIR, 'suite.js') + with open(suite_file, "r") as f: + lines = f.readlines() + with open(suite_file, "w") as f: + for line in lines: + # minimize sample count to 1 + f.write(re.sub(r'minSamples: 20', 'minSamples: 1', line)) + + flag_file = join(WEB_TOOLING_SRC_DIR, 'cli-flags-helper.js') + with open(flag_file, "r") as f: + lines = f.readlines() + with open(flag_file, "w") as f: + for line in lines: + # exclude long running tests + if "babel" not in line and "babylon" not in line and "chai" not in line: + f.write(line) + + proc = Popen(['npm', 'install'], cwd=WEB_TOOLING_DIR, stdout=PIPE) + proc.wait() + + run([engine, 'dist/cli.js'], cwd=WEB_TOOLING_DIR) + @runner('dump-all', default=False) def run_dump_all(engine, arch, extra_arg): for test in RUNNERS: