diff options
Diffstat (limited to 'tests/validation/UNIT')
-rw-r--r-- | tests/validation/UNIT/CPPScheduler.cpp | 91 | ||||
-rw-r--r-- | tests/validation/UNIT/GPUTarget.cpp | 23 | ||||
-rw-r--r-- | tests/validation/UNIT/SafeIntegerOps.cpp | 3 | ||||
-rw-r--r-- | tests/validation/UNIT/SubTensorInfo.cpp | 11 | ||||
-rw-r--r-- | tests/validation/UNIT/TensorInfo.cpp | 15 |
5 files changed, 130 insertions, 13 deletions
diff --git a/tests/validation/UNIT/CPPScheduler.cpp b/tests/validation/UNIT/CPPScheduler.cpp new file mode 100644 index 0000000000..6a3f6819fc --- /dev/null +++ b/tests/validation/UNIT/CPPScheduler.cpp @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2023-2024 Arm Limited. + * + * SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#include "arm_compute/runtime/CPP/CPPScheduler.h" + +#include "arm_compute/core/CPP/ICPPKernel.h" +#include "tests/framework/Asserts.h" +#include "tests/framework/Macros.h" + +#include <stdexcept> + +using namespace arm_compute; +using namespace arm_compute::test; + +namespace +{ +class TestException: public std::exception +{ +public: + const char* what() const noexcept override + { + return "Expected test exception"; + } +}; + +class TestKernel: public ICPPKernel +{ +public: + TestKernel() + { + Window window; + window.set(0, Window::Dimension(0, 2)); + configure(window); + } + + const char* name() const override + { + return "TestKernel"; + } + + void run(const Window &, const ThreadInfo &) override + { + throw TestException(); + } + +}; +} + +TEST_SUITE(UNIT) +TEST_SUITE(CPPScheduler) +#if defined(ARM_COMPUTE_CPP_SCHEDULER) && !defined(BARE_METAL) +TEST_CASE(RethrowException, framework::DatasetMode::ALL) +{ + CPPScheduler scheduler; + CPPScheduler::Hints hints(0); + TestKernel kernel; + + scheduler.set_num_threads(2); + try + { + scheduler.schedule(&kernel, hints); + } + catch(const TestException&) + { + return; + } + ARM_COMPUTE_EXPECT_FAIL("Expected exception not caught", framework::LogLevel::ERRORS); +} +#endif // defined(ARM_COMPUTE_CPP_SCHEDULER) && !defined(BARE_METAL) +TEST_SUITE_END() +TEST_SUITE_END() diff --git a/tests/validation/UNIT/GPUTarget.cpp b/tests/validation/UNIT/GPUTarget.cpp index e1b7e1fe3f..2e64635b7a 100644 --- a/tests/validation/UNIT/GPUTarget.cpp +++ b/tests/validation/UNIT/GPUTarget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2020 Arm Limited. + * Copyright (c) 2018-2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -22,7 +22,6 @@ * SOFTWARE. */ #include "arm_compute/core/GPUTarget.h" -#include "tests/AssetsLibrary.h" #include "tests/Globals.h" #include "tests/Utils.h" #include "tests/framework/Asserts.h" @@ -38,6 +37,7 @@ TEST_SUITE(GPUTarget) TEST_CASE(GetGPUTargetFromName, framework::DatasetMode::ALL) { + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-T000") == GPUTarget::MIDGARD, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-T600") == GPUTarget::T600, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-T700") == GPUTarget::T700, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-T800") == GPUTarget::T800, framework::LogLevel::ERRORS); @@ -46,15 +46,24 @@ TEST_CASE(GetGPUTargetFromName, framework::DatasetMode::ALL) ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G51") == GPUTarget::G51, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G51BIG") == GPUTarget::G51BIG, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G51LIT") == GPUTarget::G51LIT, framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G52") == GPUTarget::G52, framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G52LIT") == GPUTarget::G52LIT, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G31") == GPUTarget::G31, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G76") == GPUTarget::G76, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G76 r0p0") == GPUTarget::G76, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G52") == GPUTarget::G52, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G52LIT") == GPUTarget::G52LIT, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G77") == GPUTarget::G77, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G57") == GPUTarget::G57, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G78") == GPUTarget::G78, framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G78AE") == GPUTarget::G78, framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(get_target_from_name("Mali-TODX") == GPUTarget::TODX, framework::LogLevel::ERRORS); - ARM_COMPUTE_EXPECT(get_target_from_name("Mali-T000") == GPUTarget::MIDGARD, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G68") == GPUTarget::G68, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G78AE") == GPUTarget::G78AE, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G710") == GPUTarget::G710, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G610") == GPUTarget::G610, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G510") == GPUTarget::G510, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G310") == GPUTarget::G310, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G715") == GPUTarget::G715, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G615") == GPUTarget::G615, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G720") == GPUTarget::G720, framework::LogLevel::ERRORS); + ARM_COMPUTE_EXPECT(get_target_from_name("Mali-G620") == GPUTarget::G620, framework::LogLevel::ERRORS); } TEST_CASE(GPUTargetIsIn, framework::DatasetMode::ALL) diff --git a/tests/validation/UNIT/SafeIntegerOps.cpp b/tests/validation/UNIT/SafeIntegerOps.cpp index 62f70414f1..13e4ef5125 100644 --- a/tests/validation/UNIT/SafeIntegerOps.cpp +++ b/tests/validation/UNIT/SafeIntegerOps.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2020 Arm Limited. + * Copyright (c) 2019-2021 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -23,7 +23,6 @@ */ #include "arm_compute/core/GPUTarget.h" #include "arm_compute/core/utils/math/SafeOps.h" -#include "tests/AssetsLibrary.h" #include "tests/Globals.h" #include "tests/Utils.h" #include "tests/framework/Asserts.h" diff --git a/tests/validation/UNIT/SubTensorInfo.cpp b/tests/validation/UNIT/SubTensorInfo.cpp index 5a930620ce..ca5e46550c 100644 --- a/tests/validation/UNIT/SubTensorInfo.cpp +++ b/tests/validation/UNIT/SubTensorInfo.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Arm Limited. + * Copyright (c) 2020-2023 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -69,6 +69,7 @@ TEST_CASE(SubTensorCreation, framework::DatasetMode::ALL) * - A) Extend padding when SubTensor XY does not match parent tensor should fail * B) Extend with zero padding when SubTensor XY does not match parent tensor should succeed * - C) Extend padding when SubTensor XY matches parent tensor should succeed + * - D) Set lock padding to true, so that extend padding would fail */ TEST_CASE(SubTensorPaddingExpansion, framework::DatasetMode::ALL) { @@ -95,6 +96,14 @@ TEST_CASE(SubTensorPaddingExpansion, framework::DatasetMode::ALL) ARM_COMPUTE_EXPECT(tensor_info.padding().top == 2, framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(tensor_info.padding().right == 1, framework::LogLevel::ERRORS); } + + // Test D + { + TensorInfo tensor_info(TensorShape(23U, 17U, 3U), 1, DataType::F32); + SubTensorInfo sub_tensor_info(&tensor_info, TensorShape(4U, 3U, 1U), Coordinates(5, 2, 1)); + sub_tensor_info.set_lock_paddings(true); + ARM_COMPUTE_EXPECT_THROW(sub_tensor_info.extend_padding(PaddingSize(2, 1)), framework::LogLevel::ERRORS); + } } TEST_SUITE_END() // SubTensorInfo diff --git a/tests/validation/UNIT/TensorInfo.cpp b/tests/validation/UNIT/TensorInfo.cpp index cf9dfeabe9..b79c1e9253 100644 --- a/tests/validation/UNIT/TensorInfo.cpp +++ b/tests/validation/UNIT/TensorInfo.cpp @@ -93,7 +93,7 @@ TEST_CASE(Clone, framework::DatasetMode::ALL) // Get clone of current tensor info std::unique_ptr<ITensorInfo> info_clone = info.clone(); - ARM_COMPUTE_EXPECT(info_clone != nullptr, framework::LogLevel::ERRORS); + ARM_COMPUTE_ASSERT(info_clone != nullptr); ARM_COMPUTE_EXPECT(info_clone->total_size() == info.total_size(), framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(info_clone->num_channels() == info.num_channels(), framework::LogLevel::ERRORS); ARM_COMPUTE_EXPECT(info_clone->data_type() == info.data_type(), framework::LogLevel::ERRORS); @@ -184,8 +184,17 @@ TEST_CASE(SymmPerChannelQuantizationInfo, framework::DatasetMode::ALL) ARM_COMPUTE_EXPECT(info.quantization_info().offset().empty(), framework::LogLevel::ERRORS); } -TEST_SUITE_END() // TensorInfoValidation -TEST_SUITE_END() +/** Validates lock paddings flag*/ +TEST_CASE(SubTensorPaddingExpansion, framework::DatasetMode::ALL) +{ + TensorInfo tensor_info(TensorShape(23U, 17U, 3U), 1, DataType::F32); + tensor_info.set_lock_paddings(true); + + // Now lock padding is set to true, therefore the extend padding would fail + ARM_COMPUTE_EXPECT_THROW(tensor_info.extend_padding(PaddingSize(2, 1)), framework::LogLevel::ERRORS); +} +TEST_SUITE_END() // TensorInfo +TEST_SUITE_END() // UNIT } // namespace validation } // namespace test } // namespace arm_compute |