• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include <boost/test/unit_test.hpp>
7 #include  "armnnOnnxParser/IOnnxParser.hpp"
8 #include "google/protobuf/stubs/logging.h"
9 
10 BOOST_AUTO_TEST_SUITE(OnnxParser)
11 
BOOST_AUTO_TEST_CASE(CreateNetworkFromString)12 BOOST_AUTO_TEST_CASE(CreateNetworkFromString)
13 {
14   std::string TestModel = R"(
15                           ir_version: 3
16                           producer_name:  "CNTK "
17                           producer_version:  "2.5.1 "
18                           domain:  "ai.cntk "
19                           model_version: 1
20                           graph {
21                             name:  "CNTKGraph "
22                             output {
23                                  name:  "Output"
24                                  type {
25                                     tensor_type {
26                                       elem_type: 1
27                                       shape {
28                                         dim {
29                                            dim_value: 1
30                                         }
31                                         dim {
32                                            dim_value: 10
33                                         }
34                                       }
35                                     }
36                                  }
37                              }
38                           }
39                           opset_import {
40                              version: 7
41                            })";
42 
43     armnnOnnxParser::IOnnxParserPtr parser(armnnOnnxParser::IOnnxParser::Create());
44 
45     armnn::INetworkPtr network = parser->CreateNetworkFromString(TestModel.c_str());
46     BOOST_TEST(network.get());
47 }
48 
BOOST_AUTO_TEST_CASE(CreateNetworkFromStringWithNullptr)49 BOOST_AUTO_TEST_CASE(CreateNetworkFromStringWithNullptr)
50 {
51     armnnOnnxParser::IOnnxParserPtr parser(armnnOnnxParser::IOnnxParser::Create());
52     BOOST_CHECK_THROW(parser->CreateNetworkFromString(""), armnn::InvalidArgumentException );
53 }
54 
BOOST_AUTO_TEST_CASE(CreateNetworkWithInvalidString)55 BOOST_AUTO_TEST_CASE(CreateNetworkWithInvalidString)
56 {
57     auto silencer = google::protobuf::LogSilencer(); //get rid of errors from protobuf
58     armnnOnnxParser::IOnnxParserPtr parser(armnnOnnxParser::IOnnxParser::Create());
59     BOOST_CHECK_THROW(parser->CreateNetworkFromString( "I'm not a model so I should raise an error" ),
60                       armnn::ParseException );
61 }
62 
63 BOOST_AUTO_TEST_SUITE_END()
64