Github issue #120 - Embed TfLite schema
authorMatthew Bentham <matthew.bentham@arm.com>
Tue, 15 Jan 2019 17:57:00 +0000 (17:57 +0000)
committerMatteo Martincigh <matteo.martincigh@arm.com>
Wed, 16 Jan 2019 15:41:55 +0000 (15:41 +0000)
Change-Id: I57375375b2f3f59b89dbf45750f733bf25b5eb90

CMakeLists.txt
src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp
src/armnnTfLiteParser/test/Schema.hpp [new file with mode: 0644]
src/armnnTfLiteParser/test/Schema.s [new file with mode: 0644]

index b39f785..755f408 100644 (file)
@@ -439,6 +439,7 @@ if(BUILD_UNIT_TESTS)
     endif()
 
     if(BUILD_TF_LITE_PARSER)
+        enable_language(ASM)
         list(APPEND unittest_sources
              src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp
              src/armnnTfLiteParser/test/Activations.cpp
@@ -458,7 +459,9 @@ if(BUILD_UNIT_TESTS)
              src/armnnTfLiteParser/test/GetTensorIds.cpp
              src/armnnTfLiteParser/test/GetSubgraphInputsOutputs.cpp
              src/armnnTfLiteParser/test/GetInputsOutputs.cpp
+             src/armnnTfLiteParser/test/Schema.s
              )
+        set_source_files_properties(src/armnnTfLiteParser/test/Schema.s PROPERTIES COMPILE_FLAGS "-x assembler-with-cpp")
     endif()
 
     if(BUILD_CAFFE_PARSER)
index 676dc71..b372a60 100644 (file)
@@ -5,6 +5,7 @@
 
 #pragma once
 
+#include "Schema.hpp"
 #include <boost/filesystem.hpp>
 #include <boost/assert.hpp>
 #include <boost/format.hpp>
@@ -89,24 +90,12 @@ struct ParserFlatbuffersFixture
 
     bool ReadStringToBinary()
     {
-        const char* schemafileName = getenv("ARMNN_TF_LITE_SCHEMA_PATH");
-        if (schemafileName == nullptr)
-        {
-            schemafileName = ARMNN_TF_LITE_SCHEMA_PATH;
-        }
-        std::string schemafile;
-
-        bool ok = flatbuffers::LoadFile(schemafileName, false, &schemafile);
-        BOOST_ASSERT_MSG(ok, "Couldn't load schema file " ARMNN_TF_LITE_SCHEMA_PATH);
-        if (!ok)
-        {
-            return false;
-        }
+        std::string schemafile(&tflite_schema_start, &tflite_schema_end);
 
         // parse schema first, so we can use it to parse the data after
         flatbuffers::Parser parser;
 
-        ok &= parser.Parse(schemafile.c_str());
+        bool ok = parser.Parse(schemafile.c_str());
         BOOST_ASSERT_MSG(ok, "Failed to parse schema file");
 
         ok &= parser.Parse(m_JsonString.c_str());
diff --git a/src/armnnTfLiteParser/test/Schema.hpp b/src/armnnTfLiteParser/test/Schema.hpp
new file mode 100644 (file)
index 0000000..49ecc0e
--- /dev/null
@@ -0,0 +1,9 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+extern "C" {
+extern const char tflite_schema_start;
+extern const char tflite_schema_end;
+}
diff --git a/src/armnnTfLiteParser/test/Schema.s b/src/armnnTfLiteParser/test/Schema.s
new file mode 100644 (file)
index 0000000..6e1959b
--- /dev/null
@@ -0,0 +1,13 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+.section .rodata
+
+.global tflite_schema_start
+.global tflite_schema_end
+
+tflite_schema_start:
+.incbin ARMNN_TF_LITE_SCHEMA_PATH
+tflite_schema_end: