MLCE-143 Fix for reference implementation for service stopping when running CTS.

 *ConvertDepthwise reports that weights are not supported with the first dimension of the tensor is not 1
 *ConvertConcat was missing one case for reporting unsupported inputs.


Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: I7759ad2fea55d272e98b9eabbf4821dc9ac826e1
diff --git a/1.2/HalPolicy.cpp b/1.2/HalPolicy.cpp
index 86b3bb7..7e9a223 100644
--- a/1.2/HalPolicy.cpp
+++ b/1.2/HalPolicy.cpp
@@ -420,6 +420,12 @@
     {
         return Fail("%s: Operand is invalid", __func__);
     }
+    if ( weightsOperand->dimensions[0] != 1)
+    {
+        return Fail("%s: Invalid weights; for depthwise convolution, dimension 0 must be 1 but it is %i",
+                    __func__, weightsOperand->dimensions[0] );
+    }
+
     DepthwiseConvolution2dDescriptor desc;
     desc.m_DataLayout = DataLayout::NHWC;
 
diff --git a/ConversionUtils.hpp b/ConversionUtils.hpp
index de25580..e4ac4a5 100644
--- a/ConversionUtils.hpp
+++ b/ConversionUtils.hpp
@@ -1590,10 +1590,13 @@
             return Fail("%s: Operation has invalid inputs", __func__);
         }
 
-        armnn::TensorShape operandShape     = GetTensorShapeForOperand(*operand);
-        LayerInputHandle operandInputHandle =
-                ConvertToLayerInputHandle<HalPolicy>(operation, i, model, data);
+        LayerInputHandle operandInputHandle = ConvertToLayerInputHandle<HalPolicy>(operation, i, model, data);
+        if (!operandInputHandle.IsValid())
+        {
+            return Fail("%s: Operation has invalid inputs", __func__);
+        }
 
+        armnn::TensorShape operandShape     = GetTensorShapeForOperand(*operand);
         if (operandShape.GetNumDimensions() == 0)
         {
             return Fail("%s: Operands with rank 0 are not supported", __func__);