From eac0be0f822489697dce5aa36e758fb365881084 Mon Sep 17 00:00:00 2001 From: Oleg Pipikin Date: Thu, 22 Dec 2022 11:58:48 +0100 Subject: [PATCH] Move paddle reader tests from ieFuncTests to paddle_tests (#14166) * Move paddle reader tests from ieFuncTests to paddle_tests Fix code style Modify Paddle reader test to use generated model * Enable paddle tests in Azure CI Co-authored-by: Ilya Churaev --- .ci/azure/linux.yml | 4 + .ci/azure/windows.yml | 4 + src/frontends/paddle/tests/CMakeLists.txt | 7 +- .../paddle/tests}/lib_close.cpp | 2 +- .../paddle/tests/read_paddle_model_test.cpp | 73 ++++++++++++++ .../paddle/tests/skip_tests_config.cpp | 17 ++++ .../paddle_reader/models/relu.pdmodel | Bin 7839 -> 0 bytes .../paddle_reader/read_paddle_model_test.cpp | 90 ------------------ 8 files changed, 103 insertions(+), 94 deletions(-) rename src/{tests/functional/inference_engine/paddle_reader => frontends/paddle/tests}/lib_close.cpp (93%) create mode 100644 src/frontends/paddle/tests/read_paddle_model_test.cpp create mode 100644 src/frontends/paddle/tests/skip_tests_config.cpp delete mode 100644 src/tests/functional/inference_engine/paddle_reader/models/relu.pdmodel delete mode 100644 src/tests/functional/inference_engine/paddle_reader/read_paddle_model_test.cpp diff --git a/.ci/azure/linux.yml b/.ci/azure/linux.yml index 665230b6099..74973a9b38a 100644 --- a/.ci/azure/linux.yml +++ b/.ci/azure/linux.yml @@ -380,6 +380,10 @@ jobs: displayName: 'Conditional Compilation Tests' continueOnError: false + - script: $(RUN_PREFIX) $(INSTALL_TEST_DIR)/paddle_tests --gtest_print_time=1 --gtest_output=xml:$(INSTALL_TEST_DIR)/TEST-PaddleTests.xml + displayName: 'Paddle Tests' + continueOnError: false + - script: $(RUN_PREFIX) $(INSTALL_TEST_DIR)/ov_ir_frontend_tests --gtest_print_time=1 --gtest_output=xml:$(INSTALL_TEST_DIR)/TEST-IRFrontend.xml displayName: 'IR Frontend Tests' continueOnError: false diff --git a/.ci/azure/windows.yml b/.ci/azure/windows.yml index 8bb4a6e1652..ecb861a004c 100644 --- a/.ci/azure/windows.yml +++ b/.ci/azure/windows.yml @@ -278,6 +278,10 @@ jobs: displayName: 'Conditional Compilation Tests' continueOnError: false + - script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\paddle_tests --gtest_print_time=1 --gtest_output=xml:$(INSTALL_TEST_DIR)\TEST-PaddleTests.xml + displayName: 'Paddle Tests' + continueOnError: false + - script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\ov_ir_frontend_tests --gtest_print_time=1 --gtest_output=xml:$(INSTALL_TEST_DIR)\TEST-IRFrontend.xml displayName: 'IR Frontend Tests' continueOnError: false diff --git a/src/frontends/paddle/tests/CMakeLists.txt b/src/frontends/paddle/tests/CMakeLists.txt index b8752151cc4..376ab0eadf6 100644 --- a/src/frontends/paddle/tests/CMakeLists.txt +++ b/src/frontends/paddle/tests/CMakeLists.txt @@ -12,11 +12,12 @@ ov_add_test_target( openvino_paddle_frontend paddle_fe_standalone_build_test LINK_LIBRARIES - cnpy + cnpy frontend_shared_test_classes - openvino_paddle_frontend - openvino::runtime + openvino_paddle_frontend + openvino::runtime gtest_main_manifest + funcTestUtils ADD_CLANG_FORMAT LABELS OV diff --git a/src/tests/functional/inference_engine/paddle_reader/lib_close.cpp b/src/frontends/paddle/tests/lib_close.cpp similarity index 93% rename from src/tests/functional/inference_engine/paddle_reader/lib_close.cpp rename to src/frontends/paddle/tests/lib_close.cpp index 32f8a344523..295a828c0a2 100644 --- a/src/tests/functional/inference_engine/paddle_reader/lib_close.cpp +++ b/src/frontends/paddle/tests/lib_close.cpp @@ -1,7 +1,7 @@ // Copyright (C) 2018-2022 Intel Corporation // SPDX-License-Identifier: Apache-2.0 // -#include "lib_close.hpp" +#include "functional_test_utils/lib_close.hpp" #include diff --git a/src/frontends/paddle/tests/read_paddle_model_test.cpp b/src/frontends/paddle/tests/read_paddle_model_test.cpp new file mode 100644 index 00000000000..3524fe11cf8 --- /dev/null +++ b/src/frontends/paddle/tests/read_paddle_model_test.cpp @@ -0,0 +1,73 @@ +// Copyright (C) 2018-2022 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include +#include +#include + +#include +#include +#include +#include + +#include "common_test_utils/ngraph_test_utils.hpp" +#include "common_test_utils/unicode_utils.hpp" +#include "frontend/shared/include/utils.hpp" +#include "openvino/openvino.hpp" +#include "openvino/opsets/opset1.hpp" +#include "transformations/serialize.hpp" + +TEST(Paddle_Reader_Tests, ImportBasicModelToCore) { + auto model = std::string(TEST_PADDLE_MODELS_DIRNAME) + "relu/relu.pdmodel"; + + ov::Core core; + auto function = core.read_model(FrontEndTestUtils::make_model_path(model)); + + const auto inputType = ov::element::f32; + const auto inputShape = ov::Shape{3}; + const auto data = std::make_shared(inputType, inputShape); + data->set_friendly_name("x"); + data->output(0).get_tensor().add_names({"x"}); + const auto relu = std::make_shared(data->output(0)); + relu->set_friendly_name("relu_0.tmp_0"); + relu->output(0).get_tensor().add_names({"relu_0.tmp_0"}); + const auto result = std::make_shared(relu->output(0)); + result->set_friendly_name("relu_0.tmp_0/Result"); + const auto reference = std::make_shared(ov::NodeVector{result}, ov::ParameterVector{data}, "Model0"); + const FunctionsComparator func_comparator = FunctionsComparator::with_default().enable(FunctionsComparator::NAMES); + const FunctionsComparator::Result res = func_comparator(function, reference); + ASSERT_TRUE(res.valid) << res.message; +} + +#if defined(OPENVINO_ENABLE_UNICODE_PATH_SUPPORT) && defined(_WIN32) +TEST(Paddle_Reader_Tests, ImportBasicModelToCoreWstring) { + std::string win_dir_path{TEST_PADDLE_MODELS_DIRNAME "relu/relu.pdmodel"}; + win_dir_path = FrontEndTestUtils::make_model_path(win_dir_path); + std::wstring wmodel = + CommonTestUtils::addUnicodePostfixToPath(win_dir_path, CommonTestUtils::test_unicode_postfix_vector[0]); + bool is_copy_successfully = CommonTestUtils::copyFile(win_dir_path, wmodel); + if (!is_copy_successfully) { + FAIL() << "Unable to copy from '" << win_dir_path << "' to '" << ov::util::wstring_to_string(wmodel) << "'"; + } + + ov::Core core; + auto function = core.read_model(wmodel); + CommonTestUtils::removeFile(wmodel); + + const auto inputType = ov::element::f32; + const auto inputShape = ov::Shape{3}; + const auto data = std::make_shared(inputType, inputShape); + data->set_friendly_name("x"); + data->output(0).get_tensor().add_names({"x"}); + const auto relu = std::make_shared(data->output(0)); + relu->set_friendly_name("relu_0.tmp_0"); + relu->output(0).get_tensor().add_names({"relu_0.tmp_0"}); + const auto result = std::make_shared(relu->output(0)); + result->set_friendly_name("relu_0.tmp_0/Result"); + const auto reference = std::make_shared(ov::NodeVector{result}, ov::ParameterVector{data}, "Model0"); + const FunctionsComparator func_comparator = FunctionsComparator::with_default().enable(FunctionsComparator::NAMES); + const FunctionsComparator::Result res = func_comparator(function, reference); + ASSERT_TRUE(res.valid) << res.message; +} +#endif diff --git a/src/frontends/paddle/tests/skip_tests_config.cpp b/src/frontends/paddle/tests/skip_tests_config.cpp new file mode 100644 index 00000000000..6eb55500b0d --- /dev/null +++ b/src/frontends/paddle/tests/skip_tests_config.cpp @@ -0,0 +1,17 @@ +// Copyright (C) 2018-2022 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "functional_test_utils/skip_tests_config.hpp" + +#include +#include + +std::vector disabledTestPatterns() { + return { +#ifndef BUILD_SHARED_LIBS + // Disable tests for static libraries + ".*FrontendLibCloseTest.*" +#endif + }; +} diff --git a/src/tests/functional/inference_engine/paddle_reader/models/relu.pdmodel b/src/tests/functional/inference_engine/paddle_reader/models/relu.pdmodel deleted file mode 100644 index 9bb64f2a50d5dce914bbee2b1592af7a08a7c3a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7839 zcmeHMOK%%D5VjIIk?BVirA`eM2o~E0mKG=$y)^sb>LNuvyJdMZxvW@)K#v0Om;!hG?3ac*s{ zyos)*q(?F1Eh=#=LK^vLlSFh#Q9nVkigNuI2c4Yz(+XNZxd$c7ynxQ%&r~VbFPpx5 z2`z{OhqT9f2E9|4pHWz& zsuM?e%fi*)zS3G8{Fu|AlQ0RrR+O>OW5OG&I^|7j)xBa?(zt7mzBpYvNOcQtRK!wM zb7-H|96L#?7bh{@(?2&{FA2>!oK8X{iBo)X0<&M-YH)WXh`S+e3Q$8KZ-PSJyuEvG zq=#EZgUL@e&_z~OplY#08-tcbwDO2=j0yl}YkFJDo zB;g;xg-K`#_i>10LXKOv3-K~NhT-2>gK2JBR@ zwLp&aK*;VSriK;F5h#sm1Zp}MaVlUyWyVIL-q@+X{Cu`Gq(oA%N+H&Ighi58^j*e@ z6kwuat6uN{3?9}B1TyQM0nGYsdlg;;6Rc{8L@Al>9j-S;w0_57Ppd(EDj24o+wSP# zMp#4=d^AR3HOB+9QE?3}xCdVgPOH`6hcg3J-)-1q1a0C>fr{VIh+0BAW)IpCC`p=h zAMTDv`?{^L@ky2H9rucHQ|9=Z;DW%J<$QM;T^xEd?Nr?bbRNWOntv^z3)(G$&%9!N z;xT_*&Kv9g0{v7Te-vg8@||*!b&JM0$f{N$@P*Ev^*Ee++Ab+3IEg$xrNY50;eIvX zZ>ZUv`{Sj3&`s7On$Lu#x>awCefJj{T8Bmnm7X^HV4g%$QGL~$?%I|D-zy&-bzd?GS{NOK5iY+bi42z%DRQtBGZB6YM^?%&Doe0Z|2xTcmO5G^rym;Xo9l0;)k!ChA za6GpEy@;04;S^aNOW17z+;B5blqCRS7aaMd6SH|E66sAx$ARt&prWzo8M<7 zHQl*6_bMvtE+#Dnx@AZJYwkt6Jk_o~zcjO}@04AgB_6ZHW0rVKxbu3WVUx0{iQ$g+ zlaNx>oVr(YOm^yyCmt*596ohDh;w72Dhy)m&guE{)Q5;??9A)+?fRz8m9!TKKGhg) z$YG50IOedS$MlG!HcVDbYA_2wPNv2G|M25P-SD>+^q~$WUJ*BxmTY)oE2Cxm?=`BB zKhLU=jae}8TD4?jV@>&Q!tl+ikh3b}L`n2)s*wLuC2nX(JIqE+343Z45=z@=UWD8| zmd_tyd07#1mZYCq2{K=J_Wa4lpLz5?x(v}DP6qo7ia`3k3}bjE%p>r!TqsN*XC#7w z99l&4-FVo&IZ zMhb>W#M%}iR5J{Y@#a?1rAUZwmS9Ep^<(6gp -#include -#include -#include - -#include -#include -#include -#include -#include -#include "common_test_utils/ngraph_test_utils.hpp" -#include "common_test_utils/unicode_utils.hpp" - -TEST(Paddle_Reader_Tests, ImportBasicModelToCore) { - auto model = std::string(PADDLE_TEST_MODELS) + "relu.pdmodel"; - InferenceEngine::Core ie; - auto cnnNetwork = ie.ReadNetwork(model); - auto function = cnnNetwork.getFunction(); - - const auto inputType = ngraph::element::f32; - const auto inputShape = ngraph::Shape{ 3 }; - - const auto data = std::make_shared(inputType, inputShape); - data->set_friendly_name("x"); - data->output(0).get_tensor().add_names({ "x" }); - const auto relu = std::make_shared(data->output(0)); - relu->set_friendly_name("relu_0.tmp_0"); - relu->output(0).get_tensor().add_names({ "relu_0.tmp_0" }); - const auto scale = std::make_shared(ngraph::element::f32, ngraph::Shape{ 1 }, std::vector{1}); - const auto bias = std::make_shared(ngraph::element::f32, ngraph::Shape{ 1 }, std::vector{0}); - const auto node_multiply = std::make_shared(relu->output(0), scale); - const auto node_add = std::make_shared(node_multiply, bias); - node_add->set_friendly_name("save_infer_model/scale_0.tmp_1"); - node_add->output(0).get_tensor().add_names({ "save_infer_model/scale_0.tmp_1" }); - const auto result = std::make_shared(node_add->output(0)); - result->set_friendly_name("save_infer_model/scale_0.tmp_1/Result"); - const auto reference = std::make_shared( - ngraph::NodeVector{ result }, - ngraph::ParameterVector{ data }, - "RefPaddleFunction"); - const FunctionsComparator func_comparator = FunctionsComparator::with_default().enable(FunctionsComparator::NAMES); - const FunctionsComparator::Result res = func_comparator(function, reference); - ASSERT_TRUE(res.valid) << res.message; -} - -#if defined(OPENVINO_ENABLE_UNICODE_PATH_SUPPORT) && defined(_WIN32) -TEST(Paddle_Reader_Tests, ImportBasicModelToCoreWstring) { - std::string win_dir_path{ PADDLE_TEST_MODELS "relu.pdmodel" }; - std::wstring wmodel = CommonTestUtils::addUnicodePostfixToPath(win_dir_path, - CommonTestUtils::test_unicode_postfix_vector[0]); - bool is_copy_successfully = CommonTestUtils::copyFile(win_dir_path, wmodel); - if (!is_copy_successfully) { - FAIL() << "Unable to copy from '" << win_dir_path << "' to '" - << ov::util::wstring_to_string(wmodel) << "'"; - } - InferenceEngine::Core ie; - auto cnnNetwork = ie.ReadNetwork(wmodel); - CommonTestUtils::removeFile(wmodel); - auto function = cnnNetwork.getFunction(); - - const auto inputType = ngraph::element::f32; - const auto inputShape = ngraph::Shape{ 3 }; - - const auto data = std::make_shared(inputType, inputShape); - data->set_friendly_name("x"); - data->output(0).get_tensor().add_names({ "x" }); - const auto relu = std::make_shared(data->output(0)); - relu->set_friendly_name("relu_0.tmp_0"); - relu->output(0).get_tensor().add_names({ "relu_0.tmp_0" }); - const auto scale = std::make_shared(ngraph::element::f32, ngraph::Shape{ 1 }, std::vector{1}); - const auto bias = std::make_shared(ngraph::element::f32, ngraph::Shape{ 1 }, std::vector{0}); - const auto node_multiply = std::make_shared(relu->output(0), scale); - const auto node_add = std::make_shared(node_multiply, bias); - node_add->set_friendly_name("save_infer_model/scale_0.tmp_1"); - node_add->output(0).get_tensor().add_names({ "save_infer_model/scale_0.tmp_1" }); - const auto result = std::make_shared(node_add->output(0)); - result->set_friendly_name("save_infer_model/scale_0.tmp_1/Result"); - const auto reference = std::make_shared( - ngraph::NodeVector{ result }, - ngraph::ParameterVector{ data }, - "RefPaddleFunction"); - const FunctionsComparator func_comparator = FunctionsComparator::with_default().enable(FunctionsComparator::NAMES); - const FunctionsComparator::Result res = func_comparator(function, reference); - ASSERT_TRUE(res.valid) << res.message; -} -#endif