aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Barbier <anthony.barbier@arm.com>2018-07-12 13:26:27 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:54:54 +0000
commite88b9bb3e2c97bc2c3f5024f17fa6c5080ee522c (patch)
tree44b5b4e7849bea992439152a944d1bc08c683a36
parent7784c837afd5844fb6dc4d166ff253d983abfd2d (diff)
downloadComputeLibrary-e88b9bb3e2c97bc2c3f5024f17fa6c5080ee522c.tar.gz
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 <georgios.pinitas@arm.com> Tested-by: Jenkins <bsgcomp@arm.com>
-rw-r--r--tests/benchmark_examples/RunExample.cpp15
-rw-r--r--tests/validate_examples/RunExample.cpp19
-rw-r--r--tests/validate_examples/ValidateExample.h5
-rw-r--r--tests/validate_examples/cl_gemm.cpp5
4 files changed, 34 insertions, 10 deletions
diff --git a/tests/benchmark_examples/RunExample.cpp b/tests/benchmark_examples/RunExample.cpp
index 05430e7628..81c879ff2d 100644
--- a/tests/benchmark_examples/RunExample.cpp
+++ b/tests/benchmark_examples/RunExample.cpp
@@ -59,17 +59,26 @@ 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
{
- g_example->do_teardown();
+ if(_is_setup)
+ {
+ g_example->do_teardown();
+ }
g_example = nullptr;
}
+
+private:
+ bool _is_setup{ false };
};
int run_example(int argc, char **argv, std::unique_ptr<Example> example)
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<ValidateExample> 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