xref: /aosp_15_r20/external/armnn/src/armnnTfLiteParser/test/TfLiteParser.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
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