// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #include #include "armnnOnnxParser/IOnnxParser.hpp" #include "google/protobuf/stubs/logging.h" BOOST_AUTO_TEST_SUITE(OnnxParser) BOOST_AUTO_TEST_CASE(CreateNetworkFromString) { std::string TestModel = R"( ir_version: 3 producer_name: "CNTK " producer_version: "2.5.1 " domain: "ai.cntk " model_version: 1 graph { name: "CNTKGraph " output { name: "Output" type { tensor_type { elem_type: 1 shape { dim { dim_value: 1 } dim { dim_value: 10 } } } } } } opset_import { version: 7 })"; armnnOnnxParser::IOnnxParserPtr parser(armnnOnnxParser::IOnnxParser::Create()); armnn::INetworkPtr network = parser->CreateNetworkFromString(TestModel.c_str()); BOOST_TEST(network.get()); } BOOST_AUTO_TEST_CASE(CreateNetworkFromStringWithNullptr) { armnnOnnxParser::IOnnxParserPtr parser(armnnOnnxParser::IOnnxParser::Create()); BOOST_CHECK_THROW(parser->CreateNetworkFromString(""), armnn::InvalidArgumentException ); } BOOST_AUTO_TEST_CASE(CreateNetworkWithInvalidString) { auto silencer = google::protobuf::LogSilencer(); //get rid of errors from protobuf armnnOnnxParser::IOnnxParserPtr parser(armnnOnnxParser::IOnnxParser::Create()); BOOST_CHECK_THROW(parser->CreateNetworkFromString( "I'm not a model so I should raise an error" ), armnn::ParseException ); } BOOST_AUTO_TEST_SUITE_END()