From e88b9bb3e2c97bc2c3f5024f17fa6c5080ee522c Mon Sep 17 00:00:00 2001 From: Anthony Barbier Date: Thu, 12 Jul 2018 13:26:27 +0100 Subject: COMPMID-1396: make validate_example and benchmark_example check if setup was successful Change-Id: I70dbd9f9258174fc80928906c33abecf804284c3 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/139716 Reviewed-by: Georgios Pinitas Tested-by: Jenkins --- tests/validate_examples/RunExample.cpp | 19 ++++++++++++++----- tests/validate_examples/ValidateExample.h | 5 ++++- tests/validate_examples/cl_gemm.cpp | 5 ++++- 3 files changed, 22 insertions(+), 7 deletions(-) (limited to 'tests/validate_examples') diff --git a/tests/validate_examples/RunExample.cpp b/tests/validate_examples/RunExample.cpp index b4e5d37648..d842c5bd6f 100644 --- a/tests/validate_examples/RunExample.cpp +++ b/tests/validate_examples/RunExample.cpp @@ -68,21 +68,30 @@ public: void do_setup() override { ARM_COMPUTE_ERROR_ON_NULLPTR(g_example.get()); - g_example->do_setup(g_example_argv.size(), &g_example_argv[0]); + _is_setup = g_example->do_setup(g_example_argv.size(), &g_example_argv[0]); } void do_run() override { - g_example->do_run(); + if(_is_setup) + { + g_example->do_run(); + } } void do_teardown() override { - if(validate) + if(_is_setup) { - g_example->do_validate(); + if(validate) + { + g_example->do_validate(); + } + g_example->do_teardown(); } - g_example->do_teardown(); g_example = nullptr; } + +private: + bool _is_setup{ false }; }; int run_example(int argc, char **argv, std::unique_ptr example) diff --git a/tests/validate_examples/ValidateExample.h b/tests/validate_examples/ValidateExample.h index 4dd552ab10..2721508336 100644 --- a/tests/validate_examples/ValidateExample.h +++ b/tests/validate_examples/ValidateExample.h @@ -48,7 +48,10 @@ public: * @param[in] argc Argument count. * @param[in] argv Argument values. */ - virtual void do_setup(int argc, char **argv) {}; + virtual bool do_setup(int argc, char **argv) + { + return true; + }; /** Run the example. */ virtual void do_run() {}; /** Run reference implementation and validate against the target output diff --git a/tests/validate_examples/cl_gemm.cpp b/tests/validate_examples/cl_gemm.cpp index f37e073dc3..e0aefbf359 100644 --- a/tests/validate_examples/cl_gemm.cpp +++ b/tests/validate_examples/cl_gemm.cpp @@ -59,8 +59,9 @@ constexpr float tolerance_num_f16 = 0.02f; /**< F16 Toleran class CLGEMMValidateExample : public ValidateExample { public: - void do_setup(int argc, char **argv) override + bool do_setup(int argc, char **argv) override { + //TODO(antbar01): Update to use command line interface ? CLScheduler::get().default_init(); if(argc == 2) { @@ -215,6 +216,8 @@ public: fill(CLAccessor(src0), 0); fill(CLAccessor(src1), 1); fill(CLAccessor(src2), 2); + + return true; } void print_parameters(framework::Printer &printer) override -- cgit v1.2.1