This revision was automatically updated to reflect the committed changes. Closed by commit rG7ff2de4f0c60: Do not list adb devices when a device id is given (authored by emrekultursay, committed by labath).
Changed prior to commit: https://reviews.llvm.org/D79586?vs=262684&id=267152#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D79586/new/ https://reviews.llvm.org/D79586 Files: lldb/source/Plugins/Platform/Android/AdbClient.cpp lldb/unittests/Platform/Android/AdbClientTest.cpp lldb/unittests/Platform/Android/CMakeLists.txt lldb/unittests/Platform/CMakeLists.txt
Index: lldb/unittests/Platform/CMakeLists.txt =================================================================== --- lldb/unittests/Platform/CMakeLists.txt +++ lldb/unittests/Platform/CMakeLists.txt @@ -6,3 +6,5 @@ LINK_COMPONENTS Support ) + +add_subdirectory(Android) Index: lldb/unittests/Platform/Android/CMakeLists.txt =================================================================== --- /dev/null +++ lldb/unittests/Platform/Android/CMakeLists.txt @@ -0,0 +1,8 @@ +include_directories(${LLDB_SOURCE_DIR}/source/Plugins/Platform/Android) + +add_lldb_unittest(AdbClientTest + AdbClientTest.cpp + + LINK_LIBS + lldbPluginPlatformAndroid + ) Index: lldb/unittests/Platform/Android/AdbClientTest.cpp =================================================================== --- /dev/null +++ lldb/unittests/Platform/Android/AdbClientTest.cpp @@ -0,0 +1,51 @@ +//===-- AdbClientTest.cpp -------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "gtest/gtest.h" +#include "Plugins/Platform/Android/AdbClient.h" +#include <cstdlib> + +static void set_env(const char *var, const char *value) { +#ifdef _WIN32 + _putenv_s(var, value); +#else + setenv(var, value, true); +#endif +} + +using namespace lldb; +using namespace lldb_private; + +namespace lldb_private { +namespace platform_android { + +class AdbClientTest : public ::testing::Test { +public: + void SetUp() override { set_env("ANDROID_SERIAL", ""); } + + void TearDown() override { set_env("ANDROID_SERIAL", ""); } +}; + +TEST(AdbClientTest, CreateByDeviceId) { + AdbClient adb; + Status error = AdbClient::CreateByDeviceID("device1", adb); + EXPECT_TRUE(error.Success()); + EXPECT_EQ("device1", adb.GetDeviceID()); +} + +TEST(AdbClientTest, CreateByDeviceId_ByEnvVar) { + set_env("ANDROID_SERIAL", "device2"); + + AdbClient adb; + Status error = AdbClient::CreateByDeviceID("", adb); + EXPECT_TRUE(error.Success()); + EXPECT_EQ("device2", adb.GetDeviceID()); +} + +} // end namespace platform_android +} // end namespace lldb_private Index: lldb/source/Plugins/Platform/Android/AdbClient.cpp =================================================================== --- lldb/source/Plugins/Platform/Android/AdbClient.cpp +++ lldb/source/Plugins/Platform/Android/AdbClient.cpp @@ -94,11 +94,7 @@ Status AdbClient::CreateByDeviceID(const std::string &device_id, AdbClient &adb) { - DeviceIDList connect_devices; - auto error = adb.GetDevices(connect_devices); - if (error.Fail()) - return error; - + Status error; std::string android_serial; if (!device_id.empty()) android_serial = device_id; @@ -106,18 +102,18 @@ android_serial = env_serial; if (android_serial.empty()) { - if (connect_devices.size() != 1) + DeviceIDList connected_devices; + error = adb.GetDevices(connected_devices); + if (error.Fail()) + return error; + + if (connected_devices.size() != 1) return Status("Expected a single connected device, got instead %zu - try " "setting 'ANDROID_SERIAL'", - connect_devices.size()); - adb.SetDeviceID(connect_devices.front()); + connected_devices.size()); + adb.SetDeviceID(connected_devices.front()); } else { - auto find_it = std::find(connect_devices.begin(), connect_devices.end(), - android_serial); - if (find_it == connect_devices.end()) - return Status("Device \"%s\" not found", android_serial.c_str()); - - adb.SetDeviceID(*find_it); + adb.SetDeviceID(android_serial); } return error; }
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits