diff --git a/tetheroffload/control/1.0/vts/functional/Android.bp b/tetheroffload/control/1.0/vts/functional/Android.bp index c397df4fa8..ddf382626f 100644 --- a/tetheroffload/control/1.0/vts/functional/Android.bp +++ b/tetheroffload/control/1.0/vts/functional/Android.bp @@ -30,3 +30,17 @@ cc_test { "vts", ], } + +cc_test_library { + name: "VtsHalTetheroffloadControlV1_0TargetTest-lib", + defaults: ["VtsHalTargetTestDefaults"], + export_include_dirs: ["include"], + static_libs: [ + "android.hardware.tetheroffload.config@1.0", + "android.hardware.tetheroffload.control@1.0", + ], + srcs: [ + "OffloadControlTestBase.cpp", + "OffloadControlTestUtils.cpp", + ], +} diff --git a/tetheroffload/control/1.0/vts/functional/include/OffloadControlTestBase.h b/tetheroffload/control/1.0/vts/functional/include/OffloadControlTestBase.h index 004019a8e6..d3f655bb0a 100644 --- a/tetheroffload/control/1.0/vts/functional/include/OffloadControlTestBase.h +++ b/tetheroffload/control/1.0/vts/functional/include/OffloadControlTestBase.h @@ -36,7 +36,6 @@ using android::hardware::hidl_vec; using android::hardware::Return; using android::hardware::Void; using android::hardware::tetheroffload::config::V1_0::IOffloadConfig; -using android::hardware::tetheroffload::control::V1_0::IOffloadControl; using android::hardware::tetheroffload::control::V1_0::ITetheringOffloadCallback; using android::hardware::tetheroffload::control::V1_0::NatTimeoutUpdate; using android::hardware::tetheroffload::control::V1_0::OffloadCallbackEvent; @@ -64,7 +63,8 @@ class OffloadControlTestBase : public testing::TestWithParam createControl(const std::string& serviceName) = 0; + virtual sp createControl( + const std::string& serviceName) = 0; // The IOffloadConfig HAL is tested more thoroughly elsewhere. Here the // class just setup everything correctly and verify basic readiness. @@ -100,6 +100,6 @@ class OffloadControlTestBase : public testing::TestWithParam config; - sp control; + sp control; sp control_cb; }; \ No newline at end of file diff --git a/tetheroffload/control/1.0/vts/functional/include/OffloadControlTestV1_0.h b/tetheroffload/control/1.0/vts/functional/include/OffloadControlTestV1_0.h index 7492f8af01..1be7f5cb11 100644 --- a/tetheroffload/control/1.0/vts/functional/include/OffloadControlTestV1_0.h +++ b/tetheroffload/control/1.0/vts/functional/include/OffloadControlTestV1_0.h @@ -26,8 +26,10 @@ class OffloadControlTestV1_0_HalNotStarted : public OffloadControlTestBase { prepareControlHal(); } - virtual sp createControl(const std::string& serviceName) override { - return IOffloadControl::getService(serviceName); + virtual sp createControl( + const std::string& serviceName) override { + return android::hardware::tetheroffload::control::V1_0::IOffloadControl::getService( + serviceName); } }; diff --git a/tetheroffload/control/1.1/vts/functional/Android.bp b/tetheroffload/control/1.1/vts/functional/Android.bp new file mode 100644 index 0000000000..ab29350805 --- /dev/null +++ b/tetheroffload/control/1.1/vts/functional/Android.bp @@ -0,0 +1,30 @@ +// Copyright (C) 2020 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +cc_test { + name: "VtsHalTetheroffloadControlV1_1TargetTest", + defaults: ["VtsHalTargetTestDefaults"], + srcs: ["VtsHalTetheroffloadControlV1_1TargetTest.cpp"], + local_include_dirs: ["include"], + static_libs: [ + "android.hardware.tetheroffload.config@1.0", + "android.hardware.tetheroffload.control@1.0", + "android.hardware.tetheroffload.control@1.1", + "VtsHalTetheroffloadControlV1_0TargetTest-lib", + ], + test_suites: [ + "general-tests", + "vts", + ], +} diff --git a/tetheroffload/control/1.1/vts/functional/VtsHalTetheroffloadControlV1_1TargetTest.cpp b/tetheroffload/control/1.1/vts/functional/VtsHalTetheroffloadControlV1_1TargetTest.cpp new file mode 100644 index 0000000000..d1616a42dc --- /dev/null +++ b/tetheroffload/control/1.1/vts/functional/VtsHalTetheroffloadControlV1_1TargetTest.cpp @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include + +using android::hardware::tetheroffload::control::V1_1::IOffloadControl; + +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(OffloadControlTestV1_1_HalNotStarted); +GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(OffloadControlTestV1_1_HalStarted); + +INSTANTIATE_TEST_CASE_P( + PerInstance, OffloadControlTestV1_1_HalNotStarted, + testing::Combine(testing::ValuesIn(android::hardware::getAllHalInstanceNames( + IOffloadConfig::descriptor)), + testing::ValuesIn(android::hardware::getAllHalInstanceNames( + IOffloadControl::descriptor))), + android::hardware::PrintInstanceTupleNameToString<>); + +INSTANTIATE_TEST_CASE_P( + PerInstance, OffloadControlTestV1_1_HalStarted, + testing::Combine(testing::ValuesIn(android::hardware::getAllHalInstanceNames( + IOffloadConfig::descriptor)), + testing::ValuesIn(android::hardware::getAllHalInstanceNames( + IOffloadControl::descriptor))), + android::hardware::PrintInstanceTupleNameToString<>); diff --git a/tetheroffload/control/1.1/vts/functional/include/OffloadControlTestV1_1.h b/tetheroffload/control/1.1/vts/functional/include/OffloadControlTestV1_1.h new file mode 100644 index 0000000000..06c9726dc4 --- /dev/null +++ b/tetheroffload/control/1.1/vts/functional/include/OffloadControlTestV1_1.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include + +class OffloadControlTestV1_1_HalNotStarted : public OffloadControlTestV1_0_HalNotStarted { + public: + virtual sp createControl( + const std::string& serviceName) override { + return android::hardware::tetheroffload::control::V1_1::IOffloadControl::getService( + serviceName); + } + + sp getControlV1_1() { + // The cast is safe since only devices with V1.1+ HAL will be enumerated and pass in to the + // test. + return android::hardware::tetheroffload::control::V1_1::IOffloadControl::castFrom(control) + .withDefault(nullptr); + } +}; + +class OffloadControlTestV1_1_HalStarted : public OffloadControlTestV1_1_HalNotStarted { + public: + virtual void SetUp() override { + setupConfigHal(); + setupControlHal(); + } +}; \ No newline at end of file