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 "VtsHalNeuralnetworks.h"
20f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler
21f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butlernamespace android {
22f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butlernamespace hardware {
23f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butlernamespace neuralnetworks {
24f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butlernamespace V1_0 {
25f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butlernamespace vts {
26f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butlernamespace functional {
27f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler
28f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler// create device test
29f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael ButlerTEST_F(NeuralnetworksHidlTest, CreateDevice) {}
30f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler
31f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler// status test
32f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael ButlerTEST_F(NeuralnetworksHidlTest, StatusTest) {
33f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler    Return<DeviceStatus> status = device->getStatus();
34f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler    ASSERT_TRUE(status.isOk());
35f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler    EXPECT_EQ(DeviceStatus::AVAILABLE, static_cast<DeviceStatus>(status));
36f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}
37f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler
38f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler// initialization
39f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael ButlerTEST_F(NeuralnetworksHidlTest, GetCapabilitiesTest) {
40f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler    Return<void> ret =
41f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler        device->getCapabilities([](ErrorStatus status, const Capabilities& capabilities) {
42f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler            EXPECT_EQ(ErrorStatus::NONE, status);
43f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler            EXPECT_LT(0.0f, capabilities.float32Performance.execTime);
44f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler            EXPECT_LT(0.0f, capabilities.float32Performance.powerUsage);
45f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler            EXPECT_LT(0.0f, capabilities.quantized8Performance.execTime);
46f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler            EXPECT_LT(0.0f, capabilities.quantized8Performance.powerUsage);
47f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler        });
48f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler    EXPECT_TRUE(ret.isOk());
49f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}
50f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler
51f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}  // namespace functional
52f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}  // namespace vts
53f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}  // namespace V1_0
54f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}  // namespace neuralnetworks
55f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}  // namespace hardware
56f76acd0312f7d47bd2e371f027a54bca581d8f8fMichael Butler}  // namespace android
57