diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-08-01 07:28:45 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-08-01 07:28:45 +0000 |
commit | d55c1cc81a33ceaf38fca699d701fcd92e23be07 (patch) | |
tree | 9994f6e72408d9c4f5e3d38dd93a5f057a1fab31 | |
parent | 3cf827c6a179b868ae131b5a1051eaef6100330a (diff) | |
parent | 7e3a96d729324687c4f009c3a6ec75ef023eaad5 (diff) | |
download | android_system_hardware_interfaces-staging/lineage-15.0_rebase-android-8.0.0_r23.tar.gz android_system_hardware_interfaces-staging/lineage-15.0_rebase-android-8.0.0_r23.tar.bz2 android_system_hardware_interfaces-staging/lineage-15.0_rebase-android-8.0.0_r23.zip |
release-request-b6ab0986-e497-499a-b55d-25aa156be8cf-for-git_oc-dr1-release-4233813 snap-temp-L73000000087867826staging/lineage-15.0_rebase-android-8.0.0_r23
Change-Id: Ieb2de98eee761a8057ffc2ab9ef66673a62bb87b
-rw-r--r-- | Android.bp | 2 | ||||
-rw-r--r-- | net/netd/1.0/Android.bp | 59 | ||||
-rw-r--r-- | net/netd/1.0/INetd.hal | 58 | ||||
-rw-r--r-- | net/netd/1.0/vts/functional/Android.bp | 18 | ||||
-rw-r--r-- | net/netd/1.0/vts/functional/VtsHalNetNetdV1_0TargetTest.cpp | 65 |
5 files changed, 202 insertions, 0 deletions
@@ -1,5 +1,7 @@ // This is an autogenerated file, do not edit. subdirs = [ + "net/netd/1.0", + "net/netd/1.0/vts/functional", "wifi/keystore/1.0", "wifi/keystore/1.0/vts/functional", ] diff --git a/net/netd/1.0/Android.bp b/net/netd/1.0/Android.bp new file mode 100644 index 0000000..a585d20 --- /dev/null +++ b/net/netd/1.0/Android.bp @@ -0,0 +1,59 @@ +// This file is autogenerated by hidl-gen. Do not edit manually. + +filegroup { + name: "android.system.net.netd@1.0_hal", + srcs: [ + "INetd.hal", + ], +} + +genrule { + name: "android.system.net.netd@1.0_genc++", + tools: ["hidl-gen"], + cmd: "$(location hidl-gen) -o $(genDir) -Lc++-sources -randroid.hidl:system/libhidl/transport -randroid.system:system/hardware/interfaces android.system.net.netd@1.0", + srcs: [ + ":android.system.net.netd@1.0_hal", + ], + out: [ + "android/system/net/netd/1.0/NetdAll.cpp", + ], +} + +genrule { + name: "android.system.net.netd@1.0_genc++_headers", + tools: ["hidl-gen"], + cmd: "$(location hidl-gen) -o $(genDir) -Lc++-headers -randroid.hidl:system/libhidl/transport -randroid.system:system/hardware/interfaces android.system.net.netd@1.0", + srcs: [ + ":android.system.net.netd@1.0_hal", + ], + out: [ + "android/system/net/netd/1.0/INetd.h", + "android/system/net/netd/1.0/IHwNetd.h", + "android/system/net/netd/1.0/BnHwNetd.h", + "android/system/net/netd/1.0/BpHwNetd.h", + "android/system/net/netd/1.0/BsNetd.h", + ], +} + +cc_library_shared { + name: "android.system.net.netd@1.0", + defaults: ["hidl-module-defaults"], + generated_sources: ["android.system.net.netd@1.0_genc++"], + generated_headers: ["android.system.net.netd@1.0_genc++_headers"], + export_generated_headers: ["android.system.net.netd@1.0_genc++_headers"], + vendor_available: true, + shared_libs: [ + "libhidlbase", + "libhidltransport", + "libhwbinder", + "liblog", + "libutils", + "libcutils", + ], + export_shared_lib_headers: [ + "libhidlbase", + "libhidltransport", + "libhwbinder", + "libutils", + ], +} diff --git a/net/netd/1.0/INetd.hal b/net/netd/1.0/INetd.hal new file mode 100644 index 0000000..3f69892 --- /dev/null +++ b/net/netd/1.0/INetd.hal @@ -0,0 +1,58 @@ +/* + * Copyright 2017 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. + */ + +package android.system.net.netd@1.0; + +/** + * This is the root of the HAL module and is the interface returned when + * loading an implementation of the INetd HAL. + */ +interface INetd { + /** + * Return values for INetd requests + */ + enum StatusCode : int32_t { + OK, + INVALID_ARGUMENTS, + NO_NETWORK, + ALREADY_EXISTS, + PERMISSION_DENIED, + UNKNOWN_ERROR + }; + + /** + * Creates a physical network to be used for interfaces managed by the OEM + * + * @return networkHandle a handle to the OEM network. Zero implies + * no networks are available and created + * @return packetMark The packet mark that vendor network stack configuration code must use when + * routing packets to this network. No applications may use this mark. They must + * instead pass the networkHandle to the android_set*network LL-NDK APIs. + * @return status operation status + */ + @entry + @callflow(next={"*"}) + createOemNetwork() generates (uint64_t networkHandle, uint32_t packetMark, StatusCode status); + + /** + * Destroys the specified network previously created using createOemNetwork() + * + * @return status operation status + */ + @exit + @callflow(next="createOemNetwork") + destroyOemNetwork(uint64_t networkHandle) generates (StatusCode status); +}; diff --git a/net/netd/1.0/vts/functional/Android.bp b/net/netd/1.0/vts/functional/Android.bp new file mode 100644 index 0000000..61e612a --- /dev/null +++ b/net/netd/1.0/vts/functional/Android.bp @@ -0,0 +1,18 @@ +cc_test { + name: "VtsHalNetNetdV1_0TargetTest", + srcs: [ + "VtsHalNetNetdV1_0TargetTest.cpp", + ], + shared_libs: [ + "liblog", + "libhidlbase", + "libhidltransport", + "libutils", + "android.system.net.netd@1.0", + ], + static_libs: ["VtsHalHidlTargetTestBase"], + cflags: [ + "-O0", + "-g", + ], +} diff --git a/net/netd/1.0/vts/functional/VtsHalNetNetdV1_0TargetTest.cpp b/net/netd/1.0/vts/functional/VtsHalNetNetdV1_0TargetTest.cpp new file mode 100644 index 0000000..c332c10 --- /dev/null +++ b/net/netd/1.0/vts/functional/VtsHalNetNetdV1_0TargetTest.cpp @@ -0,0 +1,65 @@ +/* + * Copyright 2017 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. + */ + +#define LOG_TAG "netd_hidl_test" + +#include <VtsHalHidlTargetTestBase.h> +#include <android/system/net/netd/1.0/INetd.h> +#include <log/log.h> + +using ::android::system::net::netd::V1_0::INetd; +using ::android::hardware::Return; +using ::android::sp; + +class NetdHidlTest : public ::testing::VtsHalHidlTargetTestBase { + public: + virtual void SetUp() override { + netd = ::testing::VtsHalHidlTargetTestBase::getService<INetd>(); + ASSERT_NE(nullptr, netd.get()) << "Could not get HIDL instance"; + } + + sp<INetd> netd; +}; + +// positive test. Ensure netd creates an oem network and returns valid netHandle, and destroys it. +TEST_F(NetdHidlTest, TestCreateAndDestroyOemNetworkOk) { + auto cb = [this](uint64_t netHandle, uint32_t packetMark, INetd::StatusCode status) { + ASSERT_EQ(INetd::StatusCode::OK, status); + ASSERT_NE((uint64_t)0, netHandle); + ASSERT_NE((uint32_t)0, packetMark); + + Return<INetd::StatusCode> retStatus = netd->destroyOemNetwork(netHandle); + ASSERT_EQ(INetd::StatusCode::OK, retStatus); + }; + + Return<void> ret = netd->createOemNetwork(cb); + ASSERT_TRUE(ret.isOk()); +} + +// negative test. Ensure destroy for invalid OEM network fails appropriately +TEST_F(NetdHidlTest, TestDestroyOemNetworkInvalid) { + const uint64_t nh = 0x6600FACADE; + + Return<INetd::StatusCode> retStatus = netd->destroyOemNetwork(nh); + ASSERT_EQ(INetd::StatusCode::INVALID_ARGUMENTS, retStatus); +} + +int main(int argc, char** argv) { + ::testing::InitGoogleTest(&argc, argv); + int status = RUN_ALL_TESTS(); + ALOGE("Test result with status=%d", status); + return status; +} |