From c0f87cdcffd72dd807b17bd4f56d41b64554ed65 Mon Sep 17 00:00:00 2001 From: Mark Horvath Date: Fri, 1 Nov 2024 09:44:16 +0000 Subject: [PATCH] Make conformity test execution more robust So far, to run the conformity tests on an x86 machine it required that the environment can automatically execute aarch64 binaries. On a linux machine it is achieved if update-binfmts and qemu-user-static packages are installed on the host. (To be installed in the docker environment is not enough.) --- conformity/opencv/manager.cpp | 7 ++++--- scripts/run_opencv_conformity_checks.sh | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/conformity/opencv/manager.cpp b/conformity/opencv/manager.cpp index 977ba611d..dfb574001 100644 --- a/conformity/opencv/manager.cpp +++ b/conformity/opencv/manager.cpp @@ -13,8 +13,9 @@ #include "utils.h" int main(int argc, char** argv) { - if (argc < 2) { - std::cerr << "Error! Subordinate task is not defined as the first argument!" + if (argc < 3) { + std::cerr << "Error! The emulator for and the binary of the Subordinate " + "task are not defined as the first and second arguments!" << std::endl; return -1; } @@ -36,7 +37,7 @@ int main(int argc, char** argv) { return -2; } // Starting subordinate task - execl(argv[1], argv[1], static_cast(NULL)); + execl(argv[1], argv[1], argv[2], static_cast(NULL)); throw ExceptionWithErrno("Cannot start subordinate executable"); } diff --git a/scripts/run_opencv_conformity_checks.sh b/scripts/run_opencv_conformity_checks.sh index 87248cf31..46029d4b2 100755 --- a/scripts/run_opencv_conformity_checks.sh +++ b/scripts/run_opencv_conformity_checks.sh @@ -86,8 +86,8 @@ cmake "${common_cmake_args[@]}" \ ninja -C "${OPENCV_KLEIDICV_PATH}" manager TESTRESULT=0 -qemu-aarch64 -cpu cortex-a35 "${OPENCV_KLEIDICV_PATH}/bin/manager" "${OPENCV_DEFAULT_PATH}/bin/subordinate" || TESTRESULT=1 -qemu-aarch64 -cpu max,sve128=on,sme=off "${OPENCV_KLEIDICV_PATH}/bin/manager" "${OPENCV_DEFAULT_PATH}/bin/subordinate" || TESTRESULT=1 -qemu-aarch64 -cpu max,sve128=on,sme512=on "${OPENCV_KLEIDICV_PATH}/bin/manager" "${OPENCV_DEFAULT_PATH}/bin/subordinate" || TESTRESULT=1 +qemu-aarch64 -cpu cortex-a35 "${OPENCV_KLEIDICV_PATH}/bin/manager" "$(which qemu-aarch64)" "${OPENCV_DEFAULT_PATH}/bin/subordinate" || TESTRESULT=1 +qemu-aarch64 -cpu max,sve128=on,sme=off "${OPENCV_KLEIDICV_PATH}/bin/manager" "$(which qemu-aarch64)" "${OPENCV_DEFAULT_PATH}/bin/subordinate" || TESTRESULT=1 +qemu-aarch64 -cpu max,sve128=on,sme512=on "${OPENCV_KLEIDICV_PATH}/bin/manager" "$(which qemu-aarch64)" "${OPENCV_DEFAULT_PATH}/bin/subordinate" || TESTRESULT=1 exit $TESTRESULT -- GitLab