2 * Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef __NNFW_API_TEST_MODEL_PATH_H__
18 #define __NNFW_API_TEST_MODEL_PATH_H__
23 * @brief A helper class to find NN Packages for testing
24 * To add a nnpackage for your test, please do the followings:
25 * 0. Prerequisite: the actual file must be uploaded on the server
26 * Add `config.sh` file to `tests/scripts/models/nnfw_api_gtest`
27 * 1. Append an enum value to @c NNPackages::TestPackages
28 * 2. Append a string literal to @c TEST_PACKAGE_NAMES in the source file
34 * @brief Serial numbers for test packages. The numbers are mapped with package names.
35 * This is useful for creating GTest Fixtures with variable template to perform
36 * different nn packages with no code duplication.
40 // for validation test
42 ADD_NO_MANIFEST, //< Contains "Add" model but no manifest file
43 ADD_INVALID_MANIFEST, //< Contains "Add" model but the manifest file is broken JSON
45 // for dynamic tensor test
47 DYNAMIC_TENSOR_RESHAPE,
55 * @brief Singleton object getter
57 * @return NNPackages& The singleton object
59 static NNPackages &get();
62 * @brief Get the Absolute of the model to find
64 * @param package_no Model's serial number
65 * @return std::string The absolute path of model directory
67 std::string getModelAbsolutePath(int package_no);
70 * @brief Get the absolute of the model to find
72 * @param package_name Package name
73 * @return std::string The absolute path of model directory
75 std::string getModelAbsolutePath(const char *package_name);
78 * @brief Save the current executable's directory based on argv[0] and CWD
80 * @param argv0 0th command line argument of the current process
82 void init(const char *argv0);
85 * @brief Check all the nnpackages are installed
86 * Must be run after @c init .
91 NNPackages() = default;
94 std::string _base_path;
97 #endif // __NNFW_API_TEST_MODEL_PATH_H__