xref: /aosp_15_r20/external/armnn/src/armnnOnnxParser/test/CreateNetwork.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017 Arm Ltd. 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  "armnnOnnxParser/IOnnxParser.hpp"
7*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h>
8*89c4ff92SAndroid Build Coastguard Worker 
9*89c4ff92SAndroid Build Coastguard Worker #include "google/protobuf/stubs/logging.h"
10*89c4ff92SAndroid Build Coastguard Worker 
11*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("OnnxParser_CreateNetwork")
12*89c4ff92SAndroid Build Coastguard Worker {
13*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("CreateNetworkFromString")
14*89c4ff92SAndroid Build Coastguard Worker {
15*89c4ff92SAndroid Build Coastguard Worker   std::string TestModel = R"(
16*89c4ff92SAndroid Build Coastguard Worker                           ir_version: 3
17*89c4ff92SAndroid Build Coastguard Worker                           producer_name:  "CNTK "
18*89c4ff92SAndroid Build Coastguard Worker                           producer_version:  "2.5.1 "
19*89c4ff92SAndroid Build Coastguard Worker                           domain:  "ai.cntk "
20*89c4ff92SAndroid Build Coastguard Worker                           model_version: 1
21*89c4ff92SAndroid Build Coastguard Worker                           graph {
22*89c4ff92SAndroid Build Coastguard Worker                             name:  "CNTKGraph "
23*89c4ff92SAndroid Build Coastguard Worker                             output {
24*89c4ff92SAndroid Build Coastguard Worker                                  name:  "Output"
25*89c4ff92SAndroid Build Coastguard Worker                                  type {
26*89c4ff92SAndroid Build Coastguard Worker                                     tensor_type {
27*89c4ff92SAndroid Build Coastguard Worker                                       elem_type: 1
28*89c4ff92SAndroid Build Coastguard Worker                                       shape {
29*89c4ff92SAndroid Build Coastguard Worker                                         dim {
30*89c4ff92SAndroid Build Coastguard Worker                                            dim_value: 1
31*89c4ff92SAndroid Build Coastguard Worker                                         }
32*89c4ff92SAndroid Build Coastguard Worker                                         dim {
33*89c4ff92SAndroid Build Coastguard Worker                                            dim_value: 10
34*89c4ff92SAndroid Build Coastguard Worker                                         }
35*89c4ff92SAndroid Build Coastguard Worker                                       }
36*89c4ff92SAndroid Build Coastguard Worker                                     }
37*89c4ff92SAndroid Build Coastguard Worker                                  }
38*89c4ff92SAndroid Build Coastguard Worker                              }
39*89c4ff92SAndroid Build Coastguard Worker                           }
40*89c4ff92SAndroid Build Coastguard Worker                           opset_import {
41*89c4ff92SAndroid Build Coastguard Worker                              version: 7
42*89c4ff92SAndroid Build Coastguard Worker                            })";
43*89c4ff92SAndroid Build Coastguard Worker 
44*89c4ff92SAndroid Build Coastguard Worker     armnnOnnxParser::IOnnxParserPtr parser(armnnOnnxParser::IOnnxParser::Create());
45*89c4ff92SAndroid Build Coastguard Worker 
46*89c4ff92SAndroid Build Coastguard Worker     armnn::INetworkPtr network = parser->CreateNetworkFromString(TestModel.c_str());
47*89c4ff92SAndroid Build Coastguard Worker     CHECK(network.get());
48*89c4ff92SAndroid Build Coastguard Worker }
49*89c4ff92SAndroid Build Coastguard Worker 
50*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("CreateNetworkFromStringWithNullptr")
51*89c4ff92SAndroid Build Coastguard Worker {
52*89c4ff92SAndroid Build Coastguard Worker     armnnOnnxParser::IOnnxParserPtr parser(armnnOnnxParser::IOnnxParser::Create());
53*89c4ff92SAndroid Build Coastguard Worker     CHECK_THROWS_AS(parser->CreateNetworkFromString(""), armnn::InvalidArgumentException );
54*89c4ff92SAndroid Build Coastguard Worker }
55*89c4ff92SAndroid Build Coastguard Worker 
56*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("CreateNetworkWithInvalidString")
57*89c4ff92SAndroid Build Coastguard Worker {
58*89c4ff92SAndroid Build Coastguard Worker     auto silencer = google::protobuf::LogSilencer(); //get rid of errors from protobuf
59*89c4ff92SAndroid Build Coastguard Worker     armnnOnnxParser::IOnnxParserPtr parser(armnnOnnxParser::IOnnxParser::Create());
60*89c4ff92SAndroid Build Coastguard Worker     CHECK_THROWS_AS(parser->CreateNetworkFromString( "I'm not a model so I should raise an error" ),
61*89c4ff92SAndroid Build Coastguard Worker                       armnn::ParseException );
62*89c4ff92SAndroid Build Coastguard Worker }
63*89c4ff92SAndroid Build Coastguard Worker 
64*89c4ff92SAndroid Build Coastguard Worker }
65