aboutsummaryrefslogtreecommitdiff
path: root/tests/framework/Macros.h
diff options
context:
space:
mode:
authorGiorgio Arena <giorgio.arena@arm.com>2021-02-08 16:31:10 +0000
committerGiorgio Arena <giorgio.arena@arm.com>2021-03-02 09:03:00 +0000
commit68e29dab4ada6e3457f066c3cf45acf51a204dd9 (patch)
treea920ebfb51ba39f7b015c919d4e65d71ffbf94be /tests/framework/Macros.h
parentc1b9b098518211d6f356650a0ce5022a36c623e9 (diff)
downloadComputeLibrary-68e29dab4ada6e3457f066c3cf45acf51a204dd9.tar.gz
Set up configure-only flag for validation. First trial with DepthwiseConvoltion
This is needed in order to validate OpenCL kernel run-time compilation, without necessarily running or validating the kernels' execution - Add a run-time option for our validation suite to only configure one target function, without allocating, running or validating - Avoid to map/unmap tensors in CLAccessor if no allocation/validation is required - Create a new Fixture macro that accepts fixtures split into configure/allocate_and_run/reference, and do the last two only if required - Adjust fixture and validation files for the first trial function(s) (DepthwiseConvolutionLayer) Signed-off-by: Giorgio Arena <giorgio.arena@arm.com> Change-Id: I56fa1ce5ef4ac0c86bcabda686cc277ef5ec69c8 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5048 Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Manuel Bottini <manuel.bottini@arm.com> Reviewed-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Diffstat (limited to 'tests/framework/Macros.h')
-rw-r--r--tests/framework/Macros.h55
1 files changed, 46 insertions, 9 deletions
diff --git a/tests/framework/Macros.h b/tests/framework/Macros.h
index a67a7596dc..23c826657d 100644
--- a/tests/framework/Macros.h
+++ b/tests/framework/Macros.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2019 Arm Limited.
+ * Copyright (c) 2017-2021 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -111,15 +111,29 @@
explicit TEST_NAME(D &&data) : DataTestCase{ std::forward<D>(data) } \
{ \
}
-#define FIXTURE_SETUP(FIXTURE) \
- void do_setup() override \
- { \
- FIXTURE::setup(); \
+#define FIXTURE_SETUP(FIXTURE) \
+ void do_setup() override \
+ { \
+ framework::Framework::get().set_new_fixture_call(false); \
+ FIXTURE::setup(); \
}
-#define FIXTURE_DATA_SETUP(FIXTURE) \
- void do_setup() override \
- { \
- apply(this, &FIXTURE::setup<As...>, _data); \
+#define FIXTURE_DATA_SETUP(FIXTURE) \
+ void do_setup() override \
+ { \
+ framework::Framework::get().set_new_fixture_call(false); \
+ apply(this, &FIXTURE::setup<As...>, _data); \
+ }
+#define FIXTURE_DATA_SETUP_NEW(FIXTURE) \
+ void do_setup() override \
+ { \
+ framework::Framework::get().set_new_fixture_call(true); \
+ apply(this, &FIXTURE::setup<As...>, _data); \
+ configure_target(); \
+ if(!framework::Framework::get().configure_only()) \
+ { \
+ allocate_and_run_target(); \
+ compute_reference(); \
+ } \
}
#define FIXTURE_RUN(FIXTURE) \
void do_run() override \
@@ -233,6 +247,29 @@
#define DISABLED_FIXTURE_DATA_TEST_CASE(TEST_NAME, FIXTURE, MODE, DATASET) \
FIXTURE_DATA_TEST_CASE_IMPL(TEST_NAME, FIXTURE, MODE, arm_compute::test::framework::TestCaseFactory::Status::DISABLED, DATASET)
+#define FIXTURE_DATA_TEST_CASE_NEW_IMPL(TEST_NAME, FIXTURE, MODE, STATUS, DATASET) \
+ template <typename T> \
+ class TEST_NAME; \
+ template <typename... As> \
+ class TEST_NAME<std::tuple<As...>> : public arm_compute::test::framework::DataTestCase<decltype(DATASET)::type>, public FIXTURE \
+ { \
+ public: \
+ DATA_TEST_CASE_CONSTRUCTOR(TEST_NAME, DATASET) \
+ FIXTURE_DATA_SETUP_NEW(FIXTURE) \
+ void do_run() override; \
+ FIXTURE_TEARDOWN(FIXTURE) \
+ }; \
+ DATA_TEST_REGISTRAR(TEST_NAME, MODE, STATUS, DATASET); \
+ template <typename... As> \
+ void TEST_NAME<std::tuple<As...>>::do_run()
+
+#define FIXTURE_DATA_TEST_CASE_NEW(TEST_NAME, FIXTURE, MODE, DATASET) \
+ FIXTURE_DATA_TEST_CASE_NEW_IMPL(TEST_NAME, FIXTURE, MODE, arm_compute::test::framework::TestCaseFactory::Status::ACTIVE, DATASET)
+#define EXPECTED_FAILURE_FIXTURE_DATA_TEST_CASE_NEW(TEST_NAME, FIXTURE, MODE, DATASET) \
+ FIXTURE_DATA_TEST_CASE_NEW_IMPL(TEST_NAME, FIXTURE, MODE, arm_compute::test::framework::TestCaseFactory::Status::EXPECTED_FAILURE, DATASET)
+#define DISABLED_FIXTURE_DATA_TEST_CASE_NEW(TEST_NAME, FIXTURE, MODE, DATASET) \
+ FIXTURE_DATA_TEST_CASE_NEW_IMPL(TEST_NAME, FIXTURE, MODE, arm_compute::test::framework::TestCaseFactory::Status::DISABLED, DATASET)
+
#define REGISTER_FIXTURE_TEST_CASE_IMPL(TEST_NAME, FIXTURE, MODE, STATUS) \
class TEST_NAME : public arm_compute::test::framework::TestCase, public FIXTURE \
{ \