1f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler/*
2f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler * Copyright (C) 2018 The Android Open Source Project
3f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler *
4f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler * Licensed under the Apache License, Version 2.0 (the "License");
5f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler * you may not use this file except in compliance with the License.
6f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler * You may obtain a copy of the License at
7f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler *
8f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler *      http://www.apache.org/licenses/LICENSE-2.0
9f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler *
10f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler * Unless required by applicable law or agreed to in writing, software
11f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler * distributed under the License is distributed on an "AS IS" BASIS,
12f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler * See the License for the specific language governing permissions and
14f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler * limitations under the License.
15f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler */
16f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler
17f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler#define LOG_TAG "neuralnetworks_hidl_hal_test"
18f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler
19f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler#include "Models.h"
20f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler#include "VtsHalNeuralnetworks.h"
21f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler
22f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butlernamespace android {
23f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butlernamespace hardware {
24f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butlernamespace neuralnetworks {
25f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butlernamespace V1_0 {
26f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butlernamespace vts {
27f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butlernamespace functional {
28f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler
29f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler// forward declarations
30f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butlerstd::vector<Request> createRequests(const std::vector<MixedTypedExample>& examples);
31f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler
32f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler// generate validation tests
33f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler#define VTS_CURRENT_TEST_CASE(TestName)                                           \
34f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler    TEST_F(ValidationTest, TestName) {                                            \
35f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler        const Model model = TestName::createTestModel();                          \
36f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler        const std::vector<Request> requests = createRequests(TestName::examples); \
37f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler        validateModel(model);                                                     \
38f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler        validateRequests(model, requests);                                        \
39f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler    }
40f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler
41f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael ButlerFOR_EACH_TEST_MODEL(VTS_CURRENT_TEST_CASE)
42f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler
43f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler#undef VTS_CURRENT_TEST_CASE
44f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler
45f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}  // namespace functional
46f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}  // namespace vts
47f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}  // namespace V1_0
48f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}  // namespace neuralnetworks
49f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}  // namespace hardware
50f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}  // namespace android
51