diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index b3d4bbb764c..7443e66166a 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -40,20 +40,16 @@ jobs: env: DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input CMAKE_BUILD_TYPE: 'Release' - CMAKE_GENERATOR: 'Ninja' + CMAKE_GENERATOR: 'Ninja Multi-Config' CMAKE_CXX_COMPILER_LAUNCHER: ccache CMAKE_C_COMPILER_LAUNCHER: ccache GITHUB_WORKSPACE: '/__w/openvino/openvino' OPENVINO_REPO: /__w/openvino/openvino/openvino OPENVINO_CONTRIB_REPO: /__w/openvino/openvino/openvino_contrib - INSTALL_DIR: /__w/openvino/openvino/install - INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests - SAMPLES_INSTALL_DIR: /__w/openvino/openvino/install/samples - LAYER_TESTS_INSTALL_DIR: /__w/openvino/openvino/install/tests/layer_tests - MODEL_HUB_TESTS_INSTALL_DIR: /__w/openvino/openvino/install/tests/model_hub_tests - BUILD_DIR: /__w/openvino/openvino/build - OV_TEMP: /__w/openvino/openvino/openvino_temp - PYTHON_STATIC_ARGS: -m "not dynamic_library" + INSTALL_DIR: /__w/openvino/openvino/openvino_install + INSTALL_TEST_DIR: /__w/openvino/openvino/tests_install + BUILD_DIR: /__w/openvino/openvino/openvino_build + OPENVINO_CONTRIB_BUILD_DIR: /__w/openvino/openvino/openvino_contrib_build CCACHE_DIR: /mount/caches/ccache/ubuntu20_x86_64_Release CCACHE_TEMPDIR: /__w/openvino/openvino/ccache_temp CCACHE_MAXSIZE: 50G @@ -61,7 +57,7 @@ jobs: - name: Install git run: | apt-get update - apt-get install -y git git-lfs + apt-get install --assume-yes --no-install-recommends git ca-certificates - name: Clone OpenVINO uses: actions/checkout@v4 @@ -83,10 +79,12 @@ jobs: - name: Install build dependencies run: | bash ${OPENVINO_REPO}/install_build_dependencies.sh - apt update - apt --assume-yes install openjdk-11-jdk libbz2-dev clang unzip libpugixml-dev libtbb-dev intel-opencl-icd ocl-icd-opencl-dev opencl-headers + # openjdk-11-jdk - Java API + # libssl1.1 - 'python3 -m pip' in self-hosted runner + # unzip - to download ninja + apt install --assume-yes --no-install-recommends openjdk-11-jdk libssl1.1 unzip - wget https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-linux.zip + wget https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-linux.zip unzip ninja-linux.zip cp -v ninja /usr/local/bin/ @@ -96,14 +94,9 @@ jobs: - name: Install python dependencies run: | - # For Python API - python3 -m pip install --upgrade pip - python3 -m pip install Scons + # For Python API: build and wheel packaging python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/wheel/requirements-dev.txt python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/requirements.txt - python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/requirements_test.txt - - # For running Python API tests python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt # For running ONNX frontend unit tests @@ -112,18 +105,12 @@ jobs: # For running TensorFlow frontend unit tests python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/tensorflow/tests/requirements.txt + # For running TensorFlow Lite frontend unit tests + python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/tensorflow_lite/tests/requirements.txt + # For running Paddle frontend unit tests python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/paddle/tests/requirements.txt - - name: Install MO dependencies - run: | - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_mxnet.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_caffe.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_kaldi.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_onnx.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_tf2.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_dev.txt - # # Build # @@ -132,127 +119,66 @@ jobs: run: | mkdir -p $CCACHE_DIR - - name: Get number of CPU cores - uses: SimenB/github-actions-cpu-cores@v2 - id: cpu-cores - - - name: CMake configure + - name: CMake configure - OpenVINO run: | cmake \ - -GNinja \ + -G "${{ env.CMAKE_GENERATOR }}" \ -DENABLE_CPPLINT=OFF \ -DENABLE_NCC_STYLE=OFF \ -DENABLE_TESTS=ON \ - -DENABLE_PYTHON=ON \ - -DCMAKE_VERBOSE_MAKEFILE=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_SHARED_LIBS=ON \ - -DENABLE_ONEDNN_FOR_GPU=OFF \ - -DENABLE_OV_ONNX_FRONTEND=ON \ - -DCMAKE_COMPILE_WARNING_AS_ERROR=OFF \ -DENABLE_STRICT_DEPENDENCIES=OFF \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache \ - -DENABLE_SYSTEM_SNAPPY=ON \ -DENABLE_SYSTEM_TBB=ON \ + -DENABLE_SYSTEM_OPENCL=ON \ + -DENABLE_SYSTEM_PUGIXML=ON \ -DBUILD_nvidia_plugin=OFF \ - -DENABLE_DEBUG_CAPS=ON \ -DCUSTOM_OPERATIONS="calculate_grid;complex_mul;fft;grid_sample;sparse_conv;sparse_conv_transpose" \ -DOPENVINO_EXTRA_MODULES=${OPENVINO_CONTRIB_REPO}/modules \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} \ + -DCMAKE_COMPILE_WARNING_AS_ERROR=ON \ + -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CMAKE_CXX_COMPILER_LAUNCHER }} \ + -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CMAKE_C_COMPILER_LAUNCHER }} \ -S ${OPENVINO_REPO} \ -B ${BUILD_DIR} - name: Clean ccache stats run: ccache --zero-stats --show-config - - name: Build - run: cmake --build ${BUILD_DIR} --parallel ${{ steps.cpu-cores.outputs.count }} --config Release + - name: Cmake build - OpenVINO + run: cmake --build ${BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} + + - name: Cmake & Build - OpenVINO Contrib + if: ${{ 'false' }} + run: | + cmake \ + -G "${{ env.CMAKE_GENERATOR }}" \ + -DBUILD_nvidia_plugin=OFF \ + -DCUSTOM_OPERATIONS="calculate_grid;complex_mul;fft;grid_sample;sparse_conv;sparse_conv_transpose" \ + -DOpenVINODeveloperPackage_DIR=${BUILD_DIR} \ + -S ${OPENVINO_CONTRIB_REPO}/modules \ + -B ${OPENVINO_CONTRIB_BUILD_DIR} + + cmake --build ${OPENVINO_CONTRIB_BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} - name: Show ccache stats run: ccache --show-stats - - name: Cmake Layer Tests - run: cmake -GNinja -S ${OPENVINO_REPO}/tests/layer_tests -B ${BUILD_DIR}/layer_tests - - - name: Cmake Model Hub Tests - run: cmake -GNinja -S ${OPENVINO_REPO}/tests/model_hub_tests -B ${BUILD_DIR}/model_hub_tests - - - name: Build Layer Tests - run: cmake --build ${BUILD_DIR}/layer_tests --parallel --config Release - - - name: Build Model Hub Tests - run: cmake --build ${BUILD_DIR}/model_hub_tests --parallel --config Release - - - name: Install wheel packages - run: cmake -DCOMPONENT=python_wheels -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/cmake_install.cmake - - - name: Install Layer Tests - run: cmake -DCOMPONENT=tests -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/layer_tests/cmake_install.cmake - - - name: Install Model Hub Tests - run: cmake -DCOMPONENT=tests -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/model_hub_tests/cmake_install.cmake - - - name: Install python wheels - run: python3 -m pip install openvino-dev --find-links=${INSTALL_DIR}/tools - - - name: Install tests - run: cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCOMPONENT=tests -P ${BUILD_DIR}/cmake_install.cmake - - - name: Install OpenVINO - run: cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/cmake_install.cmake - - - name: CMake Samples Tests - run: cmake -GNinja -S ${OPENVINO_REPO}/tests/samples_tests -B ${BUILD_DIR}/samples_tests - - - name: Build Samples Tests - run: cmake --build ${BUILD_DIR}/samples_tests --config Release - - - name: Install Samples Tests - run: cmake -DCOMPONENT=tests -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/samples_tests/cmake_install.cmake + - name: Cmake install - OpenVINO + run: | + cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/cmake_install.cmake + cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_TEST_DIR} -DCOMPONENT=tests -P ${BUILD_DIR}/cmake_install.cmake + cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCOMPONENT=python_wheels -P ${BUILD_DIR}/cmake_install.cmake - name: Pack Artifacts run: | pushd ${INSTALL_DIR} - tar -czvf ${BUILD_DIR}/openvino_package.tar.gz --exclude=tests * + tar -czvf ${BUILD_DIR}/openvino_package.tar.gz * popd - pushd ${INSTALL_DIR} - tar -czvf ${BUILD_DIR}/openvino_tests.tar.gz tests/ + pushd ${INSTALL_TEST_DIR} + tar -czvf ${BUILD_DIR}/openvino_tests.tar.gz * popd - - name: Build cpp samples - run: ${SAMPLES_INSTALL_DIR}/cpp/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/cpp_samples - - - name: Build c samples - run: ${SAMPLES_INSTALL_DIR}/c/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/c_samples - - # - # Tests - # - - - name: Samples tests - run: | - export WORKSPACE=${INSTALL_DIR} - export IE_APP_PATH=${INSTALL_DIR}/samples_bin - export IE_APP_PYTHON_PATH=${INSTALL_DIR}/samples/python - export SHARE=${INSTALL_TEST_DIR}/smoke_tests/samples_smoke_tests_data - - python3 -m pip install --ignore-installed PyYAML -r ${INSTALL_TEST_DIR}/smoke_tests/requirements.txt - export LD_LIBRARY_PATH=${IE_APP_PATH}:$LD_LIBRARY_PATH - - source ${INSTALL_DIR}/setupvars.sh - - python3 -m pytest -sv ${INSTALL_TEST_DIR}/smoke_tests \ - --env_conf ${INSTALL_TEST_DIR}/smoke_tests/env_config.yml \ - --junitxml=${INSTALL_TEST_DIR}/TEST-SamplesSmokeTests.xml - - # Present in the "Build" job due to the fact that these tests require build directory - - name: ONNX frontend tests - run: | - source ${INSTALL_DIR}/setupvars.sh - ${INSTALL_TEST_DIR}/ov_onnx_frontend_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU*:*FrontEndLoadFromTest.testLoadFromTwoStreams*:*FrontEndLoadFromTest.testLoadFromTwoFiles* \ - --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ONNXFrontend.xml - # # Upload build artifacts # @@ -273,35 +199,28 @@ jobs: path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz if-no-files-found: 'error' - CXX_Unit_Tests: + Samples: needs: Build defaults: run: shell: bash - runs-on: aks-linux-4-cores + runs-on: ubuntu-20.04 container: - image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 - volumes: - - /mount/caches:/mount/caches + image: ubuntu:20.04 env: DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input INSTALL_DIR: /__w/openvino/openvino/install INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests + BUILD_DIR: /__w/openvino/openvino/build steps: - name: Create Directories - run: | - mkdir -p ${INSTALL_DIR} ${INSTALL_TEST_DIR} + run: mkdir -p ${INSTALL_DIR} ${INSTALL_TEST_DIR} # - # Dependencies + # Initialize OpenVINO # - - name: Install dependencies - run: | - apt update - apt --assume-yes install openjdk-11-jdk libbz2-dev clang unzip libpugixml-dev libtbb-dev intel-opencl-icd ocl-icd-opencl-dev opencl-headers libsnappy-dev - - name: Download OpenVINO package uses: actions/download-artifact@v3 with: @@ -323,6 +242,107 @@ jobs: tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} && rm openvino_tests.tar.gz || exit 1 popd + - name: Install 'actions/setup-python@v4' dependencies + run: apt-get update && apt-get install -y libssl1.1 + + - uses: actions/setup-python@v4 + with: + python-version: '3.11' + + - name: Install OpenVINO dependencies + run: ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -c=dev -y + + - name: Build cpp samples - GCC + run: ${INSTALL_DIR}/samples/cpp/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/cpp_samples + env: + CMAKE_COMPILE_WARNING_AS_ERROR: 'ON' + + - name: Build cpp samples - Clang + run: | + apt-get install -y clang + ${INSTALL_DIR}/samples/cpp/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/cpp_samples_clang + env: + CMAKE_COMPILE_WARNING_AS_ERROR: 'ON' + CC: clang + CXX: clang++ + + - name: Build c samples + run: ${INSTALL_DIR}/samples/c/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/c_samples + env: + CMAKE_COMPILE_WARNING_AS_ERROR: 'ON' + + # + # Tests + # + + - name: Samples tests + run: | + export WORKSPACE=${INSTALL_DIR} + export IE_APP_PATH=${INSTALL_DIR}/samples_bin + export IE_APP_PYTHON_PATH=${INSTALL_DIR}/samples/python + export SHARE=${INSTALL_TEST_DIR}/smoke_tests/samples_smoke_tests_data + + python3 -m pip install --ignore-installed PyYAML -r ${INSTALL_TEST_DIR}/smoke_tests/requirements.txt + export LD_LIBRARY_PATH=${IE_APP_PATH}:$LD_LIBRARY_PATH + + source ${INSTALL_DIR}/setupvars.sh + + python3 -m pytest -sv ${INSTALL_TEST_DIR}/smoke_tests \ + --env_conf ${INSTALL_TEST_DIR}/smoke_tests/env_config.yml \ + --junitxml=${INSTALL_TEST_DIR}/TEST-SamplesSmokeTests.xml + + - name: Upload Test Results + uses: actions/upload-artifact@v3 + if: ${{ always() }} + with: + name: test-results-cpp + path: ${{ env.INSTALL_TEST_DIR }}/TEST*.xml + if-no-files-found: 'error' + + CXX_Unit_Tests: + needs: Build + defaults: + run: + shell: bash + runs-on: aks-linux-4-cores + container: + image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 + env: + INSTALL_DIR: /__w/openvino/openvino/install + INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests + + steps: + - name: Create Directories + run: mkdir -p ${INSTALL_DIR} ${INSTALL_TEST_DIR} + + # + # Initialize OpenVINO + # + + - name: Download OpenVINO package + uses: actions/download-artifact@v3 + with: + name: openvino_package + path: ${{ env.INSTALL_DIR }} + + - name: Download OpenVINO tests package + uses: actions/download-artifact@v3 + with: + name: openvino_tests + path: ${{ env.INSTALL_TEST_DIR }} + + - name: Extract OpenVINO packages + run: | + pushd ${INSTALL_DIR} + tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR} && rm openvino_package.tar.gz || exit 1 + popd + pushd ${INSTALL_TEST_DIR} + tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} && rm openvino_tests.tar.gz || exit 1 + popd + + - name: Install OpenVINO dependencies + run: ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -c=gpu -y + # # Tests # @@ -370,14 +390,14 @@ jobs: # ${INSTALL_TEST_DIR}/paddle_tests --gtest_print_time=1 --gtest_filter=*smoke* \ # --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-PaddleTests.xml - # Present in the "Build" job as these tests require build directory - # - name: ONNX frontend tests - # run: | - # source ${INSTALL_DIR}/setupvars.sh - # ${INSTALL_TEST_DIR}/ov_onnx_frontend_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU*:*FrontEndLoadFromTest.testLoadFromTwoStreams*:*FrontEndLoadFromTest.testLoadFromTwoFiles* \ - # --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ONNXFrontend.xml + - name: ONNX frontend tests + run: | + source ${INSTALL_DIR}/setupvars.sh + ${INSTALL_TEST_DIR}/ov_onnx_frontend_tests --gtest_print_time=1 \ + --gtest_filter=-*IE_GPU* \ + --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ONNXFrontend.xml - - name: TensorFlow Common tests + - name: TensorFlow Common frontend tests run: | source ${INSTALL_DIR}/setupvars.sh ${INSTALL_TEST_DIR}/ov_tensorflow_common_tests --gtest_print_time=1 \ @@ -395,7 +415,7 @@ jobs: ${INSTALL_TEST_DIR}/ov_tensorflow_lite_frontend_tests --gtest_print_time=1 \ --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-TensorFlowLiteFrontend.xml - - name: Transformations Tests + - name: Transformations func tests run: | source ${INSTALL_DIR}/setupvars.sh ${INSTALL_TEST_DIR}/ov_transformations_tests --gtest_print_time=1 \ @@ -419,20 +439,13 @@ jobs: ${INSTALL_TEST_DIR}/ov_cpu_unit_tests --gtest_print_time=1 \ --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-CPUUnitTests.xml - # Disabled in Azure: https://github.com/openvinotoolkit/openvino/blob/master/.ci/azure/linux.yml#L409 - # - name: GNA plugin unit tests - # run: | - # source ${INSTALL_DIR}/setupvars.sh - # ${INSTALL_TEST_DIR}/ov_gna_unit_tests --gtest_print_time=1 \ - # --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-GNAUnitTests.xml - - - name: AUTO UT + - name: AUTO unit tests run: | source ${INSTALL_DIR}/setupvars.sh ${INSTALL_TEST_DIR}/ov_auto_unit_tests --gtest_print_time=1 \ --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ov_auto_unit_tests.xml - - name: Template plugin tests + - name: Template plugin func tests run: | source ${INSTALL_DIR}/setupvars.sh ${INSTALL_TEST_DIR}/ov_template_func_tests --gtest_print_time=1 \ @@ -451,22 +464,22 @@ jobs: ${INSTALL_TEST_DIR}/ov_capi_test --gtest_print_time=1 \ --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OpenVINOCAPITests.xml - - name: AutoBatch FuncTests + - name: AutoBatch func tests run: | source ${INSTALL_DIR}/setupvars.sh ${INSTALL_TEST_DIR}/ov_auto_batch_func_tests --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ov_auto_batch_func_tests.xml - - name: Proxy Plugin Tests + - name: Proxy Plugin func tests run: | source ${INSTALL_DIR}/setupvars.sh ${INSTALL_TEST_DIR}/ov_proxy_plugin_tests --gtest_print_time=1 --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVProxyTests.xml - - name: Hetero Unit Tests + - name: Hetero unit tests run: | source ${{ env.INSTALL_DIR }}/setupvars.sh ${{ env.INSTALL_TEST_DIR }}/ov_hetero_unit_tests --gtest_print_time=1 --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-OVHeteroUnitTests.xml - - name: Hetero Func Tests + - name: Hetero func tests run: | source ${INSTALL_DIR}/setupvars.sh ${INSTALL_TEST_DIR}/ov_hetero_func_tests --gtest_print_time=1 --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVHeteroFuncTests.xml @@ -487,29 +500,20 @@ jobs: runs-on: aks-linux-4-cores container: image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 - volumes: - - /mount/caches:/mount/caches env: - DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input OPENVINO_REPO: /__w/openvino/openvino/openvino - OPENVINO_CONTRIB_REPO: /__w/openvino/openvino/openvino_contrib INSTALL_DIR: /__w/openvino/openvino/install INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests - SAMPLES_INSTALL_DIR: /__w/openvino/openvino/install/samples LAYER_TESTS_INSTALL_DIR: /__w/openvino/openvino/install/tests/layer_tests - MODEL_HUB_TESTS_INSTALL_DIR: /__w/openvino/openvino/install/tests/model_hub_tests - OV_TEMP: /__w/openvino/openvino/openvino_temp - PYTHON_STATIC_ARGS: -m "not dynamic_library" steps: - name: Create Directories - run: | - mkdir -p ${INSTALL_DIR} ${INSTALL_TEST_DIR} + run: mkdir -p ${INSTALL_DIR} ${INSTALL_TEST_DIR} - name: Install git run: | apt update - apt --assume-yes install git git-lfs + apt install --assume-yes --no-install-recommends git ca-certificates - name: Clone OpenVINO uses: actions/checkout@v4 @@ -517,47 +521,19 @@ jobs: path: 'openvino' # - # Dependencies + # Initilaize OpenVINO # - - name: Install dependencies - run: | - apt update - apt --assume-yes install openjdk-11-jdk libbz2-dev clang unzip libpugixml-dev libtbb-dev intel-opencl-icd ocl-icd-opencl-dev opencl-headers libsnappy-dev - - uses: actions/setup-python@v4 with: python-version: '3.11' - - name: Install python dependencies + - name: Install Python API tests dependencies run: | - # For Python API - python3 -m pip install --upgrade pip - python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/wheel/requirements-dev.txt - python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/requirements.txt - - # For running Python API tests - python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt - - # For running ONNX frontend unit tests - python3 -m pip install --force-reinstall -r ${OPENVINO_REPO}/src/frontends/onnx/tests/requirements.txt - - # For running TensorFlow frontend unit tests - python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/tensorflow/tests/requirements.txt - - # For running Paddle frontend unit tests - python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/paddle/tests/requirements.txt - # For torchvision to OpenVINO preprocessing converter python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/src/openvino/preprocess/torchvision/requirements.txt - - name: Install MO dependencies - run: | - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_mxnet.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_caffe.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_kaldi.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_onnx.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_tf2.txt + # TODO: replace with Python API tests requirements python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_dev.txt - name: Download OpenVINO package @@ -582,53 +558,46 @@ jobs: tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} && rm openvino_tests.tar.gz || exit 1 popd - - name: Install Python wheels - run: | - python3 -m pip install openvino-dev --find-links=${INSTALL_DIR}/tools + - name: Install OpenVINO Python wheels + run: python3 -m pip install openvino-dev[mxnet,caffe,kaldi,onnx,tensorflow2] --find-links=${INSTALL_DIR}/tools + + # + # Tests + # - name: nGraph and IE Python Bindings Tests run: | - source ${INSTALL_DIR}/setupvars.sh - python3 -m pytest -s ${INSTALL_TEST_DIR}/pyngraph ${{ env.PYTHON_STATIC_ARGS }} \ + python3 -m pytest -s ${INSTALL_TEST_DIR}/pyngraph \ --junitxml=${INSTALL_TEST_DIR}/TEST-Pyngraph.xml \ --ignore=${INSTALL_TEST_DIR}/pyngraph/tests/test_onnx/test_zoo_models.py \ --ignore=${INSTALL_TEST_DIR}/pyngraph/tests/test_onnx/test_backend.py - name: Python API 2.0 Tests run: | - # For python imports to import pybind_mock_frontend + # For python imports to import 'pybind_mock_frontend' export PYTHONPATH=${INSTALL_TEST_DIR}:$PYTHONPATH - source ${INSTALL_DIR}/setupvars.sh + # for 'template' extension export LD_LIBRARY_PATH=${INSTALL_TEST_DIR}:$LD_LIBRARY_PATH - python3 -m pytest -sv ${INSTALL_TEST_DIR}/pyopenvino ${{ env.PYTHON_STATIC_ARGS }} \ + python3 -m pytest -sv ${INSTALL_TEST_DIR}/pyopenvino \ --junitxml=${INSTALL_TEST_DIR}/TEST-Pyngraph.xml \ --ignore=${INSTALL_TEST_DIR}/pyopenvino/tests/test_utils/test_utils.py \ --ignore=${INSTALL_TEST_DIR}/pyopenvino/tests/test_onnx/test_zoo_models.py \ --ignore=${INSTALL_TEST_DIR}/pyopenvino/tests/test_onnx/test_backend.py - - name: Python API snippets + - name: Docs Python snippets run: | - source ${INSTALL_DIR}/setupvars.sh - export PYTHONPATH=${INSTALL_TEST_DIR}:${OPENVINO_REPO}/docs/:$PYTHONPATH + # to find 'snippets' module in docs + export PYTHONPATH=${OPENVINO_REPO}/docs/:$PYTHONPATH + # for 'template' extension export LD_LIBRARY_PATH=${INSTALL_TEST_DIR}:$LD_LIBRARY_PATH - python3 ${OPENVINO_REPO}/docs/snippets/main.py - - name: Model Optimizer UT + - name: Model Optimizer unit tests run: | - - export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:${INSTALL_TEST_DIR}:${INSTALL_DIR}/python/python3.11:$PYTHONPATH - - # TODO: figure out why they need to be reinstalled - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_mxnet.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_caffe.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_kaldi.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_onnx.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_tf2.txt - python3 -m pip install -r ${OPENVINO_REPO}/tools/mo/requirements_dev.txt - - source ${INSTALL_DIR}/setupvars.sh + export PYTHONPATH=${INSTALL_TEST_DIR}:$PYTHONPATH + # required for MxNet + apt-get install -y libgomp1 libquadmath0 python3 -m pytest -s ${INSTALL_TEST_DIR}/mo/unit_tests \ --junitxml=${INSTALL_TEST_DIR}/TEST-ModelOptimizer.xml @@ -636,8 +605,7 @@ jobs: - name: PyTorch Layer Tests run: | python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt - export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH - source ${INSTALL_DIR}/setupvars.sh + export PYTHONPATH=${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/pytorch_tests -m precommit --junitxml=${INSTALL_TEST_DIR}/TEST-pytorch.xml env: @@ -647,11 +615,8 @@ jobs: - name: TensorFlow 1 Layer Tests - TF FE run: | python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt - export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH - source ${INSTALL_DIR}/setupvars.sh - python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow_tests/ --use_new_frontend -m precommit_tf_fe --junitxml=${INSTALL_TEST_DIR}/TEST-tf_fe.xml env: TEST_DEVICE: CPU @@ -662,8 +627,6 @@ jobs: python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH - source ${INSTALL_DIR}/setupvars.sh - python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow2_keras_tests/ --use_new_frontend -m precommit_tf_fe --junitxml=${INSTALL_TEST_DIR}/TEST-tf2_fe.xml env: TEST_DEVICE: CPU @@ -674,8 +637,6 @@ jobs: python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt export PYTHONPATH=${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH - source ${INSTALL_DIR}/setupvars.sh - python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/jax_tests/ -m precommit --junitxml=${INSTALL_TEST_DIR}/TEST-jax.xml env: TEST_DEVICE: CPU @@ -684,7 +645,6 @@ jobs: run: | python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH - source ${INSTALL_DIR}/setupvars.sh python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow_tests/test_tf_Roll.py --ir_version=10 --junitxml=${INSTALL_TEST_DIR}/TEST-tf_Roll.xml @@ -692,7 +652,6 @@ jobs: run: | python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH - source ${INSTALL_DIR}/setupvars.sh python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow2_keras_tests/test_tf2_keras_activation.py \ --ir_version=11 --junitxml=${INSTALL_TEST_DIR}/TEST-tf2_Activation.xml -k "sigmoid" @@ -704,7 +663,6 @@ jobs: run: | python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH - source ${INSTALL_DIR}/setupvars.sh python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/tensorflow_lite_tests/ --junitxml=${INSTALL_TEST_DIR}/TEST-tfl_fe.xml env: @@ -714,8 +672,10 @@ jobs: - name: MO Python API Tests run: | python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt - export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH + export PYTHONPATH=${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH + # TODO: remove setupvars.sh from here; currently, it's used for 'test_utils' installed in '/python/openvino' source ${INSTALL_DIR}/setupvars.sh + bash ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -y python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/mo_python_api_tests --junitxml=${INSTALL_TEST_DIR}/TEST-test_mo_convert.xml env: @@ -726,15 +686,15 @@ jobs: run: | python3 -m pip install -r ${LAYER_TESTS_INSTALL_DIR}/requirements.txt export PYTHONPATH=${OPENVINO_REPO}/tools/mo/:${LAYER_TESTS_INSTALL_DIR}:$PYTHONPATH + # to allow 'libtest_builtin_extensions.so' to find 'libopenvino_onnx_frontend.so' source ${INSTALL_DIR}/setupvars.sh python3 -m pytest ${LAYER_TESTS_INSTALL_DIR}/py_frontend_tests --junitxml=${INSTALL_TEST_DIR}/TEST-test_py_fontend.xml - - name: Conversion UT + - name: OVC unit tests run: | - # For python imports to import pybind_mock_frontend + # For python imports to import 'pybind_mock_frontend' export PYTHONPATH=${INSTALL_TEST_DIR}:$PYTHONPATH - source ${INSTALL_DIR}/setupvars.sh python3 -m pytest -s ${OPENVINO_REPO}/tools/ovc/unit_tests --junitxml=${INSTALL_TEST_DIR}/TEST-OpenVinoConversion.xml @@ -756,10 +716,7 @@ jobs: runs-on: aks-linux-4-cores container: image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 - volumes: - - /mount/caches:/mount/caches env: - DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input INSTALL_DIR: /__w/openvino/openvino/install INSTALL_TEST_DIR: /__w/openvino/openvino/install/tests PARALLEL_TEST_SCRIPT: /__w/openvino/openvino/install/tests/functional_test_utils/run_parallel.py @@ -769,11 +726,6 @@ jobs: - name: Create Directories run: mkdir -p ${INSTALL_DIR} ${INSTALL_TEST_DIR} - - name: Install dependencies - run: | - apt update - apt --assume-yes install openjdk-11-jdk libbz2-dev clang unzip libpugixml-dev libtbb-dev intel-opencl-icd ocl-icd-opencl-dev opencl-headers libsnappy-dev - - name: Download OpenVINO package uses: actions/download-artifact@v3 with: @@ -795,14 +747,18 @@ jobs: tar -xzf openvino_tests.tar.gz -C ${INSTALL_DIR} && rm openvino_tests.tar.gz || exit 1 popd + - name: Install OpenVINO dependencies + run: bash ${INSTALL_DIR}/install_dependencies/install_openvino_dependencies.sh -c=core -y + + - name: Install 'actions/setup-python@v4' dependencies + run: apt-get update && apt-get install -y libssl1.1 + - uses: actions/setup-python@v4 with: python-version: '3.11' - - name: Install python dependencies - run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r ${INSTALL_TEST_DIR}/functional_test_utils/requirements.txt + - name: Install python dependencies for run_parallel.py + run: python3 -m pip install -r ${INSTALL_TEST_DIR}/functional_test_utils/requirements.txt - name: Restore tests execution time uses: actions/cache/restore@v3 @@ -852,8 +808,7 @@ jobs: steps: - name: Create Directories - run: | - mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }} + run: mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }} - uses: actions/setup-python@v4 with: @@ -881,16 +836,17 @@ jobs: tar -xzf openvino_tests.tar.gz -C ${{ env.INSTALL_DIR }} && rm openvino_tests.tar.gz || exit 1 popd - - name: Install Python wheels + - name: Install OpenVINO Python wheels run: | python3 -m pip install openvino --find-links=${{ env.INSTALL_DIR }}/tools - - name: TensorFlow Hub Tests - TF FE + - name: Install TF Hub tests requirements run: | python3 -m pip install -r ${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}/tf_hub_tests/requirements.txt + - name: TensorFlow Hub Tests - TF FE + run: | export PYTHONPATH=${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}:$PYTHONPATH - python3 -m pytest ${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}/tf_hub_tests/ -m ${{ env.TYPE }} --html=${{ env.INSTALL_TEST_DIR }}/TEST-tf_hub_tf_fe.html --self-contained-html env: TYPE: ${{ github.event_name == 'schedule' && 'nightly' || 'precommit'}} @@ -912,7 +868,6 @@ jobs: shell: bash runs-on: ${{ github.event_name == 'schedule' && 'ubuntu-20.04-8-cores' || 'ubuntu-20.04'}} env: - DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input INSTALL_DIR: ${{ github.workspace }}/install INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests MODEL_HUB_TESTS_INSTALL_DIR: ${{ github.workspace }}/install/tests/model_hub_tests @@ -925,9 +880,10 @@ jobs: sudo rm -rf /opt/ghc echo "Available storage:" df -h + - name: Create Directories - run: | - mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }} + run: mkdir -p ${{ env.INSTALL_DIR }} ${{ env.INSTALL_TEST_DIR }} + - uses: actions/setup-python@v4 with: python-version: '3.11' @@ -956,7 +912,7 @@ jobs: run: | python3 -m pip install openvino --find-links=${{ env.INSTALL_DIR }}/tools - - name: Install requirements + - name: Install PyTorch tests requirements run: | python3 -m pip install -r ${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}/torch_tests/requirements.txt python3 -m pip install -r ${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}/torch_tests/requirements_secondary.txt @@ -964,6 +920,7 @@ jobs: echo "Available storage:" df -h du -h -d0 ~/.cache ~/* + - name: PyTorch Models Tests run: | export PYTHONPATH=${{ env.MODEL_HUB_TESTS_INSTALL_DIR }}:$PYTHONPATH @@ -973,7 +930,7 @@ jobs: TEST_DEVICE: CPU - name: Available storage after tests - run: | + run: | echo "Available storage:" df -h du -h -d0 ~/.cache ~/* diff --git a/.github/workflows/linux_debian.yml b/.github/workflows/linux_debian.yml index bff429be48c..85865962478 100644 --- a/.github/workflows/linux_debian.yml +++ b/.github/workflows/linux_debian.yml @@ -263,7 +263,7 @@ jobs: - name: ONNX frontend tests run: | export LD_LIBRARY_PATH=${{ env.INSTALL_TEST_DIR }}:$LD_LIBRARY_PATH - ${{ env.INSTALL_TEST_DIR }}/ov_onnx_frontend_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU*:*FrontEndLoadFromTest.testLoadFromTwoStreams*:*FrontEndLoadFromTest.testLoadFromTwoFiles* \ + ${{ env.INSTALL_TEST_DIR }}/ov_onnx_frontend_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU* \ --gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ONNXFrontend.xml - name: TensorFlow frontend tests diff --git a/CMakeLists.txt b/CMakeLists.txt index e9d4760eb86..b69df0194f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -123,7 +123,7 @@ function(openvino_developer_export_targets) endfunction() # add target with processed tests model zoo -if (ENABLE_TESTS) +if(ENABLE_TESTS) include(cmake/test_model_zoo.cmake) endif() @@ -135,15 +135,21 @@ if(ENABLE_SAMPLES OR ENABLE_TESTS) endif() # Enable interpreter backend for tests -if (ENABLE_TESTS OR ENABLE_TEMPLATE) +if(ENABLE_TESTS OR ENABLE_TEMPLATE) add_subdirectory(src/plugins/template/backend) endif() + include(cmake/extra_modules.cmake) add_subdirectory(docs) add_subdirectory(tools) add_subdirectory(scripts) add_subdirectory(licensing) +if(ENABLE_TESTS) + # layers and other more high-level / e2e tests + add_subdirectory(tests) +endif() + # # CPack # diff --git a/cmake/test_model_zoo.cmake b/cmake/test_model_zoo.cmake index 9a786ed0697..ee6cd463fd7 100644 --- a/cmake/test_model_zoo.cmake +++ b/cmake/test_model_zoo.cmake @@ -72,23 +72,23 @@ function(ov_model_convert SRC DST OUT) endfunction() if(OV_GENERATOR_MULTI_CONFIG AND CMAKE_VERSION VERSION_GREATER_EQUAL 3.20) - set(test_model_zoo_output_dir "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/test_model_zoo") + set(TEST_MODEL_ZOO_OUTPUT_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$/test_model_zoo" CACHE PATH "") else() - set(test_model_zoo_output_dir "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_model_zoo") + set(TEST_MODEL_ZOO_OUTPUT_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_model_zoo" CACHE PATH "") endif() ov_model_convert("${CMAKE_CURRENT_SOURCE_DIR}/src/core/tests" - "${test_model_zoo_output_dir}/core" + "${TEST_MODEL_ZOO_OUTPUT_DIR}/core" core_tests_out_files) set(rel_path "src/tests/functional/plugin/shared/models") ov_model_convert("${OpenVINO_SOURCE_DIR}/${rel_path}" - "${test_model_zoo_output_dir}/func_tests/models" + "${TEST_MODEL_ZOO_OUTPUT_DIR}/func_tests/models" ft_out_files) set(rel_path "src/frontends/onnx/tests/models") ov_model_convert("${OpenVINO_SOURCE_DIR}/${rel_path}" - "${test_model_zoo_output_dir}/onnx" + "${TEST_MODEL_ZOO_OUTPUT_DIR}/onnx" onnx_fe_out_files) if(ENABLE_TESTS) @@ -101,7 +101,7 @@ if(ENABLE_TESTS) # add_dependencies(test_model_zoo paddle_test_models) #endif() - install(DIRECTORY "${test_model_zoo_output_dir}" + install(DIRECTORY "${TEST_MODEL_ZOO_OUTPUT_DIR}" DESTINATION tests COMPONENT tests EXCLUDE_FROM_ALL) set(TEST_MODEL_ZOO "./test_model_zoo" CACHE PATH "Path to test model zoo") diff --git a/docs/snippets/gna/configure.py b/docs/snippets/gna/configure.py index ec94a54ae41..7f989a213fe 100644 --- a/docs/snippets/gna/configure.py +++ b/docs/snippets/gna/configure.py @@ -7,12 +7,17 @@ import openvino as ov from snippets import get_model -model = get_model() +def main(): + model = get_model() -# TODO: no GNA properties to replace strings -#! [ov_gna_exec_mode_hw_with_sw_fback] -core = ov.Core() -compiled_model = core.compile_model( - model, device_name="GNA", config={"GNA_DEVICE_MODE": "GNA_HW_WITH_SW_FBACK"} -) -#! [ov_gna_exec_mode_hw_with_sw_fback] + core = ov.Core() + if "GNA" not in core.available_devices: + return 0 + + # TODO: no GNA properties to replace strings + #! [ov_gna_exec_mode_hw_with_sw_fback] + core = ov.Core() + compiled_model = core.compile_model( + model, device_name="GNA", config={"GNA_DEVICE_MODE": "GNA_HW_WITH_SW_FBACK"} + ) + #! [ov_gna_exec_mode_hw_with_sw_fback] diff --git a/docs/snippets/gna/import_export.py b/docs/snippets/gna/import_export.py index 8aa6cd11267..971e71ee5a7 100644 --- a/docs/snippets/gna/import_export.py +++ b/docs/snippets/gna/import_export.py @@ -8,20 +8,24 @@ from io import BytesIO from snippets import get_model -model = get_model() -blob_path = "compiled_model.blob" +def main(): + model = get_model() + blob_path = "compiled_model.blob" -core = ov.Core() -compiled_model = core.compile_model(model, device_name="GNA") + core = ov.Core() + if "GNA" not in core.available_devices: + return 0 -#! [ov_gna_export] -user_stream = compiled_model.export_model() -with open(blob_path, "wb") as f: - f.write(user_stream) -#! [ov_gna_export] + compiled_model = core.compile_model(model, device_name="GNA") -# [ov_gna_import] -with open(blob_path, "rb") as f: - buf = BytesIO(f.read()) - compiled_model = core.import_model(buf, device_name="GNA") -# [ov_gna_import] + #! [ov_gna_export] + user_stream = compiled_model.export_model() + with open(blob_path, "wb") as f: + f.write(user_stream) + #! [ov_gna_export] + + # [ov_gna_import] + with open(blob_path, "rb") as f: + buf = BytesIO(f.read()) + compiled_model = core.import_model(buf, device_name="GNA") + # [ov_gna_import] diff --git a/docs/snippets/gna/set_batch.py b/docs/snippets/gna/set_batch.py index fac783923ca..bd12991ce11 100644 --- a/docs/snippets/gna/set_batch.py +++ b/docs/snippets/gna/set_batch.py @@ -7,22 +7,27 @@ import openvino as ov from snippets import get_path_to_model -batch_size = 8 -model_path = get_path_to_model([1, 32]) +def main(): + batch_size = 8 + model_path = get_path_to_model([1, 32]) -#! [ov_gna_read_model] -core = ov.Core() -model = core.read_model(model=model_path) -#! [ov_gna_read_model] + core = ov.Core() + if "GNA" not in core.available_devices: + return 0 -#! [ov_gna_set_nc_layout] -ppp = ov.preprocess.PrePostProcessor(model) -for i in range(len(model.inputs)): - input_name = model.input(i).get_any_name() - ppp.input(i).model().set_layout("N?") -model = ppp.build() -#! [ov_gna_set_nc_layout] + #! [ov_gna_read_model] + core = ov.Core() + model = core.read_model(model=model_path) + #! [ov_gna_read_model] -#! [ov_gna_set_batch_size] -ov.set_batch(model, batch_size) -#! [ov_gna_set_batch_size] + #! [ov_gna_set_nc_layout] + ppp = ov.preprocess.PrePostProcessor(model) + for i in range(len(model.inputs)): + input_name = model.input(i).get_any_name() + ppp.input(i).model().set_layout("N?") + model = ppp.build() + #! [ov_gna_set_nc_layout] + + #! [ov_gna_set_batch_size] + ov.set_batch(model, batch_size) + #! [ov_gna_set_batch_size] diff --git a/docs/snippets/ov_caching.py b/docs/snippets/ov_caching.py index 87d9907a8b9..a30ec968e7d 100644 --- a/docs/snippets/ov_caching.py +++ b/docs/snippets/ov_caching.py @@ -7,7 +7,7 @@ import openvino as ov import openvino.properties as props -device_name = 'GNA' +device_name = 'CPU' model_path = get_path_to_model() path_to_cache_dir = get_temp_dir() # ! [ov:caching:part0] diff --git a/src/frontends/onnx/tests/CMakeLists.txt b/src/frontends/onnx/tests/CMakeLists.txt index 5337060c290..3a971373d61 100644 --- a/src/frontends/onnx/tests/CMakeLists.txt +++ b/src/frontends/onnx/tests/CMakeLists.txt @@ -6,6 +6,8 @@ set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE OFF) ov_try_use_gold_linker() +ov_deprecated_no_errors() + message(STATUS "ONNX frontend test enabled") add_compile_definitions( @@ -13,7 +15,7 @@ add_compile_definitions( ONNX_MODELS_DIR="${TEST_MODEL_ZOO}/onnx" ONNX_TEST_MODELS="${TEST_MODEL_ZOO}/onnx/" TEST_ONNX_MODELS_DIRNAME="${TEST_MODEL_ZOO}/onnx/" - MANIFEST="${CMAKE_CURRENT_SOURCE_DIR}/unit_test.manifest" + MANIFEST="${TEST_MODEL_ZOO}/onnx/unit_test.manifest" SERIALIZED_ZOO="${TEST_MODEL_ZOO}") list(APPEND ONNX_TESTS_DEPENDENCIES openvino_template_extension) @@ -102,12 +104,18 @@ foreach(src IN LISTS SRC MULTI_TEST_SRC) endforeach() ov_add_clang_format_target(ov_onnx_frontend_tests_clang FOR_SOURCES ${full_src_names}) -foreach(BACKEND_NAME ${ACTIVE_BACKEND_LIST}) +foreach(BACKEND_NAME IN LISTS ACTIVE_BACKEND_LIST) string(TOLOWER ${BACKEND_NAME} BACKEND_DIR) string(REGEX REPLACE "([a-z0-9]+):(.*)" "\\1" BACKEND_DIR ${BACKEND_DIR}) - set(MANIFEST ${CMAKE_CURRENT_SOURCE_DIR}/runtime/${BACKEND_DIR}/unit_test.manifest) + set(SRC_MANIFEST ${CMAKE_CURRENT_SOURCE_DIR}/runtime/${BACKEND_DIR}/unit_test.manifest) + set(MANIFEST_RENAME "${BACKEND_DIR}_unit_test.manifest") + set(MANIFEST "${TEST_MODEL_ZOO}/onnx/${MANIFEST_RENAME}") - foreach(TEST_SRC ${MULTI_TEST_SRC}) + list(APPEND custom_commands + COMMAND ${CMAKE_COMMAND} -E copy "${SRC_MANIFEST}" + "${TEST_MODEL_ZOO_OUTPUT_DIR}/onnx/${MANIFEST_RENAME}") + + foreach(TEST_SRC IN LISTS MULTI_TEST_SRC) string(REPLACE ":" "_" BACKEND_NAME ${BACKEND_NAME}) string(REPLACE ".in." "_${BACKEND_NAME}." TARGET_NAME ${TEST_SRC}) configure_file(${TEST_SRC} ${TARGET_NAME}) @@ -123,7 +131,7 @@ set_property(TEST ov_onnx_frontend_tests PROPERTY LABELS OV ONNX_FE) add_dependencies(ov_onnx_frontend_tests template_extension) -target_include_directories(ov_onnx_frontend_tests PRIVATE ".") +target_include_directories(ov_onnx_frontend_tests PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") target_compile_definitions(ov_onnx_frontend_tests PRIVATE @@ -158,9 +166,13 @@ target_include_directories(ov_onnx_frontend_tests PRIVATE $) install(TARGETS ov_onnx_frontend_tests - RUNTIME DESTINATION tests - COMPONENT tests - EXCLUDE_FROM_ALL) + RUNTIME DESTINATION tests COMPONENT tests EXCLUDE_FROM_ALL) + +add_custom_command(TARGET ov_onnx_frontend_tests POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/unit_test.manifest" + "${TEST_MODEL_ZOO_OUTPUT_DIR}/onnx/unit_test.manifest" + ${custom_commands} + COMMENT "Copy test manifest files to ${TEST_MODEL_ZOO}/onnx") # process models add_dependencies(ov_onnx_frontend_tests test_model_zoo) diff --git a/src/frontends/onnx/tests/onnx_editor.cpp b/src/frontends/onnx/tests/onnx_editor.cpp index dcffac211fb..4f55f231a80 100644 --- a/src/frontends/onnx/tests/onnx_editor.cpp +++ b/src/frontends/onnx/tests/onnx_editor.cpp @@ -23,7 +23,7 @@ using namespace ov; using namespace ov::onnx_editor; using namespace ngraph::test; -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); namespace { using InputTypePred = std::function)>; diff --git a/src/frontends/onnx/tests/onnx_editor_topological_sort.cpp b/src/frontends/onnx/tests/onnx_editor_topological_sort.cpp index 3ad1b9cc285..47de95df993 100644 --- a/src/frontends/onnx/tests/onnx_editor_topological_sort.cpp +++ b/src/frontends/onnx/tests/onnx_editor_topological_sort.cpp @@ -16,7 +16,7 @@ using namespace ov; using namespace ov::onnx_editor; using namespace ngraph::test; -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); OPENVINO_TEST(onnx_editor, topological_sort_two_nodes_swap) { ONNXModelEditor editor{ov::util::path_join({ov::test::utils::getExecutableDirectory(), diff --git a/src/frontends/onnx/tests/onnx_import.in.cpp b/src/frontends/onnx/tests/onnx_import.in.cpp index 70e40178d8a..a442160ed23 100644 --- a/src/frontends/onnx/tests/onnx_import.in.cpp +++ b/src/frontends/onnx/tests/onnx_import.in.cpp @@ -47,7 +47,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START using namespace ngraph; -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), MANIFEST); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); using Inputs = std::vector>; diff --git a/src/frontends/onnx/tests/onnx_import_com_microsoft.in.cpp b/src/frontends/onnx/tests/onnx_import_com_microsoft.in.cpp index 75a71e94d88..cace755ed4a 100644 --- a/src/frontends/onnx/tests/onnx_import_com_microsoft.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_com_microsoft.in.cpp @@ -25,7 +25,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START using namespace ngraph; -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); OPENVINO_TEST(${BACKEND_NAME}, onnx_model_bias_gelu) { diff --git a/src/frontends/onnx/tests/onnx_import_const_folding.in.cpp b/src/frontends/onnx/tests/onnx_import_const_folding.in.cpp index 013d39ab1a8..a9a3afa5d6c 100644 --- a/src/frontends/onnx/tests/onnx_import_const_folding.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_const_folding.in.cpp @@ -21,7 +21,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START using namespace ngraph; using namespace ngraph::onnx_import; -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); namespace { template diff --git a/src/frontends/onnx/tests/onnx_import_controlflow.in.cpp b/src/frontends/onnx/tests/onnx_import_controlflow.in.cpp index ca6c1e9dd45..f6a10af3d5a 100644 --- a/src/frontends/onnx/tests/onnx_import_controlflow.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_controlflow.in.cpp @@ -20,7 +20,7 @@ using namespace ngraph::onnx_import; OPENVINO_SUPPRESS_DEPRECATED_START -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); // ~~~~~~~~TERMINATION CONDITION/TRIP COUNT COMBINATIONS TESTS:~~~~~~~~ diff --git a/src/frontends/onnx/tests/onnx_import_convpool.in.cpp b/src/frontends/onnx/tests/onnx_import_convpool.in.cpp index 8dbdbfcf359..d2b84034c1d 100644 --- a/src/frontends/onnx/tests/onnx_import_convpool.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_convpool.in.cpp @@ -29,7 +29,7 @@ using namespace ngraph; OPENVINO_SUPPRESS_DEPRECATED_START -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); using Inputs = std::vector>; diff --git a/src/frontends/onnx/tests/onnx_import_deprecated.in.cpp b/src/frontends/onnx/tests/onnx_import_deprecated.in.cpp index be5fd6aaa05..70df93755ab 100644 --- a/src/frontends/onnx/tests/onnx_import_deprecated.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_deprecated.in.cpp @@ -29,7 +29,7 @@ using namespace ngraph; OPENVINO_SUPPRESS_DEPRECATED_START -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); OPENVINO_TEST(${BACKEND_NAME}, onnx_model_affine) { diff --git a/src/frontends/onnx/tests/onnx_import_dyn_shapes.in.cpp b/src/frontends/onnx/tests/onnx_import_dyn_shapes.in.cpp index 55895821666..d9a3b81507f 100644 --- a/src/frontends/onnx/tests/onnx_import_dyn_shapes.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_dyn_shapes.in.cpp @@ -31,7 +31,7 @@ using namespace ngraph::onnx_import; OPENVINO_SUPPRESS_DEPRECATED_START -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); OPENVINO_TEST(${BACKEND_NAME}, onnx_dyn_shapes_onnx_dynamic_dims_to_ngraph_dynamic_dims) { diff --git a/src/frontends/onnx/tests/onnx_import_library.cpp b/src/frontends/onnx/tests/onnx_import_library.cpp index 22583eed8ce..f1523bc971e 100644 --- a/src/frontends/onnx/tests/onnx_import_library.cpp +++ b/src/frontends/onnx/tests/onnx_import_library.cpp @@ -4,10 +4,12 @@ #include +#include "common_test_utils/file_utils.hpp" #include "common_test_utils/test_control.hpp" #include "gtest/gtest.h" +#include "ngraph/file_util.hpp" -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); OPENVINO_TEST(onnx, check_ir_version_support) { // It appears you've changed the ONNX library version used by nGraph. Please update the value diff --git a/src/frontends/onnx/tests/onnx_import_org_openvino.in.cpp b/src/frontends/onnx/tests/onnx_import_org_openvino.in.cpp index 29cea1750c6..25f3f88a560 100644 --- a/src/frontends/onnx/tests/onnx_import_org_openvino.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_org_openvino.in.cpp @@ -44,7 +44,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START using namespace ngraph; -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); using Inputs = std::vector>; diff --git a/src/frontends/onnx/tests/onnx_import_org_pytorch.in.cpp b/src/frontends/onnx/tests/onnx_import_org_pytorch.in.cpp index 846219aa32a..da55566c38b 100644 --- a/src/frontends/onnx/tests/onnx_import_org_pytorch.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_org_pytorch.in.cpp @@ -25,7 +25,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START using namespace ngraph; -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); OPENVINO_TEST(${BACKEND_NAME}, onnx_model_adaptive_avg_pooling2d_nchw) { diff --git a/src/frontends/onnx/tests/onnx_import_quant.in.cpp b/src/frontends/onnx/tests/onnx_import_quant.in.cpp index 1c5b8baf62d..ea13274d1b8 100644 --- a/src/frontends/onnx/tests/onnx_import_quant.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_quant.in.cpp @@ -29,7 +29,7 @@ using namespace ngraph; OPENVINO_SUPPRESS_DEPRECATED_START -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); using Inputs = std::vector>; diff --git a/src/frontends/onnx/tests/onnx_import_reshape.in.cpp b/src/frontends/onnx/tests/onnx_import_reshape.in.cpp index 773a9df618a..c26f6fb5ad7 100644 --- a/src/frontends/onnx/tests/onnx_import_reshape.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_reshape.in.cpp @@ -28,7 +28,7 @@ using namespace ngraph; OPENVINO_SUPPRESS_DEPRECATED_START -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); using Inputs = std::vector>; diff --git a/src/frontends/onnx/tests/onnx_import_rnn.in.cpp b/src/frontends/onnx/tests/onnx_import_rnn.in.cpp index c7be2262ea9..f79e96f8fbb 100644 --- a/src/frontends/onnx/tests/onnx_import_rnn.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_rnn.in.cpp @@ -29,7 +29,7 @@ using namespace ngraph; OPENVINO_SUPPRESS_DEPRECATED_START -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); // ONNX LSTM tests (implemented by nGraph LSTMCell and LSTMSequence) diff --git a/src/frontends/onnx/tests/onnx_import_signal.in.cpp b/src/frontends/onnx/tests/onnx_import_signal.in.cpp index e8e2bb5e9f4..4b409891077 100644 --- a/src/frontends/onnx/tests/onnx_import_signal.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_signal.in.cpp @@ -26,7 +26,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START using namespace ngraph; -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); OPENVINO_TEST(${BACKEND_NAME}, onnx_model_dft) { diff --git a/src/frontends/onnx/tests/onnx_import_with_editor.in.cpp b/src/frontends/onnx/tests/onnx_import_with_editor.in.cpp index 8660c59e47f..f3b5f64ed13 100644 --- a/src/frontends/onnx/tests/onnx_import_with_editor.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_with_editor.in.cpp @@ -23,7 +23,7 @@ using namespace ngraph; OPENVINO_SUPPRESS_DEPRECATED_START -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); // ############################################################################ CORE TESTS diff --git a/src/frontends/onnx/tests/onnx_ops_registration.cpp b/src/frontends/onnx/tests/onnx_ops_registration.cpp index a465d449748..dbb8c18f181 100644 --- a/src/frontends/onnx/tests/onnx_ops_registration.cpp +++ b/src/frontends/onnx/tests/onnx_ops_registration.cpp @@ -19,7 +19,7 @@ using namespace ov; using namespace ov::onnx_editor; using namespace ngraph::test; -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); OPENVINO_TEST(ops_registration, check_importing_abs_in_all_opset_versions) { ONNXModelEditor editor{ diff --git a/src/frontends/onnx/tests/onnx_tensor_names.cpp b/src/frontends/onnx/tests/onnx_tensor_names.cpp index 9e4de0cd78e..53d55b1ebd1 100644 --- a/src/frontends/onnx/tests/onnx_tensor_names.cpp +++ b/src/frontends/onnx/tests/onnx_tensor_names.cpp @@ -15,7 +15,7 @@ OPENVINO_SUPPRESS_DEPRECATED_START using namespace ngraph; -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); using Inputs = std::vector>; using Outputs = std::vector>; diff --git a/src/frontends/onnx/tests/onnx_test_utils.in.cpp b/src/frontends/onnx/tests/onnx_test_utils.in.cpp index 996717caa97..6290310a7a4 100644 --- a/src/frontends/onnx/tests/onnx_test_utils.in.cpp +++ b/src/frontends/onnx/tests/onnx_test_utils.in.cpp @@ -21,7 +21,7 @@ using namespace ngraph; OPENVINO_SUPPRESS_DEPRECATED_START -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); static std::string s_device = backend_name_to_device("${BACKEND_NAME}"); // is there any benefit of running below tests on different backends? diff --git a/src/frontends/onnx/tests/onnx_transformations.cpp b/src/frontends/onnx/tests/onnx_transformations.cpp index 8e35bf77718..124877b2097 100644 --- a/src/frontends/onnx/tests/onnx_transformations.cpp +++ b/src/frontends/onnx/tests/onnx_transformations.cpp @@ -9,7 +9,7 @@ #include "ngraph/file_util.hpp" #include "onnx_test_util.hpp" -static std::string s_manifest = "${MANIFEST}"; +static std::string s_manifest = ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), "${MANIFEST}"); NGRAPH_SUPPRESS_DEPRECATED_START diff --git a/src/frontends/tests/frontend/shared/gtest_main_manifest/main.cpp b/src/frontends/tests/frontend/shared/gtest_main_manifest/main.cpp index 6782ef3ac0d..fdcd5753457 100644 --- a/src/frontends/tests/frontend/shared/gtest_main_manifest/main.cpp +++ b/src/frontends/tests/frontend/shared/gtest_main_manifest/main.cpp @@ -6,14 +6,19 @@ #include "gtest/gtest.h" #include "utils.hpp" +#include "common_test_utils/file_utils.hpp" -static const std::string manifest{ +#include "ngraph/file_util.hpp" + +OPENVINO_SUPPRESS_DEPRECATED_START +static const std::string s_manifest{ #ifdef MANIFEST - MANIFEST + ngraph::file_util::path_join(ov::test::utils::getExecutableDirectory(), MANIFEST) #endif }; +OPENVINO_SUPPRESS_DEPRECATED_END int main(int argc, char** argv) { printf("Running main() from %s:%d\n", __FILE__, __LINE__); - return FrontEndTestUtils::run_tests(argc, argv, manifest); + return FrontEndTestUtils::run_tests(argc, argv, s_manifest); } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 00000000000..12102199edd --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,7 @@ +# Copyright (C) 2018-2023 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +# + +add_subdirectory(layer_tests) +add_subdirectory(model_hub_tests) +add_subdirectory(samples_tests) diff --git a/tests/samples_tests/smoke_tests/requirements.txt b/tests/samples_tests/smoke_tests/requirements.txt index 2181461187e..f7e62115a30 100644 --- a/tests/samples_tests/smoke_tests/requirements.txt +++ b/tests/samples_tests/smoke_tests/requirements.txt @@ -7,7 +7,7 @@ numpy pytest py scikit-build -opencv-python +opencv-python-headless progress nibabel scipy \ No newline at end of file