IVGCVSW-5280 Switch tests/InferenceTest and derived tests over to cxxopts
* refactor AddCommandLineOptions() functions to allow checking of required options
* add CxxoptsUtils.hpp file for convenience functions
!referencetests:268500
Signed-off-by: James Ward <james.ward@arm.com>
Change-Id: Ica954b210b2981b7cd10995f0d75fcb2a2f7b443
diff --git a/tests/InferenceTest.hpp b/tests/InferenceTest.hpp
index 1dafd01..5ec744c 100644
--- a/tests/InferenceTest.hpp
+++ b/tests/InferenceTest.hpp
@@ -11,7 +11,8 @@
#include <armnn/TypesUtils.hpp>
#include <armnn/utility/IgnoreUnused.hpp>
-#include <boost/program_options.hpp>
+#include <cxxopts/cxxopts.hpp>
+#include <fmt/format.h>
namespace armnn
@@ -25,7 +26,7 @@
if (compute == armnn::Compute::Undefined)
{
in.setstate(std::ios_base::failbit);
- throw boost::program_options::validation_error(boost::program_options::validation_error::invalid_option_value);
+ throw cxxopts::OptionException(fmt::format("Unrecognised compute device: {}", token));
}
return in;
}
@@ -38,7 +39,7 @@
if (compute == armnn::Compute::Undefined)
{
in.setstate(std::ios_base::failbit);
- throw boost::program_options::validation_error(boost::program_options::validation_error::invalid_option_value);
+ throw cxxopts::OptionException(fmt::format("Unrecognised compute device: {}", token));
}
backend = compute;
return in;
@@ -92,9 +93,9 @@
public:
virtual ~IInferenceTestCaseProvider() {}
- virtual void AddCommandLineOptions(boost::program_options::options_description& options)
+ virtual void AddCommandLineOptions(cxxopts::Options& options, std::vector<std::string>& required)
{
- IgnoreUnused(options);
+ IgnoreUnused(options, required);
};
virtual bool ProcessCommandLineOptions(const InferenceTestOptions &commonOptions)
{
@@ -180,7 +181,7 @@
template <typename TConstructDatabaseCallable, typename TConstructModelCallable>
ClassifierTestCaseProvider(TConstructDatabaseCallable constructDatabase, TConstructModelCallable constructModel);
- virtual void AddCommandLineOptions(boost::program_options::options_description& options) override;
+ virtual void AddCommandLineOptions(cxxopts::Options& options, std::vector<std::string>& required) override;
virtual bool ProcessCommandLineOptions(const InferenceTestOptions &commonOptions) override;
virtual std::unique_ptr<IInferenceTestCase> GetTestCase(unsigned int testCaseId) override;
virtual bool OnInferenceTestFinished() override;