diff --git a/.github/workflows/gh-actions.yml b/.github/workflows/gh-actions.yml index 15fc5b2a26..2833072a07 100644 --- a/.github/workflows/gh-actions.yml +++ b/.github/workflows/gh-actions.yml @@ -30,7 +30,9 @@ jobs: with: python-version: '2.7' # needed by jerry-debugger - run: $RUNNER -q --jerry-tests + - run: $RUNNER -q --jerry-tests --build-debug - run: $RUNNER -q --jerry-debugger + - run: $RUNNER -q --jerry-debugger --build-debug Linux_x86_cpointer-32bit_Build_Correctness_Tests: runs-on: ubuntu-latest @@ -39,14 +41,23 @@ jobs: - run: sudo apt update - run: sudo apt install gcc-multilib - run: $RUNNER -q --jerry-tests --buildoptions=--compile-flag=-m32,--cpointer-32bit=on + - run: $RUNNER -q --jerry-tests --buildoptions=--compile-flag=-m32,--cpointer-32bit=on --build-debug OSX_x86-64_Build_Correctness_Unit_Tests: runs-on: macos-latest steps: - uses: actions/checkout@v2 - - run: $RUNNER -q --jerry-tests + # FIXME: regression-test-issue-3785.js currently are deadloop on OSX. + - run: $RUNNER -q --jerry-tests --skip-list=regression-test-issue-3785.js - run: $RUNNER -q --unittests + OSX_x86-64_Build_Correctness_Unit_Tests_Debug: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - run: $RUNNER -q --jerry-tests --build-debug + - run: $RUNNER -q --unittests --build-debug + Linux_x86-64_Build_Option_Tests: runs-on: ubuntu-latest steps: @@ -60,45 +71,56 @@ jobs: steps: - uses: actions/checkout@v2 - run: $RUNNER --test262 + - run: $RUNNER --test262 --build-debug Conformance_Tests_ES2015: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - run: $RUNNER --test262-es2015=update + - run: $RUNNER --test262-es2015=update --build-debug - uses: actions/upload-artifact@v2 if: success() || failure() with: name: Test262-ES2015-results - path: build/tests/test262_tests_es2015/local/bin/test262.report + path: | + build/tests/test262_tests_es2015/local/bin/test262.report + build/tests/test262_tests_es2015-debug/local/bin/test262.report Conformance_Tests_ESNext_A: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - run: $RUNNER --test262-esnext=update --test262-test-list=built-ins,annexB,harness,intl402 + - run: $RUNNER --test262-esnext=update --test262-test-list=built-ins,annexB,harness,intl402 --build-debug - uses: actions/upload-artifact@v2 if: success() || failure() with: name: Test262-ESNext-results-A - path: build/tests/test262_tests_esnext/local/bin/test262.report + path: | + build/tests/test262_tests_esnext/local/bin/test262.report + build/tests/test262_tests_esnext-debug/local/bin/test262.report Conformance_Tests_ESNext_B: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - run: $RUNNER --test262-esnext=update --test262-test-list=language + - run: $RUNNER --test262-esnext=update --test262-test-list=language --build-debug - uses: actions/upload-artifact@v2 if: success() || failure() with: name: Test262-ESNext-results-B - path: build/tests/test262_tests_esnext/local/bin/test262.report + path: | + build/tests/test262_tests_esnext/local/bin/test262.report + build/tests/test262_tests_esnext-debug/local/bin/test262.report Unit_Tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - run: $RUNNER -q --unittests + - run: $RUNNER -q --unittests --build-debug ASAN_Tests: runs-on: ubuntu-latest @@ -113,6 +135,19 @@ jobs: --buildoptions=--stack-limit=0,--compile-flag=-fsanitize=address,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--compile-flag=-O2,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold --skip-list=parser-oom.js,parser-oom2.js,stack-limit.js,regression-test-issue-2190.js,regression-test-issue-2258-2963.js,regression-test-issue-2448.js,regression-test-issue-2905.js,regression-test-issue-3785.js + ASAN_Tests_Debug: + runs-on: ubuntu-latest + env: + ASAN_OPTIONS: detect_stack_use_after_return=1:check_initialization_order=true:strict_init_order=true + steps: + - uses: actions/checkout@v2 + - run: sudo apt update + - run: sudo apt install gcc-multilib + - run: >- + $RUNNER -q --jerry-tests --build-debug + --buildoptions=--stack-limit=0,--compile-flag=-fsanitize=address,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--compile-flag=-O2,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold + --skip-list=parser-oom.js,parser-oom2.js,stack-limit.js,regression-test-issue-2190.js,regression-test-issue-2258-2963.js,regression-test-issue-2448.js,regression-test-issue-2905.js,regression-test-issue-3785.js + UBSAN_Tests: runs-on: ubuntu-latest env: @@ -125,6 +160,10 @@ jobs: $RUNNER -q --jerry-tests --buildoptions=--compile-flag=-fsanitize=undefined,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold --skip-list=parser-oom.js,parser-oom2.js + - run: >- + $RUNNER -q --jerry-tests --build-debug + --buildoptions=--compile-flag=-fsanitize=undefined,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold + --skip-list=parser-oom.js,parser-oom2.js Linux_ARMv7l_Tests: runs-on: ubuntu-latest @@ -139,6 +178,19 @@ jobs: $RUNNER -q --jerry-tests --buildoptions=--toolchain=cmake/toolchain_linux_armv7l.cmake,--linker-flag=-static + Linux_ARMv7l_Tests_Debug: + runs-on: ubuntu-latest + env: + RUNTIME: qemu-arm-static + TIMEOUT: 300 + steps: + - uses: actions/checkout@v2 + - run: sudo apt update + - run: sudo apt install gcc-arm-linux-gnueabihf libc6-dev-armhf-cross qemu-user-static + - run: >- + $RUNNER -q --jerry-tests --build-debug + --buildoptions=--toolchain=cmake/toolchain_linux_armv7l.cmake,--linker-flag=-static + Linux_AArch64_Tests: runs-on: ubuntu-latest env: @@ -152,6 +204,19 @@ jobs: $RUNNER -q --jerry-tests --buildoptions=--toolchain=cmake/toolchain_linux_aarch64.cmake,--linker-flag=-static + Linux_AArch64_Tests_Debug: + runs-on: ubuntu-latest + env: + RUNTIME: qemu-aarch64-static + TIMEOUT: 300 + steps: + - uses: actions/checkout@v2 + - run: sudo apt update + - run: sudo apt install gcc-aarch64-linux-gnu libc6-dev-armhf-cross qemu-user-static + - run: >- + $RUNNER -q --jerry-tests --build-debug + --buildoptions=--toolchain=cmake/toolchain_linux_aarch64.cmake,--linker-flag=-static + MbedOS5_K64F_Build_Test: runs-on: ubuntu-18.04 # needed due to ppa:team-gcc-arm-embedded/ppa steps: diff --git a/tests/test262-es6-excludelist.xml b/tests/test262-es6-excludelist.xml index 870ac5c715..52c7844261 100644 --- a/tests/test262-es6-excludelist.xml +++ b/tests/test262-es6-excludelist.xml @@ -44,8 +44,6 @@ - - Promise.all no longer uses @@species Promise.race no longer uses @@species diff --git a/tools/run-tests.py b/tools/run-tests.py index 0a921975e2..ce96fee4c9 100755 --- a/tools/run-tests.py +++ b/tools/run-tests.py @@ -58,59 +58,44 @@ def skip_if(condition, desc): JERRY_UNITTESTS_OPTIONS = [ Options('unittests-es.next', OPTIONS_COMMON + OPTIONS_UNITTESTS + OPTIONS_PROFILE_ESNEXT), - Options('unittests-es.next-debug', - OPTIONS_COMMON + OPTIONS_UNITTESTS + OPTIONS_PROFILE_ESNEXT + OPTIONS_DEBUG), Options('doctests-es.next', OPTIONS_COMMON + OPTIONS_DOCTESTS + OPTIONS_PROFILE_ESNEXT), - Options('doctests-es.next-debug', - OPTIONS_COMMON + OPTIONS_DOCTESTS + OPTIONS_PROFILE_ESNEXT + OPTIONS_DEBUG), Options('unittests-es5.1', OPTIONS_COMMON + OPTIONS_UNITTESTS + OPTIONS_PROFILE_ES51), - Options('unittests-es5.1-debug', - OPTIONS_COMMON + OPTIONS_UNITTESTS + OPTIONS_PROFILE_ES51 + OPTIONS_DEBUG), Options('doctests-es5.1', OPTIONS_COMMON + OPTIONS_DOCTESTS + OPTIONS_PROFILE_ES51), - Options('doctests-es5.1-debug', - OPTIONS_COMMON + OPTIONS_DOCTESTS + OPTIONS_PROFILE_ES51 + OPTIONS_DEBUG), - Options('unittests-es5.1-debug-init-fini', - OPTIONS_COMMON + OPTIONS_UNITTESTS + OPTIONS_PROFILE_ES51 + OPTIONS_DEBUG + Options('unittests-es5.1-init-fini', + OPTIONS_COMMON + OPTIONS_UNITTESTS + OPTIONS_PROFILE_ES51 + ['--cmake-param=-DFEATURE_INIT_FINI=ON'], skip=skip_if((sys.platform == 'win32'), 'FEATURE_INIT_FINI build flag isn\'t supported on Windows,' + ' because Microsoft Visual C/C++ Compiler doesn\'t support' + ' library constructors and destructors.')), - Options('unittests-es5.1-debug-math', - OPTIONS_COMMON + OPTIONS_UNITTESTS + OPTIONS_PROFILE_ES51 + OPTIONS_DEBUG + Options('unittests-es5.1-math', + OPTIONS_COMMON + OPTIONS_UNITTESTS + OPTIONS_PROFILE_ES51 + ['--jerry-math=on']), ] # Test options for jerry-tests JERRY_TESTS_OPTIONS = [ - Options('jerry_tests-es.next-debug', - OPTIONS_COMMON + OPTIONS_PROFILE_ESNEXT + OPTIONS_DEBUG + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT + Options('jerry_tests-es.next', + OPTIONS_COMMON + OPTIONS_PROFILE_ESNEXT + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT + OPTIONS_MEM_STRESS), Options('jerry_tests-es5.1', OPTIONS_COMMON + OPTIONS_PROFILE_ES51 + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT), Options('jerry_tests-es5.1-snapshot', OPTIONS_COMMON + OPTIONS_PROFILE_ES51 + OPTIONS_SNAPSHOT + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT, ['--snapshot']), - Options('jerry_tests-es5.1-debug', - OPTIONS_COMMON + OPTIONS_PROFILE_ES51 + OPTIONS_DEBUG + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT - + OPTIONS_MEM_STRESS), - Options('jerry_tests-es5.1-debug-snapshot', - OPTIONS_COMMON + OPTIONS_PROFILE_ES51 + OPTIONS_SNAPSHOT + OPTIONS_DEBUG + OPTIONS_STACK_LIMIT - + OPTIONS_GC_MARK_LIMIT, ['--snapshot']), - Options('jerry_tests-es5.1-debug-cpointer_32bit', - OPTIONS_COMMON + OPTIONS_PROFILE_ES51 + OPTIONS_DEBUG + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT + Options('jerry_tests-es5.1-cpointer_32bit', + OPTIONS_COMMON + OPTIONS_PROFILE_ES51 + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT + ['--cpointer-32bit=on', '--mem-heap=1024']), - Options('jerry_tests-es5.1-debug-external_context', - OPTIONS_COMMON + OPTIONS_PROFILE_ES51 + OPTIONS_DEBUG + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT + Options('jerry_tests-es5.1-external_context', + OPTIONS_COMMON + OPTIONS_PROFILE_ES51 + OPTIONS_STACK_LIMIT + OPTIONS_GC_MARK_LIMIT + ['--external-context=on']), ] # Test options for test262 TEST262_TEST_SUITE_OPTIONS = [ Options('test262_tests', OPTIONS_PROFILE_ES51), - Options('test262_tests-debug', OPTIONS_PROFILE_ES51 + OPTIONS_DEBUG) ] # Test options for test262-es2015 @@ -127,7 +112,7 @@ def skip_if(condition, desc): # Test options for jerry-debugger DEBUGGER_TEST_OPTIONS = [ Options('jerry_debugger_tests', - OPTIONS_DEBUG + ['--jerry-debugger=on']) + ['--jerry-debugger=on']) ] # Test options for buildoption-test @@ -207,6 +192,8 @@ def get_arguments(): help='Run license check') parser.add_argument('--check-magic-strings', action='store_true', help='Run "magic string source code generator should be executed" check') + parser.add_argument('--build-debug', action='store_true', + help='Build debug version jerryscript') parser.add_argument('--jerry-debugger', action='store_true', help='Run jerry-debugger tests') parser.add_argument('--jerry-tests', action='store_true', @@ -266,6 +253,10 @@ def report_skip(job): def create_binary(job, options): build_args = job.build_args[:] + build_dir_path = os.path.join(options.outdir, job.name) + if options.build_debug: + build_args.extend(OPTIONS_DEBUG) + build_dir_path = os.path.join(options.outdir, job.name + '-debug') if options.buildoptions: for option in options.buildoptions.split(','): if option not in build_args: @@ -275,7 +266,6 @@ def create_binary(job, options): build_cmd.append(settings.BUILD_SCRIPT) build_cmd.extend(build_args) - build_dir_path = os.path.join(options.outdir, job.name) build_cmd.append('--builddir=%s' % build_dir_path) install_dir_path = os.path.join(build_dir_path, 'local') @@ -472,7 +462,7 @@ def run_unittests(options): break if sys.platform == 'win32': - if "--debug" in job.build_args: + if options.build_debug: build_config = "Debug" else: build_config = "MinSizeRel" diff --git a/tools/runners/test262-harness.py b/tools/runners/test262-harness.py index f53d4dcb61..68f5bd6a1b 100755 --- a/tools/runners/test262-harness.py +++ b/tools/runners/test262-harness.py @@ -67,7 +67,7 @@ # The timeout of each test case -TEST262_CASE_TIMEOUT = 5 +TEST262_CASE_TIMEOUT = 180 def yaml_load(string):