From d2044a832e75cd0ec95fc14399c2cd9dca62954b Mon Sep 17 00:00:00 2001 From: Yogesh Tyagi Date: Sun, 11 Dec 2022 22:59:57 +0800 Subject: ispc : Add ptest - ispc-ptest is taking around 225 seconds to execute - Below is the run log of ispc-ptest START: ptest-runner 2022-12-07T15:43 root@qemux86-64:/usr/lib/ispc/ptest# ptest-runner ispc BEGIN: /usr/lib/ispc/ptest Testing ISPC compiler: ../../../bin/ispc Testing ISPC target: sse4-i32x4 Testing ISPC arch: x86-64 Using test compiler: Intel(r) Implicit SPMD Program Compiler (Intel(r) ISPC), 1.17.0 (build commit 7ad8429369a4d5ce @ 20220115, LLVM 12.0.0) Using C/C++ compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project d28af7c654d8db0b68c175db5ce212d74fb5e9bc) Running 4 jobs in parallel. Running 1382 tests. Test varying int64: [-10000000001,-10000000002,-10000000003,-10000000004], [10000000001,10000000002,10000000003,10000000004] Test varying int64: [-10000000001,-10000000002,-10000000003,-10000000004], [10000000001,10000000002,10000000003,10000000004] Test varying int8: [-1,-2,-3,-4], [1,2,3,4]spc] Test varying int8: [-1,-2,-3,-4], [1,2,3,4] Test uniform int64: -10000000005, 10000000005 Test uniform int64: -10000000005, 10000000005 Test uniform int8: -5, 5s/paddus-vi64.ispc] Test uniform int8: -5, 5 Test bool: uniform: true, false; varying: [false,true,true,false], [true,false,false,true]; in simd cf: [_________,_________,true,false], [_________,_________,false,true]. Test bool: uniform: true, false; varying: [false,true,true,false], [true,false,false,true]; in simd cf: [_________,_________,true,false], [_________,_________,false,true]. Test uniform double: 18.250000-float-uniform.ispc] Test uniform double: 18.250000 Test varying int16: [-2,-3,-4,-5], [2,3,4,5]ispc] Test varying int16: [-2,-3,-4,-5], [2,3,4,5] Test bool: uniform: true, false; varying: [false,true,true,false], [true,false,false,true] Test bool: uniform: true, false; varying: [false,true,true,false], [true,false,false,true] Test uniform int16: -6, 6/psubus-i16.ispc] Test uniform int16: -6, 6 Test varying simd: small ones: [((1)),2,((3)),4] Test varying simd: small ones: [((1)),2,((3)),4] Test uniform int32: -7, 7/packed-store.ispc] Test uniform int32: -7, 7 Test varying int32: [-3,-4,-5,-6], [3,4,5,6] Test varying int32: [-3,-4,-5,-6], [3,4,5,6] Test varying double: [14.250000,15.250000,16.250000,17.250000] Test varying double: [14.250000,15.250000,16.250000,17.250000] Test uniform float: 9.750000catter-mask-2.ispc] Test uniform float: 9.750000 Hello World! 1382 [./tests/gs-double-improve-multidim-2.ispc] Hello World! Test varying float: [5.750000,6.750000,7.750000,8.750000] Test varying float: [5.750000,6.750000,7.750000,8.750000] Done 1382 / 1382 [./tests/test-11.ispc] Executed 1356 / 1382 (26 skipped) PASSRATE (1356/1356) = 100% PASS: ./tests/store-int8.ispc PASS: ./tests/phi-opts-4.ispc PASS: ./tests/pmulus-i32.ispc PASS: ./tests/new-delete-3.ispc PASS: ./tests/funcptr-varying-6.ispc PASS: ./tests/short-circuit-5.ispc PASS: ./tests/funcptr-uniform-6.ispc PASS: ./tests/reduce-equal-4.ispc PASS: ./tests/test-12.ispc PASS: ./tests/1475-int64.ispc PASS: ./tests/test-49.ispc PASS: ./tests/packed-load-64-4.ispc PASS: ./tests/gs-improve-multidim-1.ispc PASS: ./tests/packed-load-64-2.ispc SKIP: ./tests/max-float16-1.ispc .... .... 1356 / 1382 tests PASSED 0 / 1382 tests FAILED compilation 0 / 1382 tests FAILED execution 26 / 1382 tests SKIPPED ./tests/abs-float16.ispc ./tests/broadcast-5.ispc ./tests/clampfloat16_uniform.ispc ./tests/clampfloat16_varying.ispc ./tests/exp-uniform-float16.ispc ./tests/exp-varying-float16.ispc ./tests/isnan_float16.ispc ./tests/log-uniform-float16.ispc ./tests/log-varying-float16.ispc ./tests/max-float16-1.ispc ./tests/max-float16-2.ispc ./tests/min-float16-1.ispc ./tests/min-float16-2.ispc ./tests/pow-uniform-float16.ispc ./tests/pow-varying-float16.ispc ./tests/print_uniform-f16.ispc ./tests/print_varying-f16.ispc ./tests/rotate-7.ispc ./tests/shift-4.ispc ./tests/shuffle-6.ispc ./tests/shuffle2-12.ispc ./tests/uniform-float16-rcp.ispc ./tests/varying-float16-rcp.ispc ./tests/xe-task-count.ispc ./tests/xe-task-index-1.ispc ./tests/xe-task-index.ispc No new fails DURATION: 225 END: /usr/lib/ispc/ptest 2022-12-07T15:47 STOP: ptest-runner TOTAL: 1 FAIL: 0 - some tests are skipped based on the target architecture - change the test script to compile test programs on target with --pic option to avoid error "'.rodata' can not be used when making a PIE object" when executing tests on target - adds new print function to the test script to print test result in ptest format Signed-off-by: Yogesh Tyagi Signed-off-by: Anuj Mittal --- ...unction-to-print-test-run-status-in-ptest.patch | 56 ++++++++++++++++++++++ .../clang-layer/recipes-core/ispc/ispc/run-ptest | 2 + .../clang-layer/recipes-core/ispc/ispc_1.18.0.bb | 15 +++++- 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 dynamic-layers/clang-layer/recipes-core/ispc/ispc/0001-Add-print-function-to-print-test-run-status-in-ptest.patch create mode 100644 dynamic-layers/clang-layer/recipes-core/ispc/ispc/run-ptest diff --git a/dynamic-layers/clang-layer/recipes-core/ispc/ispc/0001-Add-print-function-to-print-test-run-status-in-ptest.patch b/dynamic-layers/clang-layer/recipes-core/ispc/ispc/0001-Add-print-function-to-print-test-run-status-in-ptest.patch new file mode 100644 index 00000000..3ce431d4 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-core/ispc/ispc/0001-Add-print-function-to-print-test-run-status-in-ptest.patch @@ -0,0 +1,56 @@ +From 6ba81efe971fb6038af6e950e853d35ee6dd9cc3 Mon Sep 17 00:00:00 2001 +From: Yogesh Tyagi +Date: Sun, 11 Dec 2022 22:34:15 +0800 +Subject: [PATCH] Add print function to print test run status in ptest format + +Upstream-Status: Inappropriate [OE ptest specific] + +Signed-off-by: Yogesh Tyagi +--- + run_tests.py | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/run_tests.py b/run_tests.py +index 87305a06..4f2f0f59 100755 +--- a/run_tests.py ++++ b/run_tests.py +@@ -385,6 +385,9 @@ def run_test(testname, host, target): + else: + ispc_exe_rel = add_prefix(host.ispc_cmd, host, target) + ++ # to reslove the error '.rodata' can not be used when making a PIE object ++ ispc_exe_rel = ispc_exe_rel + " --pic" ++ + # is this a test to make sure an error is issued? + want_error = (filename.find("tests_errors") != -1) + if want_error == True: +@@ -844,6 +847,17 @@ def check_compiler_exists(compiler_exe): + return + error("missing the required compiler: %s \n" % compiler_exe, 1) + ++def print_test_run_status(results): ++ for fstatus in results: ++ if (fstatus[1] == Status.Success): ++ print( "%s: %s" % ("PASS", fstatus[0])) ++ elif (fstatus[1] == Status.Compfail): ++ print( "%s: %s" % ("FAIL", fstatus[0])) ++ elif (fstatus[1] == Status.Runfail): ++ print( "%s: %s" % ("FAIL", fstatus[0])) ++ elif (fstatus[1] == Status.Skip): ++ print( "%s: %s" % ("SKIP", fstatus[0])) ++ + def print_result(status, results, s, run_tests_log, csv): + title = StatusStr[status] + file_list = [fname for fname, fstatus in results if status == fstatus] +@@ -987,6 +1001,8 @@ def run_tests(options1, args, print_version): + pass_rate = -1 + print_debug("PASSRATE (%d/%d) = %d%% \n\n" % (len(run_succeed_files), total_tests_executed, pass_rate), s, run_tests_log) + ++ print_test_run_status(results) ++ + for status in Status: + print_result(status, results, s, run_tests_log, options.csv) + fails = [status != Status.Compfail and status != Status.Runfail for _, status in results] +-- +2.37.3 + diff --git a/dynamic-layers/clang-layer/recipes-core/ispc/ispc/run-ptest b/dynamic-layers/clang-layer/recipes-core/ispc/ispc/run-ptest new file mode 100644 index 00000000..77d13bb4 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-core/ispc/ispc/run-ptest @@ -0,0 +1,2 @@ +#!/bin/sh +python3 run_tests.py diff --git a/dynamic-layers/clang-layer/recipes-core/ispc/ispc_1.18.0.bb b/dynamic-layers/clang-layer/recipes-core/ispc/ispc_1.18.0.bb index 6a2e6059..b7083f82 100644 --- a/dynamic-layers/clang-layer/recipes-core/ispc/ispc_1.18.0.bb +++ b/dynamic-layers/clang-layer/recipes-core/ispc/ispc_1.18.0.bb @@ -7,7 +7,7 @@ LICENSE = "BSD-3-Clause & Apache-2.0-with-LLVM-exception" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=da5ecffdd210b3cf776b32b41c182e87 \ file://third-party-programs.txt;md5=3cd6f8a7c3bd9d2bb898fcb27c75221a" -inherit cmake python3native +inherit cmake python3native ptest S = "${WORKDIR}/git" @@ -17,13 +17,17 @@ SRC_URI = "git://github.com/ispc/ispc.git;protocol=https;branch=main \ file://0001-Fix-QA-Issues.patch \ file://6a1b2ffae0cc12467838bc671e3b089924de90a6.patch \ file://ec35a6f8e60ba77e59a6f2bfec27011e0ab34dda.patch \ + file://0001-Add-print-function-to-print-test-run-status-in-ptest.patch \ + file://run-ptest \ " + SRCREV = "f7ec3aa173c816377c215d83196b5c7c3a88db1c" COMPATIBLE_HOST = '(x86_64).*-linux' DEPENDS += " clang-native bison-native flex-native" RDEPENDS:${PN} += " clang-libllvm clang clang-libclang-cpp" +RDEPENDS:${PN}-ptest += " python3-multiprocessing" YFLAGS='-d -t -v -y --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}' @@ -32,6 +36,15 @@ do_configure:prepend() { sed -i -e 's#\${FLEX_EXECUTABLE}.*#\${FLEX_EXECUTABLE} \-L #g' ${S}/CMakeLists.txt } +do_install_ptest() { + cp -rf ${S}/run_tests.py ${D}${PTEST_PATH} + cp -rf ${S}/common.py ${D}${PTEST_PATH} + cp -rf ${S}/tests ${D}${PTEST_PATH} + cp -rf ${S}/test_static.isph ${D}${PTEST_PATH} + cp -rf ${S}/fail_db.txt ${D}${PTEST_PATH} + cp -rf ${S}/test_static.cpp ${D}${PTEST_PATH} +} + EXTRA_OECMAKE += " \ -DISPC_INCLUDE_TESTS=OFF \ -DISPC_INCLUDE_EXAMPLES=OFF \ -- cgit v1.2.3-54-g00ecf