262 lines
11 KiB
YAML
262 lines
11 KiB
YAML
name: C++ Unit Tests
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
runner:
|
|
description: 'Machine on which the tests would run'
|
|
type: string
|
|
required: true
|
|
image:
|
|
description: 'Docker image in which the tests would run'
|
|
type: string
|
|
required: false
|
|
default: null
|
|
affected-components:
|
|
description: 'Components that are affected by changes in the commit defined by the Smart CI Action'
|
|
type: string
|
|
required: true
|
|
|
|
jobs:
|
|
CXX_Unit_Tests:
|
|
name: C++ unit tests
|
|
timeout-minutes: 30
|
|
runs-on: ${{ inputs.runner }}
|
|
container:
|
|
image: ${{ inputs.image }}
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input
|
|
INSTALL_DIR: ${{ github.workspace }}/install
|
|
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
|
|
steps:
|
|
- name: Download OpenVINO package
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: openvino_package
|
|
path: ${{ env.INSTALL_DIR }}
|
|
|
|
- name: Download OpenVINO tests package
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: openvino_tests
|
|
path: ${{ env.INSTALL_TEST_DIR }}
|
|
|
|
# Needed as ${{ github.workspace }} is not working correctly when using Docker
|
|
- name: Setup Variables
|
|
run: |
|
|
echo "INSTALL_DIR=$GITHUB_WORKSPACE/install" >> "$GITHUB_ENV"
|
|
echo "INSTALL_TEST_DIR=$GITHUB_WORKSPACE/install/tests" >> "$GITHUB_ENV"
|
|
|
|
- name: Extract OpenVINO packages
|
|
run: |
|
|
pushd $INSTALL_DIR
|
|
tar -xzf openvino_package.tar.gz -C $INSTALL_DIR
|
|
popd
|
|
pushd $INSTALL_TEST_DIR
|
|
tar -xzf openvino_tests.tar.gz -C $INSTALL_DIR
|
|
popd
|
|
|
|
#
|
|
# Tests
|
|
#
|
|
|
|
- name: OpenVINO Core Unit Tests
|
|
if: fromJSON(inputs.affected-components).Core.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_core_unit_tests --gtest_print_time=1 --gtest_filter=-*IE_GPU* \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OVCoreUT.xml
|
|
|
|
- name: OpenVINO Inference Functional Tests
|
|
if: fromJSON(inputs.affected-components).inference.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_inference_functional_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-InferenceFunc.xml
|
|
|
|
- name: OpenVINO Inference Unit Tests
|
|
if: fromJSON(inputs.affected-components).inference.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_inference_unit_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-InferenceUnit.xml
|
|
|
|
- name: Low Precision Transformations Tests
|
|
if: fromJSON(inputs.affected-components).LP_transformations.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
|
|
${INSTALL_TEST_DIR}/ov_lp_transformations_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-LpTransformations.xml
|
|
|
|
- name: OpenVINO Conditional compilation tests
|
|
if: fromJSON(inputs.affected-components).Core.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_conditional_compilation_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ConditionalCompilation.xml
|
|
|
|
- name: IR frontend tests
|
|
if: fromJSON(inputs.affected-components).IR_FE.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_ir_frontend_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-IRFrontend.xml
|
|
|
|
- name: PaddlePaddle frontend tests
|
|
if: fromJSON(inputs.affected-components).PDPD_FE.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/paddle_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-PaddleTests.xml
|
|
|
|
- name: ONNX frontend tests
|
|
if: ${{ fromJSON(inputs.affected-components).ONNX_FE.test && runner.arch != 'ARM64' }} # Ticket for macOS ARM64: 122663, for Linux ARM64: 126280
|
|
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 frontend tests
|
|
if: fromJSON(inputs.affected-components).TF_FE.test ||
|
|
fromJSON(inputs.affected-components).TFL_FE.test &&
|
|
(runner.os != 'macOS' && runner.arch != 'ARM64')
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_tensorflow_common_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-TensorFlowCommonFrontend.xml
|
|
|
|
- name: TensorFlow frontend tests
|
|
if: fromJSON(inputs.affected-components).TF_FE.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
|
|
${INSTALL_TEST_DIR}/ov_tensorflow_frontend_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-TensorFlowFrontend.xml
|
|
|
|
- name: TensorFlow Lite frontend tests
|
|
if: fromJSON(inputs.affected-components).TFL_FE.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_tensorflow_lite_frontend_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-TensorFlowLiteFrontend.xml
|
|
|
|
- name: Transformations func tests
|
|
if: ${{ fromJSON(inputs.affected-components).transformations.test && runner.arch != 'ARM64' }} # Ticket: 126281
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
|
|
${INSTALL_TEST_DIR}/ov_transformations_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-Transformations.xml
|
|
|
|
- name: Common test utils tests
|
|
if: ${{ runner.os != 'macOS' }} # Ticket: 134469
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_util_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-CommonUtilTests.xml
|
|
|
|
- name: Snippets func tests
|
|
if: fromJSON(inputs.affected-components).CPU.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_snippets_func_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-SnippetsFuncTests.xml
|
|
|
|
- name: CPU plugin unit tests
|
|
if: fromJSON(inputs.affected-components).CPU.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_cpu_unit_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-CPUUnitTests.xml
|
|
|
|
- name: ov_subgraphs_dumper_tests tests
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_subgraphs_dumper_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ov_subgraphs_dumper_tests.xml
|
|
|
|
- name: Template OpImpl tests
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_op_conformance_tests --gtest_print_time=1 --device=TEMPLATE --gtest_filter=*OpImpl*\
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OpImplTests.xml
|
|
|
|
- name: AUTO unit tests
|
|
if: fromJSON(inputs.affected-components).AUTO.test
|
|
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: AUTO func Tests
|
|
if: fromJSON(inputs.affected-components).AUTO.test
|
|
run: |
|
|
source ${{ env.INSTALL_DIR }}/setupvars.sh
|
|
${{ env.INSTALL_TEST_DIR }}/ov_auto_func_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${{ env.INSTALL_TEST_DIR }}/TEST-ov_auto_func_tests.xml
|
|
|
|
- name: Template plugin func tests
|
|
if: fromJSON(inputs.affected-components).TEMPLATE.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_template_func_tests --gtest_print_time=1 \
|
|
--gtest_filter=*smoke* \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-TemplateFuncTests.xml
|
|
|
|
- name: OV utils unit tests
|
|
if: ${{ runner.os != 'macOS' }} # Ticket: 134469
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_util_tests --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ov_util_tests.xml
|
|
|
|
- name: OpenVINO C API tests
|
|
if: fromJSON(inputs.affected-components).C_API.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_capi_test --gtest_print_time=1 \
|
|
--gtest_output=xml:${INSTALL_TEST_DIR}/TEST-OpenVINOCAPITests.xml
|
|
|
|
- name: AutoBatch unit tests
|
|
if: fromJSON(inputs.affected-components).AUTO_BATCH.test
|
|
run: |
|
|
source ${INSTALL_DIR}/setupvars.sh
|
|
${INSTALL_TEST_DIR}/ov_auto_batch_unit_tests --gtest_output=xml:${INSTALL_TEST_DIR}/TEST-ov_auto_batch_unit_tests.xml
|
|
|
|
- name: AutoBatch func tests
|
|
if: fromJSON(inputs.affected-components).AUTO_BATCH.test
|
|
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 --gtest_filter="*smoke*"
|
|
|
|
- name: Proxy Plugin func tests
|
|
if: fromJSON(inputs.affected-components).PROXY.test
|
|
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
|
|
if: fromJSON(inputs.affected-components).HETERO.test
|
|
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
|
|
if: fromJSON(inputs.affected-components).HETERO.test
|
|
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 --gtest_filter="*smoke*"
|
|
|
|
- name: Upload Test Results
|
|
uses: actions/upload-artifact@v4
|
|
if: ${{ !cancelled() }}
|
|
with:
|
|
name: test-results-cpp
|
|
path: ${{ env.INSTALL_TEST_DIR }}/TEST*.xml
|
|
if-no-files-found: 'warn'
|