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 <yogesh.tyagi@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
This commit is contained in:
Yogesh Tyagi 2022-12-11 22:59:57 +08:00 committed by Anuj Mittal
parent 6ca9a5cb96
commit 1153290b11
3 changed files with 72 additions and 1 deletions

View File

@ -0,0 +1,56 @@
From 6ba81efe971fb6038af6e950e853d35ee6dd9cc3 Mon Sep 17 00:00:00 2001
From: Yogesh Tyagi <yogesh.tyagi@intel.com>
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 <yogesh.tyagi@intel.com>
---
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

View File

@ -0,0 +1,2 @@
#!/bin/sh
python3 run_tests.py

View File

@ -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 \