1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2020 Arm Ltd and Contributors. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker 6*89c4ff92SAndroid Build Coastguard Worker #include "ParserFlatbuffersFixture.hpp" 7*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h> 8*89c4ff92SAndroid Build Coastguard Worker 9*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("TensorflowLiteParser") 10*89c4ff92SAndroid Build Coastguard Worker { 11*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("ParseEmptyBinaryData") 12*89c4ff92SAndroid Build Coastguard Worker { 13*89c4ff92SAndroid Build Coastguard Worker ITfLiteParser::TfLiteParserOptions options; 14*89c4ff92SAndroid Build Coastguard Worker ITfLiteParserPtr m_Parser(ITfLiteParser::Create(armnn::Optional<ITfLiteParser::TfLiteParserOptions>(options))); 15*89c4ff92SAndroid Build Coastguard Worker // Should throw armnn::ParseException: Buffer doesn't conform to the expected Tensorflow Lite flatbuffers format. 16*89c4ff92SAndroid Build Coastguard Worker CHECK_THROWS_AS(m_Parser->CreateNetworkFromBinary({0}), armnn::ParseException); 17*89c4ff92SAndroid Build Coastguard Worker } 18*89c4ff92SAndroid Build Coastguard Worker 19*89c4ff92SAndroid Build Coastguard Worker struct NoInputBindingsFixture : public ParserFlatbuffersFixture 20*89c4ff92SAndroid Build Coastguard Worker { NoInputBindingsFixtureNoInputBindingsFixture21*89c4ff92SAndroid Build Coastguard Worker explicit NoInputBindingsFixture() 22*89c4ff92SAndroid Build Coastguard Worker { 23*89c4ff92SAndroid Build Coastguard Worker m_JsonString = R"( 24*89c4ff92SAndroid Build Coastguard Worker { 25*89c4ff92SAndroid Build Coastguard Worker "version": 3, 26*89c4ff92SAndroid Build Coastguard Worker "operator_codes": [ { "builtin_code": "CONV_2D" } ], 27*89c4ff92SAndroid Build Coastguard Worker "subgraphs": [ { } ] 28*89c4ff92SAndroid Build Coastguard Worker } 29*89c4ff92SAndroid Build Coastguard Worker )"; 30*89c4ff92SAndroid Build Coastguard Worker SetupSingleInputSingleOutput("inputTensor", "outputTensor"); 31*89c4ff92SAndroid Build Coastguard Worker } 32*89c4ff92SAndroid Build Coastguard Worker }; 33*89c4ff92SAndroid Build Coastguard Worker 34*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(NoInputBindingsFixture, "ParseBadInputBindings") 35*89c4ff92SAndroid Build Coastguard Worker { 36*89c4ff92SAndroid Build Coastguard Worker // Should throw armnn::ParseException: No input binding found for subgraph:0 and name:inputTensor. 37*89c4ff92SAndroid Build Coastguard Worker CHECK_THROWS_AS((RunTest<4, armnn::DataType::QAsymmU8>(0, { }, { 0 })), armnn::ParseException); 38*89c4ff92SAndroid Build Coastguard Worker } 39*89c4ff92SAndroid Build Coastguard Worker 40*89c4ff92SAndroid Build Coastguard Worker } 41