From 25ab3a8326a9e2c52c84b2747fa72907109a695d Mon Sep 17 00:00:00 2001 From: Colm Donelan Date: Mon, 17 May 2021 13:01:52 +0100 Subject: IVGCVSW-5964 Removing some remaining boost utility usages from tests. * Adding a basic PredicateResult class to replace boost::test_tools::predicate_result * Replacing all uses of boost::test_tools::predicate_result with the new armnn::PredicateResult class * Replacing use of boost::test_tools::output_test_stream output with std::ostringstream in ProfilerTests.cpp Signed-off-by: Colm Donelan Change-Id: I75cdbbff98d984e26e4a50c125386b2988516fad --- src/backends/cl/test/ClCreateWorkloadTests.cpp | 146 ++++++++++++++++--------- 1 file changed, 96 insertions(+), 50 deletions(-) (limited to 'src/backends/cl/test/ClCreateWorkloadTests.cpp') diff --git a/src/backends/cl/test/ClCreateWorkloadTests.cpp b/src/backends/cl/test/ClCreateWorkloadTests.cpp index 47e2f4e8d7..7602cbbc0b 100644 --- a/src/backends/cl/test/ClCreateWorkloadTests.cpp +++ b/src/backends/cl/test/ClCreateWorkloadTests.cpp @@ -21,8 +21,8 @@ #include #include -boost::test_tools::predicate_result CompareIClTensorHandleShape(IClTensorHandle* tensorHandle, - std::initializer_list expectedDimensions) +armnn::PredicateResult CompareIClTensorHandleShape(IClTensorHandle* tensorHandle, + std::initializer_list expectedDimensions) { return CompareTensorHandleShape(tensorHandle, expectedDimensions); } @@ -43,8 +43,11 @@ static void ClCreateActivationWorkloadTest() auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, {1, 1})); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, {1, 1})); + auto predResult = CompareIClTensorHandleShape(inputHandle, {1, 1}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + + predResult = CompareIClTensorHandleShape(outputHandle, {1, 1}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } BOOST_AUTO_TEST_CASE(CreateActivationFloatWorkload) @@ -74,9 +77,12 @@ static void ClCreateElementwiseWorkloadTest() auto inputHandle1 = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); auto inputHandle2 = PolymorphicDowncast(queueDescriptor.m_Inputs[1]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle1, {2, 3})); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle2, {2, 3})); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, {2, 3})); + auto predResult = CompareIClTensorHandleShape(inputHandle1, {2, 3}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(inputHandle2, {2, 3}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, {2, 3}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } BOOST_AUTO_TEST_CASE(CreateAdditionFloatWorkload) @@ -167,8 +173,11 @@ static void ClCreateElementwiseUnaryWorkloadTest(armnn::UnaryOperation op) auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, {2, 3})); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, {2, 3})); + auto predResult = CompareIClTensorHandleShape(inputHandle, {2, 3}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + + predResult = CompareIClTensorHandleShape(outputHandle, {2, 3}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } BOOST_AUTO_TEST_CASE(CreateRsqrtFloat32WorkloadTest) @@ -192,15 +201,20 @@ static void ClCreateBatchNormalizationWorkloadTest(DataLayout dataLayout) auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - switch (dataLayout) + armnn::PredicateResult predResult(true); + switch (dataLayout) { case DataLayout::NHWC: - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, { 2, 4, 4, 3 })); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, { 2, 4, 4, 3 })); + predResult = CompareIClTensorHandleShape(inputHandle, { 2, 4, 4, 3 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, { 2, 4, 4, 3 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); break; default: // NCHW - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, { 2, 3, 4, 4 })); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, { 2, 3, 4, 4 })); + predResult = CompareIClTensorHandleShape(inputHandle, { 2, 3, 4, 4 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, { 2, 3, 4, 4 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } } @@ -239,9 +253,10 @@ BOOST_AUTO_TEST_CASE(CreateConvertFp16ToFp32Workload) ConvertFp16ToFp32QueueDescriptor queueDescriptor = workload->GetData(); auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, {1, 3, 2, 3})); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, {1, 3, 2, 3})); + auto predResult = CompareIClTensorHandleShape(inputHandle, {1, 3, 2, 3}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, {1, 3, 2, 3}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); BOOST_TEST((inputHandle->GetTensor().info()->data_type() == arm_compute::DataType::F16)); BOOST_TEST((outputHandle->GetTensor().info()->data_type() == arm_compute::DataType::F32)); } @@ -258,8 +273,10 @@ BOOST_AUTO_TEST_CASE(CreateConvertFp32ToFp16Workload) auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, {1, 3, 2, 3})); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, {1, 3, 2, 3})); + auto predResult = CompareIClTensorHandleShape(inputHandle, {1, 3, 2, 3}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, {1, 3, 2, 3}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); BOOST_TEST((inputHandle->GetTensor().info()->data_type() == arm_compute::DataType::F32)); BOOST_TEST((outputHandle->GetTensor().info()->data_type() == arm_compute::DataType::F16)); } @@ -470,8 +487,10 @@ static void ClDirectConvolution2dWorkloadTest() Convolution2dQueueDescriptor queueDescriptor = workload->GetData(); auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, {2, 3, 6, 6})); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, {2, 2, 6, 6})); + auto predResult = CompareIClTensorHandleShape(inputHandle, {2, 3, 6, 6}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, {2, 2, 6, 6}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } BOOST_AUTO_TEST_CASE(CreateDirectConvolution2dFloatWorkload) @@ -503,8 +522,10 @@ static void ClCreateFullyConnectedWorkloadTest() FullyConnectedQueueDescriptor queueDescriptor = workload->GetData(); auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, {3, 1, 4, 5})); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, {3, 7})); + auto predResult = CompareIClTensorHandleShape(inputHandle, {3, 1, 4, 5}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, {3, 7}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } @@ -660,8 +681,10 @@ static void ClCreateReshapeWorkloadTest() auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, {4, 1})); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, {1, 4})); + auto predResult = CompareIClTensorHandleShape(inputHandle, {4, 1}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, {1, 4}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } BOOST_AUTO_TEST_CASE(CreateReshapeFloatWorkload) @@ -705,8 +728,10 @@ static void ClSoftmaxWorkloadTest() tensorInfo.SetQuantizationScale(1.f / 256); } - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, {4, 1})); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, {4, 1})); + auto predResult = CompareIClTensorHandleShape(inputHandle, {4, 1}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, {4, 1}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } @@ -742,16 +767,20 @@ static void ClSplitterWorkloadTest() // Checks that outputs are as we expect them (see definition of CreateSplitterWorkloadTest). SplitterQueueDescriptor queueDescriptor = workload->GetData(); auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, {5, 7, 7})); + auto predResult = CompareIClTensorHandleShape(inputHandle, {5, 7, 7}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); auto outputHandle1 = PolymorphicDowncast(queueDescriptor.m_Outputs[1]); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle1, {2, 7, 7})); + predResult = CompareIClTensorHandleShape(outputHandle1, {2, 7, 7}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); auto outputHandle2 = PolymorphicDowncast(queueDescriptor.m_Outputs[2]); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle2, {2, 7, 7})); + predResult = CompareIClTensorHandleShape(outputHandle2, {2, 7, 7}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); auto outputHandle0 = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle0, {1, 7, 7})); + predResult = CompareIClTensorHandleShape(outputHandle0, {1, 7, 7}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } BOOST_AUTO_TEST_CASE(CreateSplitterFloatWorkload) @@ -931,8 +960,10 @@ static void ClCreateLogSoftmaxWorkloadTest() auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, {4, 1})); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, {4, 1})); + auto predResult = CompareIClTensorHandleShape(inputHandle, {4, 1}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, {4, 1}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } BOOST_AUTO_TEST_CASE(CreateLogSoftmaxFloat32WorkloadTest) @@ -952,8 +983,10 @@ static void ClCreateLstmWorkloadTest() LstmQueueDescriptor queueDescriptor = workload->GetData(); auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[1]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, { 2, 2 })); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, { 2, 4 })); + auto predResult = CompareIClTensorHandleShape(inputHandle, {2, 2}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, {2, 4}); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } BOOST_AUTO_TEST_CASE(CreateLSTMWorkloadFloatWorkload) @@ -975,16 +1008,20 @@ static void ClResizeWorkloadTest(DataLayout dataLayout) auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); + armnn::PredicateResult predResult(true); switch (dataLayout) { case DataLayout::NHWC: - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, { 2, 4, 4, 3 })); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, { 2, 2, 2, 3 })); + predResult = CompareIClTensorHandleShape(inputHandle, { 2, 4, 4, 3 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, { 2, 2, 2, 3 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); break; - case DataLayout::NCHW: - default: - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, { 2, 3, 4, 4 })); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, { 2, 3, 2, 2 })); + default: // DataLayout::NCHW + predResult = CompareIClTensorHandleShape(inputHandle, { 2, 3, 4, 4 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, { 2, 3, 2, 2 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } } @@ -1033,8 +1070,10 @@ static void ClMeanWorkloadTest() auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); // The first dimension (batch size) in both input and output is singular thus it has been reduced by ACL. - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, { 1, 3, 7, 4 })); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, { 1, 4 })); + auto predResult = CompareIClTensorHandleShape(inputHandle, { 1, 3, 7, 4 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, { 1, 4 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } BOOST_AUTO_TEST_CASE(CreateMeanFloat32Workload) @@ -1067,9 +1106,12 @@ static void ClCreateConcatWorkloadTest(std::initializer_list outpu auto inputHandle1 = PolymorphicDowncast(queueDescriptor.m_Inputs[1]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle0, { 2, 3, 2, 5 })); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle1, { 2, 3, 2, 5 })); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape)); + auto predResult = CompareIClTensorHandleShape(inputHandle0, { 2, 3, 2, 5 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(inputHandle1, { 2, 3, 2, 5 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, outputShape); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } BOOST_AUTO_TEST_CASE(CreateConcatDim0Float32Workload) @@ -1115,8 +1157,10 @@ static void ClSpaceToDepthWorkloadTest() auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[0]); auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, { 1, 2, 2, 1 })); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, { 1, 1, 1, 4 })); + auto predResult = CompareIClTensorHandleShape(inputHandle, { 1, 2, 2, 1 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); + predResult = CompareIClTensorHandleShape(outputHandle, { 1, 1, 1, 4 }); + BOOST_TEST(predResult.m_Result, predResult.m_Message.str()); } BOOST_AUTO_TEST_CASE(CreateSpaceToDepthFloat32Workload) @@ -1161,10 +1205,12 @@ static void ClCreateStackWorkloadTest(const std::initializer_list& for (unsigned int i = 0; i < numInputs; ++i) { auto inputHandle = PolymorphicDowncast(queueDescriptor.m_Inputs[i]); - BOOST_TEST(CompareIClTensorHandleShape(inputHandle, inputShape)); + auto predResult1 = CompareIClTensorHandleShape(inputHandle, inputShape); + BOOST_TEST(predResult1.m_Result, predResult1.m_Message.str()); } auto outputHandle = PolymorphicDowncast(queueDescriptor.m_Outputs[0]); - BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape)); + auto predResult2 = CompareIClTensorHandleShape(outputHandle, outputShape); + BOOST_TEST(predResult2.m_Result, predResult2.m_Message.str()); } BOOST_AUTO_TEST_CASE(CreateStackFloat32Workload) -- cgit v1.2.1