| /* |
| * Copyright (C) 2016 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 "libhidl-gen-utils" |
| |
| #include <hidl-util/FqInstance.h> |
| |
| #include <gtest/gtest.h> |
| #include <vector> |
| |
| using ::android::FqInstance; |
| using ::android::FQName; |
| |
| class LibHidlGenUtilsTest : public ::testing::Test {}; |
| |
| TEST_F(LibHidlGenUtilsTest, FqInstance1) { |
| FqInstance e; |
| ASSERT_TRUE(e.setTo("android.hardware.foo@1.0::IFoo/instance")); |
| EXPECT_EQ("android.hardware.foo@1.0::IFoo/instance", e.string()); |
| ASSERT_TRUE(e.hasPackage()); |
| EXPECT_EQ("android.hardware.foo", e.getPackage()); |
| ASSERT_TRUE(e.hasVersion()); |
| EXPECT_EQ(1u, e.getMajorVersion()); |
| EXPECT_EQ(0u, e.getMinorVersion()); |
| EXPECT_EQ((std::make_pair<size_t, size_t>(1u, 0u)), e.getVersion()); |
| ASSERT_TRUE(e.hasInterface()); |
| EXPECT_EQ("IFoo", e.getInterface()); |
| ASSERT_TRUE(e.hasInstance()); |
| EXPECT_EQ("instance", e.getInstance()); |
| } |
| |
| TEST_F(LibHidlGenUtilsTest, FqInstance2) { |
| FqInstance e; |
| ASSERT_TRUE(e.setTo("@1.0::IFoo/instance")); |
| EXPECT_EQ("@1.0::IFoo/instance", e.string()); |
| ASSERT_FALSE(e.hasPackage()); |
| ASSERT_TRUE(e.hasVersion()); |
| EXPECT_EQ((std::make_pair<size_t, size_t>(1u, 0u)), e.getVersion()); |
| ASSERT_TRUE(e.hasInterface()); |
| EXPECT_EQ("IFoo", e.getInterface()); |
| ASSERT_TRUE(e.hasInstance()); |
| EXPECT_EQ("instance", e.getInstance()); |
| } |
| |
| TEST_F(LibHidlGenUtilsTest, FqInstance3) { |
| FqInstance e; |
| ASSERT_TRUE(e.setTo("IFoo/instance")); |
| EXPECT_EQ("IFoo/instance", e.string()); |
| ASSERT_FALSE(e.hasPackage()); |
| ASSERT_FALSE(e.hasVersion()); |
| ASSERT_TRUE(e.hasInterface()); |
| EXPECT_EQ("IFoo", e.getInterface()); |
| ASSERT_TRUE(e.hasInstance()); |
| EXPECT_EQ("instance", e.getInstance()); |
| } |
| |
| TEST_F(LibHidlGenUtilsTest, FqInstanceFqNameOnly) { |
| FqInstance e; |
| for (auto testString : |
| {"android.hardware.foo@1.0::IFoo.Type", "@1.0::IFoo.Type", "android.hardware.foo@1.0", |
| "IFoo.Type", "Type", "android.hardware.foo@1.0::IFoo.Type:MY_ENUM_VALUE", |
| "@1.0::IFoo.Type:MY_ENUM_VALUE", "IFoo.Type:MY_ENUM_VALUE"}) { |
| ASSERT_TRUE(e.setTo(testString)); |
| EXPECT_EQ(testString, e.string()); |
| ASSERT_FALSE(e.hasInstance()); |
| }; |
| } |
| |
| TEST_F(LibHidlGenUtilsTest, FqInstanceIdentifier) { |
| FqInstance e; |
| ASSERT_TRUE(e.setTo("Type")); |
| EXPECT_EQ("Type", e.string()); |
| ASSERT_FALSE(e.hasInstance()); |
| } |
| |
| TEST_F(LibHidlGenUtilsTest, FqInstanceSetToByComponent) { |
| FqInstance e; |
| ASSERT_TRUE(e.setTo("android.hardware.foo", 1, 0, "IFoo", "default")); |
| EXPECT_EQ("android.hardware.foo@1.0::IFoo/default", e.string()); |
| ASSERT_TRUE(e.setTo("android.hardware.foo", 1, 0, "IFoo")); |
| EXPECT_EQ("android.hardware.foo@1.0::IFoo", e.string()); |
| ASSERT_TRUE(e.setTo("android.hardware.foo", 1, 0)); |
| EXPECT_EQ("android.hardware.foo@1.0", e.string()); |
| ASSERT_TRUE(e.setTo(1, 0, "IFoo", "default")); |
| EXPECT_EQ("@1.0::IFoo/default", e.string()); |
| ASSERT_TRUE(e.setTo(1, 0, "IFoo")); |
| EXPECT_EQ("@1.0::IFoo", e.string()); |
| ASSERT_TRUE(e.setTo("IFoo", "default")); |
| EXPECT_EQ("IFoo/default", e.string()); |
| } |
| |
| TEST_F(LibHidlGenUtilsTest, FqDefaultVersion) { |
| FQName n; |
| FqInstance i; |
| |
| ASSERT_TRUE(FQName::parse("IFoo.test", &n)); |
| EXPECT_EQ((std::make_pair<size_t, size_t>(0u, 0u)), n.getVersion()); |
| ASSERT_TRUE(i.setTo("IFoo.test")); |
| EXPECT_EQ((std::make_pair<size_t, size_t>(0u, 0u)), i.getVersion()); |
| ASSERT_TRUE(FQName::parse("package@1.2::IFoo", &n)); |
| EXPECT_EQ((std::make_pair<size_t, size_t>(1u, 2u)), n.getVersion()); |
| ASSERT_TRUE(i.setTo("package@1.2::IFoo")); |
| EXPECT_EQ((std::make_pair<size_t, size_t>(1u, 2u)), i.getVersion()); |
| } |
| |
| int main(int argc, char **argv) { |
| ::testing::InitGoogleTest(&argc, argv); |
| return RUN_ALL_TESTS(); |
| } |