diff --git a/vibrator/1.4/Android.bp b/vibrator/1.4/Android.bp deleted file mode 100644 index acfc7959ec..0000000000 --- a/vibrator/1.4/Android.bp +++ /dev/null @@ -1,19 +0,0 @@ -// This file is autogenerated by hidl-gen -Landroidbp. - -hidl_interface { - name: "android.hardware.vibrator@1.4", - root: "android.hardware", - srcs: [ - "types.hal", - "IVibrator.hal", - "IVibratorCallback.hal", - ], - interfaces: [ - "android.hardware.vibrator@1.0", - "android.hardware.vibrator@1.1", - "android.hardware.vibrator@1.2", - "android.hardware.vibrator@1.3", - "android.hidl.base@1.0", - ], - gen_java: true, -} diff --git a/vibrator/1.4/IVibrator.hal b/vibrator/1.4/IVibrator.hal deleted file mode 100644 index 913abe3ed1..0000000000 --- a/vibrator/1.4/IVibrator.hal +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2019 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.hardware.vibrator@1.4; - -import @1.0::EffectStrength; -import @1.3::Effect; -import @1.0::Status; -import @1.3::IVibrator; -import IVibratorCallback; - -interface IVibrator extends @1.3::IVibrator { - /** - * Determine capabilities of the vibrator HAL. - */ - getCapabilities() generates (bitfield capabilities); - - /** - * Turn on vibrator - * - * This function must only be called after the previous timeout has expired or - * was canceled (through off()). - * @param timeoutMs number of milliseconds to vibrate. - * @param callback A callback used to inform Frameworks of state change, if supported. - * @return vibratorOnRet whether vibrator command was successful or not. - */ - on_1_4(uint32_t timeoutMs, IVibratorCallback callback) generates (Status vibratorOnRet); - - /** - * Fire off a predefined haptic event. - * - * @param effect The type of haptic event to trigger. - * @param strength The intensity of haptic event to trigger. - * @param callback A callback used to inform Frameworks of state change, if supported. - * @return status Whether the effect was successfully performed or not. Must - * return Status::UNSUPPORTED_OPERATION if the effect is not supported. - * @return lengthMs The length of time the event is expected to take in - * milliseconds. This doesn't need to be perfectly accurate, but should be a reasonable - * approximation. Should be a positive, non-zero value if the returned status is Status::OK, - * and set to 0 otherwise. - */ - perform_1_4(Effect effect, EffectStrength strength, IVibratorCallback callback) - generates (Status status, uint32_t lengthMs); -}; diff --git a/vibrator/1.4/IVibratorCallback.hal b/vibrator/1.4/IVibratorCallback.hal deleted file mode 100644 index 76281bc589..0000000000 --- a/vibrator/1.4/IVibratorCallback.hal +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2019 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.hardware.vibrator@1.4; - -interface IVibratorCallback { - oneway onComplete(); -}; diff --git a/vibrator/1.4/types.hal b/vibrator/1.4/types.hal deleted file mode 100644 index acc49b15c0..0000000000 --- a/vibrator/1.4/types.hal +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2019 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.hardware.vibrator@1.4; - -enum Capabilities : uint32_t { - ON_COMPLETION_CALLBACK = 1 << 0, - PERFORM_COMPLETION_CALLBACK = 1 << 1, -}; diff --git a/vibrator/1.4/vts/functional/Android.bp b/vibrator/1.4/vts/functional/Android.bp deleted file mode 100644 index 202a824077..0000000000 --- a/vibrator/1.4/vts/functional/Android.bp +++ /dev/null @@ -1,33 +0,0 @@ -// -// Copyright (C) 2019 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: "VtsHalVibratorV1_4TargetTest", - defaults: ["VtsHalTargetTestDefaults"], - srcs: ["VtsHalVibratorV1_4TargetTest.cpp"], - static_libs: [ - "android.hardware.vibrator@1.0", - "android.hardware.vibrator@1.1", - "android.hardware.vibrator@1.2", - "android.hardware.vibrator@1.3", - "android.hardware.vibrator@1.4", - ], - test_suites: [ - "general-tests", - "vts-core", - ], -} - diff --git a/vibrator/1.4/vts/functional/VtsHalVibratorV1_4TargetTest.cpp b/vibrator/1.4/vts/functional/VtsHalVibratorV1_4TargetTest.cpp deleted file mode 100644 index 1b6abe9e52..0000000000 --- a/vibrator/1.4/vts/functional/VtsHalVibratorV1_4TargetTest.cpp +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Copyright (C) 2019 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 "vibrator_hidl_hal_test" - -#include -#include -#include -#include -#include -#include - -#include -#include - -#include - -using ::android::sp; -using ::android::hardware::hidl_bitfield; -using ::android::hardware::hidl_enum_range; -using ::android::hardware::Return; -using ::android::hardware::Void; -using ::android::hardware::vibrator::V1_0::EffectStrength; -using ::android::hardware::vibrator::V1_0::Status; -using ::android::hardware::vibrator::V1_3::Effect; -using ::android::hardware::vibrator::V1_4::Capabilities; -using ::android::hardware::vibrator::V1_4::IVibrator; -using ::android::hardware::vibrator::V1_4::IVibratorCallback; - -static uint32_t sCompletionLimitMs = UINT32_MAX; - -#define EXPECT_OK(ret) ASSERT_TRUE((ret).isOk()) - -class CompletionCallback : public IVibratorCallback { - public: - CompletionCallback(std::function callback) : mCallback(callback) {} - Return onComplete() override { - mCallback(); - return Void(); - } - - private: - std::function mCallback; -}; - -class VibratorHidlTest_1_4 : public testing::TestWithParam { - public: - virtual void SetUp() override { - vibrator = IVibrator::getService(GetParam()); - ASSERT_NE(vibrator, nullptr); - capabilities = vibrator->getCapabilities(); - } - - virtual void TearDown() override {} - - sp vibrator; - hidl_bitfield capabilities; -}; - -TEST_P(VibratorHidlTest_1_4, OnWithCallback) { - if (capabilities & Capabilities::ON_COMPLETION_CALLBACK) { - std::promise completionPromise; - std::future completionFuture{completionPromise.get_future()}; - sp callback = - new CompletionCallback([&completionPromise] { completionPromise.set_value(); }); - uint32_t duration = 250; - std::chrono::milliseconds timeout{duration * 2}; - EXPECT_EQ(Status::OK, vibrator->on_1_4(duration, callback)); - EXPECT_EQ(completionFuture.wait_for(timeout), std::future_status::ready); - vibrator->off(); - } -} - -static void validatePerformEffectUnsupportedOperation(Status status, uint32_t lengthMs) { - ASSERT_EQ(Status::UNSUPPORTED_OPERATION, status); - ASSERT_EQ(static_cast(0), lengthMs) - << "Effects that return UNSUPPORTED_OPERATION must have a duration of zero"; -} - -static void validatePerformEffect(Status status, uint32_t lengthMs) { - ASSERT_TRUE(status == Status::OK || status == Status::UNSUPPORTED_OPERATION); - if (status == Status::OK) { - ASSERT_LT(static_cast(0), lengthMs) - << "Effects that return OK must return a positive duration"; - } else { - validatePerformEffectUnsupportedOperation(status, lengthMs); - } -} - -/* - * Test to make sure effects within the valid range return are either supported and return OK with - * a valid duration, or are unsupported and return UNSUPPORTED_OPERATION with a duration of 0. - */ -TEST_P(VibratorHidlTest_1_4, PerformEffect_1_4) { - Status performStatus; - uint32_t performLength; - auto validateWrapper = [&](Status status, uint32_t lengthMs) { - performStatus = status; - performLength = lengthMs; - validatePerformEffect(status, lengthMs); - }; - for (const auto& effect : hidl_enum_range()) { - for (const auto& strength : hidl_enum_range()) { - std::promise completionPromise; - std::future completionFuture{completionPromise.get_future()}; - sp callback = - new CompletionCallback([&completionPromise] { completionPromise.set_value(); }); - EXPECT_OK(vibrator->perform_1_4(effect, strength, callback, validateWrapper)); - if (performStatus == Status::OK && performLength < sCompletionLimitMs && - (capabilities & Capabilities::PERFORM_COMPLETION_CALLBACK)) { - std::chrono::milliseconds timeout{performLength * 2}; - EXPECT_EQ(completionFuture.wait_for(timeout), std::future_status::ready); - } - } - } -} - -/* - * Test to make sure effect values above the valid range are rejected. - */ -TEST_P(VibratorHidlTest_1_4, PerformEffect_1_4_BadEffects_AboveValidRange) { - Effect effect = *std::prev(hidl_enum_range().end()); - Effect badEffect = static_cast(static_cast(effect) + 1); - EXPECT_OK(vibrator->perform_1_4(badEffect, EffectStrength::LIGHT, nullptr, - validatePerformEffectUnsupportedOperation)); -} - -/* - * Test to make sure effect values below the valid range are rejected. - */ -TEST_P(VibratorHidlTest_1_4, PerformEffect_1_4_BadEffects_BelowValidRange) { - Effect effect = *hidl_enum_range().begin(); - Effect badEffect = static_cast(static_cast(effect) - 1); - EXPECT_OK(vibrator->perform_1_4(badEffect, EffectStrength::LIGHT, nullptr, - validatePerformEffectUnsupportedOperation)); -} - -/* - * Test to make sure strength values above the valid range are rejected. - */ -TEST_P(VibratorHidlTest_1_4, PerformEffect_1_4_BadStrength_AboveValidRange) { - EffectStrength strength = *std::prev(hidl_enum_range().end()); - EffectStrength badStrength = static_cast(static_cast(strength) + 1); - EXPECT_OK(vibrator->perform_1_4(Effect::THUD, badStrength, nullptr, - validatePerformEffectUnsupportedOperation)); -} - -/* - * Test to make sure strength values below the valid range are rejected. - */ -TEST_P(VibratorHidlTest_1_4, PerformEffect_1_4_BadStrength_BelowValidRange) { - EffectStrength strength = *hidl_enum_range().begin(); - EffectStrength badStrength = static_cast(static_cast(strength) - 1); - EXPECT_OK(vibrator->perform_1_4(Effect::THUD, badStrength, nullptr, - validatePerformEffectUnsupportedOperation)); -} - -INSTANTIATE_TEST_SUITE_P( - PerInstance, VibratorHidlTest_1_4, - testing::ValuesIn(android::hardware::getAllHalInstanceNames(IVibrator::descriptor)), - android::hardware::PrintInstanceNameToString); - -enum { - OPTION_COMPLETION_LIMIT_MS, -}; - -int main(int argc, char** argv) { - struct option options[] = { - {"completion-limit-ms", required_argument, 0, OPTION_COMPLETION_LIMIT_MS}, {}}; - - printf("Running main() from %s\n", __FILE__); - testing::InitGoogleTest(&argc, argv); - - while (true) { - int opt = getopt_long(argc, argv, "", options, nullptr); - if (opt == -1) { - break; - } - switch (opt) { - case OPTION_COMPLETION_LIMIT_MS: - std::istringstream(optarg) >> sCompletionLimitMs; - break; - default: - printf("Unrecognized option\n"); - return -EINVAL; - } - } - - return RUN_ALL_TESTS(); -}