diff --git a/tests/DeepSpeechV1Database.hpp b/tests/DeepSpeechV1Database.hpp
index 4d2d591..274bf6e 100644
--- a/tests/DeepSpeechV1Database.hpp
+++ b/tests/DeepSpeechV1Database.hpp
@@ -70,20 +70,22 @@
                     const float& quantizationScale,
                     const int32_t& quantizationOffset);
 
+// NOTE: declaring the template specialisations inline to prevent them
+//       being flagged as unused functions when -Werror=unused-function is in effect
 template<>
-auto ParseDataArray<armnn::DataType::Float32>(std::istream & stream)
+inline auto ParseDataArray<armnn::DataType::Float32>(std::istream & stream)
 {
     return ParseArrayImpl<float>(stream, [](const std::string& s) { return std::stof(s); });
 }
 
 template<>
-auto ParseDataArray<armnn::DataType::Signed32>(std::istream & stream)
+inline auto ParseDataArray<armnn::DataType::Signed32>(std::istream & stream)
 {
     return ParseArrayImpl<int>(stream, [](const std::string & s) { return std::stoi(s); });
 }
 
 template<>
-auto ParseDataArray<armnn::DataType::QuantisedAsymm8>(std::istream& stream,
+inline auto ParseDataArray<armnn::DataType::QuantisedAsymm8>(std::istream& stream,
                                                       const float& quantizationScale,
                                                       const int32_t& quantizationOffset)
 {
diff --git a/tests/DeepSpeechV1InferenceTest.hpp b/tests/DeepSpeechV1InferenceTest.hpp
index 24e7dac..6331762 100755
--- a/tests/DeepSpeechV1InferenceTest.hpp
+++ b/tests/DeepSpeechV1InferenceTest.hpp
@@ -124,7 +124,7 @@
         Model::AddCommandLineOptions(options, m_ModelCommandLineOptions);
     }
 
-    virtual bool ProcessCommandLineOptions() override
+    virtual bool ProcessCommandLineOptions(const InferenceTestOptions &commonOptions) override
     {
         if (!ValidateDirectory(m_InputSeqDir))
         {
@@ -156,7 +156,7 @@
             return false;
         }
 
-        m_Model = m_ConstructModel(m_ModelCommandLineOptions);
+        m_Model = m_ConstructModel(commonOptions, m_ModelCommandLineOptions);
         if (!m_Model)
         {
             return false;
@@ -185,7 +185,8 @@
 
 private:
     typename Model::CommandLineOptions m_ModelCommandLineOptions;
-    std::function<std::unique_ptr<Model>(typename Model::CommandLineOptions)> m_ConstructModel;
+    std::function<std::unique_ptr<Model>(const InferenceTestOptions&,
+                                         typename Model::CommandLineOptions)> m_ConstructModel;
     std::unique_ptr<Model> m_Model;
 
     std::string m_InputSeqDir;
