Loading neuralnetworks/1.0/vts/functional/Android.bp +6 −27 Original line number Diff line number Diff line Loading @@ -40,10 +40,11 @@ cc_library_static { ], } cc_defaults { name: "VtsHalNeuralNetworksV1_0TargetTestDefaults", cc_test { name: "VtsHalNeuralnetworksV1_0TargetTest", defaults: ["VtsHalTargetTestDefaults"], srcs: [ "BasicTests.cpp", "TestAssertions.cpp", "ValidateModel.cpp", "ValidateRequest.cpp", Loading @@ -64,33 +65,11 @@ cc_defaults { "libneuralnetworks_utils", "VtsHalNeuralNetworksV1_0_utils", ], header_libs: [ "libneuralnetworks_headers", ], test_suites: ["general-tests"], } cc_test { name: "VtsHalNeuralnetworksV1_0TargetTest", defaults: ["VtsHalNeuralNetworksV1_0TargetTestDefaults"], srcs: [ "BasicTests.cpp", ], whole_static_libs: [ "neuralnetworks_generated_V1_0_example", ], } cc_test { name: "PresubmitHalNeuralnetworksV1_0TargetTest", defaults: ["VtsHalNeuralNetworksV1_0TargetTestDefaults"], srcs: [ "BasicTests.cpp", ], whole_static_libs: [ "neuralnetworks_generated_V1_0_example", ], cflags: [ "-DPRESUBMIT_NOT_VTS", header_libs: [ "libneuralnetworks_headers", ], test_suites: ["general-tests"], } neuralnetworks/1.0/vts/functional/BasicTests.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -21,17 +21,17 @@ namespace android::hardware::neuralnetworks::V1_0::vts::functional { // create device test TEST_F(NeuralnetworksHidlTest, CreateDevice) {} TEST_P(NeuralnetworksHidlTest, CreateDevice) {} // status test TEST_F(NeuralnetworksHidlTest, StatusTest) { TEST_P(NeuralnetworksHidlTest, StatusTest) { Return<DeviceStatus> status = kDevice->getStatus(); ASSERT_TRUE(status.isOk()); EXPECT_EQ(DeviceStatus::AVAILABLE, static_cast<DeviceStatus>(status)); } // initialization TEST_F(NeuralnetworksHidlTest, GetCapabilitiesTest) { TEST_P(NeuralnetworksHidlTest, GetCapabilitiesTest) { Return<void> ret = kDevice->getCapabilities([](ErrorStatus status, const Capabilities& capabilities) { EXPECT_EQ(ErrorStatus::NONE, status); Loading neuralnetworks/1.0/vts/functional/GeneratedTestHarness.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,20 @@ void Execute(const sp<IDevice>& device, const TestModel& testModel) { checkResults(testModel, outputs); } void GeneratedTestBase::SetUp() { testing::TestWithParam<GeneratedTestParam>::SetUp(); ASSERT_NE(kDevice, nullptr); } std::vector<NamedModel> getNamedModels(const FilterFn& filter) { return TestModelManager::get().getTestModels(filter); } std::string printGeneratedTest(const testing::TestParamInfo<GeneratedTestParam>& info) { const auto& [namedDevice, namedModel] = info.param; return gtestCompliantName(getName(namedDevice) + "_" + getName(namedModel)); } // Tag for the generated tests class GeneratedTest : public GeneratedTestBase {}; Loading neuralnetworks/1.0/vts/functional/GeneratedTestHarness.h +19 −10 Original line number Diff line number Diff line Loading @@ -18,29 +18,38 @@ #define ANDROID_HARDWARE_NEURALNETWORKS_V1_0_GENERATED_TEST_HARNESS_H #include <android/hardware/neuralnetworks/1.0/IDevice.h> #include <functional> #include "TestHarness.h" #include "VtsHalNeuralnetworks.h" namespace android::hardware::neuralnetworks::V1_0::vts::functional { class GeneratedTestBase : public NeuralnetworksHidlTest, public testing::WithParamInterface<test_helper::TestModelManager::TestParam> { using NamedModel = Named<const test_helper::TestModel*>; using GeneratedTestParam = std::tuple<NamedDevice, NamedModel>; class GeneratedTestBase : public testing::TestWithParam<GeneratedTestParam> { protected: const test_helper::TestModel& kTestModel = *GetParam().second; void SetUp() override; const sp<IDevice> kDevice = getData(std::get<NamedDevice>(GetParam())); const test_helper::TestModel& kTestModel = *getData(std::get<NamedModel>(GetParam())); }; using FilterFn = std::function<bool(const test_helper::TestModel&)>; std::vector<NamedModel> getNamedModels(const FilterFn& filter); std::string printGeneratedTest(const testing::TestParamInfo<GeneratedTestParam>& info); #define INSTANTIATE_GENERATED_TEST(TestSuite, filter) \ INSTANTIATE_TEST_SUITE_P( \ TestGenerated, TestSuite, \ testing::ValuesIn(::test_helper::TestModelManager::get().getTestModels(filter)), \ [](const auto& info) { return info.param.first; }) INSTANTIATE_TEST_SUITE_P(TestGenerated, TestSuite, \ testing::Combine(testing::ValuesIn(getNamedDevices()), \ testing::ValuesIn(getNamedModels(filter))), \ printGeneratedTest) // Tag for the validation tests, instantiated in VtsHalNeuralnetworks.cpp. // TODO: Clean up the hierarchy for ValidationTest. class ValidationTest : public GeneratedTestBase {}; Model createModel(const ::test_helper::TestModel& testModel); Model createModel(const test_helper::TestModel& testModel); } // namespace android::hardware::neuralnetworks::V1_0::vts::functional Loading neuralnetworks/1.0/vts/functional/Utils.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -117,6 +117,13 @@ std::vector<TestBuffer> getOutputBuffers(const Request& request) { return outputBuffers; } std::string gtestCompliantName(std::string name) { // gtest test names must only contain alphanumeric characters std::replace_if( name.begin(), name.end(), [](char c) { return !std::isalnum(c); }, '_'); return name; } } // namespace android::hardware::neuralnetworks namespace android::hardware::neuralnetworks::V1_0 { Loading Loading
neuralnetworks/1.0/vts/functional/Android.bp +6 −27 Original line number Diff line number Diff line Loading @@ -40,10 +40,11 @@ cc_library_static { ], } cc_defaults { name: "VtsHalNeuralNetworksV1_0TargetTestDefaults", cc_test { name: "VtsHalNeuralnetworksV1_0TargetTest", defaults: ["VtsHalTargetTestDefaults"], srcs: [ "BasicTests.cpp", "TestAssertions.cpp", "ValidateModel.cpp", "ValidateRequest.cpp", Loading @@ -64,33 +65,11 @@ cc_defaults { "libneuralnetworks_utils", "VtsHalNeuralNetworksV1_0_utils", ], header_libs: [ "libneuralnetworks_headers", ], test_suites: ["general-tests"], } cc_test { name: "VtsHalNeuralnetworksV1_0TargetTest", defaults: ["VtsHalNeuralNetworksV1_0TargetTestDefaults"], srcs: [ "BasicTests.cpp", ], whole_static_libs: [ "neuralnetworks_generated_V1_0_example", ], } cc_test { name: "PresubmitHalNeuralnetworksV1_0TargetTest", defaults: ["VtsHalNeuralNetworksV1_0TargetTestDefaults"], srcs: [ "BasicTests.cpp", ], whole_static_libs: [ "neuralnetworks_generated_V1_0_example", ], cflags: [ "-DPRESUBMIT_NOT_VTS", header_libs: [ "libneuralnetworks_headers", ], test_suites: ["general-tests"], }
neuralnetworks/1.0/vts/functional/BasicTests.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -21,17 +21,17 @@ namespace android::hardware::neuralnetworks::V1_0::vts::functional { // create device test TEST_F(NeuralnetworksHidlTest, CreateDevice) {} TEST_P(NeuralnetworksHidlTest, CreateDevice) {} // status test TEST_F(NeuralnetworksHidlTest, StatusTest) { TEST_P(NeuralnetworksHidlTest, StatusTest) { Return<DeviceStatus> status = kDevice->getStatus(); ASSERT_TRUE(status.isOk()); EXPECT_EQ(DeviceStatus::AVAILABLE, static_cast<DeviceStatus>(status)); } // initialization TEST_F(NeuralnetworksHidlTest, GetCapabilitiesTest) { TEST_P(NeuralnetworksHidlTest, GetCapabilitiesTest) { Return<void> ret = kDevice->getCapabilities([](ErrorStatus status, const Capabilities& capabilities) { EXPECT_EQ(ErrorStatus::NONE, status); Loading
neuralnetworks/1.0/vts/functional/GeneratedTestHarness.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -148,6 +148,20 @@ void Execute(const sp<IDevice>& device, const TestModel& testModel) { checkResults(testModel, outputs); } void GeneratedTestBase::SetUp() { testing::TestWithParam<GeneratedTestParam>::SetUp(); ASSERT_NE(kDevice, nullptr); } std::vector<NamedModel> getNamedModels(const FilterFn& filter) { return TestModelManager::get().getTestModels(filter); } std::string printGeneratedTest(const testing::TestParamInfo<GeneratedTestParam>& info) { const auto& [namedDevice, namedModel] = info.param; return gtestCompliantName(getName(namedDevice) + "_" + getName(namedModel)); } // Tag for the generated tests class GeneratedTest : public GeneratedTestBase {}; Loading
neuralnetworks/1.0/vts/functional/GeneratedTestHarness.h +19 −10 Original line number Diff line number Diff line Loading @@ -18,29 +18,38 @@ #define ANDROID_HARDWARE_NEURALNETWORKS_V1_0_GENERATED_TEST_HARNESS_H #include <android/hardware/neuralnetworks/1.0/IDevice.h> #include <functional> #include "TestHarness.h" #include "VtsHalNeuralnetworks.h" namespace android::hardware::neuralnetworks::V1_0::vts::functional { class GeneratedTestBase : public NeuralnetworksHidlTest, public testing::WithParamInterface<test_helper::TestModelManager::TestParam> { using NamedModel = Named<const test_helper::TestModel*>; using GeneratedTestParam = std::tuple<NamedDevice, NamedModel>; class GeneratedTestBase : public testing::TestWithParam<GeneratedTestParam> { protected: const test_helper::TestModel& kTestModel = *GetParam().second; void SetUp() override; const sp<IDevice> kDevice = getData(std::get<NamedDevice>(GetParam())); const test_helper::TestModel& kTestModel = *getData(std::get<NamedModel>(GetParam())); }; using FilterFn = std::function<bool(const test_helper::TestModel&)>; std::vector<NamedModel> getNamedModels(const FilterFn& filter); std::string printGeneratedTest(const testing::TestParamInfo<GeneratedTestParam>& info); #define INSTANTIATE_GENERATED_TEST(TestSuite, filter) \ INSTANTIATE_TEST_SUITE_P( \ TestGenerated, TestSuite, \ testing::ValuesIn(::test_helper::TestModelManager::get().getTestModels(filter)), \ [](const auto& info) { return info.param.first; }) INSTANTIATE_TEST_SUITE_P(TestGenerated, TestSuite, \ testing::Combine(testing::ValuesIn(getNamedDevices()), \ testing::ValuesIn(getNamedModels(filter))), \ printGeneratedTest) // Tag for the validation tests, instantiated in VtsHalNeuralnetworks.cpp. // TODO: Clean up the hierarchy for ValidationTest. class ValidationTest : public GeneratedTestBase {}; Model createModel(const ::test_helper::TestModel& testModel); Model createModel(const test_helper::TestModel& testModel); } // namespace android::hardware::neuralnetworks::V1_0::vts::functional Loading
neuralnetworks/1.0/vts/functional/Utils.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -117,6 +117,13 @@ std::vector<TestBuffer> getOutputBuffers(const Request& request) { return outputBuffers; } std::string gtestCompliantName(std::string name) { // gtest test names must only contain alphanumeric characters std::replace_if( name.begin(), name.end(), [](char c) { return !std::isalnum(c); }, '_'); return name; } } // namespace android::hardware::neuralnetworks namespace android::hardware::neuralnetworks::V1_0 { Loading