From 39c49bf4f977427de42fdfe27e8a2ed41ae4923e Mon Sep 17 00:00:00 2001 From: Cedric Nugteren Date: Sun, 27 Nov 2016 11:00:29 +0100 Subject: Made it possible to use the command-line environmental variables for each executable and without re-running CMake --- test/correctness/testblas.cpp | 4 ++-- test/correctness/testblas.hpp | 5 +++-- test/correctness/tester.cpp | 18 +++++++++--------- test/correctness/tester.hpp | 2 +- 4 files changed, 15 insertions(+), 14 deletions(-) (limited to 'test/correctness') diff --git a/test/correctness/testblas.cpp b/test/correctness/testblas.cpp index ce3b0e07..5fddb37b 100644 --- a/test/correctness/testblas.cpp +++ b/test/correctness/testblas.cpp @@ -49,13 +49,13 @@ template <> const std::vector TestBlas::kTransposes = // Constructor, initializes the base class tester and input data template -TestBlas::TestBlas(int argc, char *argv[], const bool silent, +TestBlas::TestBlas(const std::vector &arguments, const bool silent, const std::string &name, const std::vector &options, const Routine run_routine, const Routine run_reference1, const Routine run_reference2, const ResultGet get_result, const ResultIndex get_index, const ResultIterator get_id1, const ResultIterator get_id2): - Tester(argc, argv, silent, name, options), + Tester(arguments, silent, name, options), kOffsets(GetOffsets()), kAlphaValues(GetExampleScalars(full_test_)), kBetaValues(GetExampleScalars(full_test_)), diff --git a/test/correctness/testblas.hpp b/test/correctness/testblas.hpp index da572e01..27fd84c3 100644 --- a/test/correctness/testblas.hpp +++ b/test/correctness/testblas.hpp @@ -80,7 +80,7 @@ class TestBlas: public Tester { using ResultIterator = std::function&)>; // Constructor, initializes the base class tester and input data - TestBlas(int argc, char *argv[], const bool silent, + TestBlas(const std::vector &arguments, const bool silent, const std::string &name, const std::vector &options, const Routine run_routine, const Routine run_reference1, const Routine run_reference2, @@ -117,6 +117,7 @@ class TestBlas: public Tester { // is automatically compiled for each routine, templated by the parameter "C". template size_t RunTests(int argc, char *argv[], const bool silent, const std::string &name) { + auto command_line_args = RetrieveCommandLineArguments(argc, argv); // Sets the reference to test against #if defined(CLBLAST_REF_CLBLAS) && defined(CLBLAST_REF_CBLAS) @@ -139,7 +140,7 @@ size_t RunTests(int argc, char *argv[], const bool silent, const std::string &na // Creates a tester auto options = C::GetOptions(); - TestBlas tester{argc, argv, silent, name, options, + TestBlas tester{command_line_args, silent, name, options, C::RunRoutine, reference_routine1, reference_routine2, C::DownloadResult, C::GetResultIndex, C::ResultID1, C::ResultID2}; diff --git a/test/correctness/tester.cpp b/test/correctness/tester.cpp index 481640fc..c449b09d 100644 --- a/test/correctness/tester.cpp +++ b/test/correctness/tester.cpp @@ -67,15 +67,15 @@ template const std::string Tester::kUnsupportedRef // General constructor for all CLBlast testers. It prints out the test header to stdout and sets-up // the clBLAS library for reference. template -Tester::Tester(int argc, char *argv[], const bool silent, +Tester::Tester(const std::vector &arguments, const bool silent, const std::string &name, const std::vector &options): help_("Options given/available:\n"), - platform_(Platform(GetArgument(argc, argv, help_, kArgPlatform, ConvertArgument(std::getenv("CLBLAST_PLATFORM"), size_t{0})))), - device_(Device(platform_, GetArgument(argc, argv, help_, kArgDevice, ConvertArgument(std::getenv("CLBLAST_DEVICE"), size_t{0})))), + platform_(Platform(GetArgument(arguments, help_, kArgPlatform, ConvertArgument(std::getenv("CLBLAST_PLATFORM"), size_t{0})))), + device_(Device(platform_, GetArgument(arguments, help_, kArgDevice, ConvertArgument(std::getenv("CLBLAST_DEVICE"), size_t{0})))), context_(Context(device_)), queue_(Queue(context_, device_)), - full_test_(CheckArgument(argc, argv, help_, kArgFullTest)), - verbose_(CheckArgument(argc, argv, help_, kArgVerbose)), + full_test_(CheckArgument(arguments, help_, kArgFullTest)), + verbose_(CheckArgument(arguments, help_, kArgVerbose)), error_log_{}, num_passed_{0}, num_skipped_{0}, @@ -88,14 +88,14 @@ Tester::Tester(int argc, char *argv[], const bool silent, // Determines which reference to test against #if defined(CLBLAST_REF_CLBLAS) && defined(CLBLAST_REF_CBLAS) - compare_clblas_ = GetArgument(argc, argv, help_, kArgCompareclblas, 0); - compare_cblas_ = GetArgument(argc, argv, help_, kArgComparecblas, 1); + compare_clblas_ = GetArgument(arguments, help_, kArgCompareclblas, 0); + compare_cblas_ = GetArgument(arguments, help_, kArgComparecblas, 1); #elif CLBLAST_REF_CLBLAS - compare_clblas_ = GetArgument(argc, argv, help_, kArgCompareclblas, 1); + compare_clblas_ = GetArgument(arguments, help_, kArgCompareclblas, 1); compare_cblas_ = 0; #elif CLBLAST_REF_CBLAS compare_clblas_ = 0; - compare_cblas_ = GetArgument(argc, argv, help_, kArgComparecblas, 1); + compare_cblas_ = GetArgument(arguments, help_, kArgComparecblas, 1); #else compare_clblas_ = 0; compare_cblas_ = 0; diff --git a/test/correctness/tester.hpp b/test/correctness/tester.hpp index c7fb4407..d8462cef 100644 --- a/test/correctness/tester.hpp +++ b/test/correctness/tester.hpp @@ -70,7 +70,7 @@ class Tester { // Creates an instance of the tester, running on a particular OpenCL platform and device. It // takes the routine's names as an additional parameter. - explicit Tester(int argc, char *argv[], const bool silent, + explicit Tester(const std::vector &arguments, const bool silent, const std::string &name, const std::vector &options); ~Tester(); -- cgit v1.2.3