Add test for ConnectionState to_string. am: 6256d99b28

Original change: https://android-review.googlesource.com/c/platform/packages/modules/adb/+/1713940

Change-Id: I7ff56f3aa06a4326b42b259213c729daddfcc8a0
diff --git a/adb.cpp b/adb.cpp
index 3b860c0..d0602ec 100644
--- a/adb.cpp
+++ b/adb.cpp
@@ -45,6 +45,8 @@
 #include <android-base/parsenetaddress.h>
 #include <android-base/stringprintf.h>
 #include <android-base/strings.h>
+#include <diagnose_usb.h>
+
 #include <build/version.h>
 #include <platform_tools_version.h>
 
@@ -108,8 +110,36 @@
     return sum;
 }
 
-apacket* get_apacket(void)
-{
+std::string to_string(ConnectionState state) {
+    switch (state) {
+        case kCsOffline:
+            return "offline";
+        case kCsBootloader:
+            return "bootloader";
+        case kCsDevice:
+            return "device";
+        case kCsHost:
+            return "host";
+        case kCsRecovery:
+            return "recovery";
+        case kCsRescue:
+            return "rescue";
+        case kCsNoPerm:
+            return UsbNoPermissionsShortHelpText();
+        case kCsSideload:
+            return "sideload";
+        case kCsUnauthorized:
+            return "unauthorized";
+        case kCsAuthorizing:
+            return "authorizing";
+        case kCsConnecting:
+            return "connecting";
+        default:
+            return "unknown";
+    }
+}
+
+apacket* get_apacket(void) {
     apacket* p = new apacket();
     if (p == nullptr) {
         LOG(FATAL) << "failed to allocate an apacket";
@@ -1326,7 +1356,7 @@
                 s->transport ? s->transport
                              : acquire_one_transport(type, serial, transport_id, nullptr, &error);
         if (t) {
-            SendOkay(reply_fd, t->connection_state_name());
+            SendOkay(reply_fd, to_string(t->GetConnectionState()));
         } else {
             SendFail(reply_fd, error);
         }
@@ -1353,8 +1383,8 @@
                                                              &response, true);
         if (t != nullptr) {
             kick_transport(t, true);
-            response =
-                    "reconnecting " + t->serial_name() + " [" + t->connection_state_name() + "]\n";
+            response = "reconnecting " + t->serial_name() + " [" +
+                       to_string(t->GetConnectionState()) + "]\n";
         }
         SendOkay(reply_fd, response);
         return HostRequestResult::Handled;
diff --git a/adb.h b/adb.h
index 437a207..801da1d 100644
--- a/adb.h
+++ b/adb.h
@@ -115,6 +115,8 @@
     kCsRescue,
 };
 
+std::string to_string(ConnectionState state);
+
 inline bool ConnectionStateIsOnline(ConnectionState state) {
     switch (state) {
         case kCsBootloader:
@@ -201,8 +203,6 @@
 bool local_connect(int port);
 int local_connect_arbitrary_ports(int console_port, int adb_port, std::string* error);
 
-ConnectionState connection_state(atransport* t);
-
 extern const char* adb_device_banner;
 
 #define CHUNK_SIZE (64 * 1024)
diff --git a/transport.cpp b/transport.cpp
index 1e13655..cfae25d 100644
--- a/transport.cpp
+++ b/transport.cpp
@@ -44,7 +44,6 @@
 #include <android-base/stringprintf.h>
 #include <android-base/strings.h>
 #include <android-base/thread_annotations.h>
-
 #include <diagnose_usb.h>
 
 #include "adb.h"
@@ -1203,38 +1202,6 @@
     });
 }
 
-std::string atransport::connection_state_name() const {
-    ConnectionState state = GetConnectionState();
-    switch (state) {
-        case kCsOffline:
-            return "offline";
-        case kCsBootloader:
-            return "bootloader";
-        case kCsDevice:
-            return "device";
-        case kCsHost:
-            return "host";
-        case kCsRecovery:
-            return "recovery";
-        case kCsRescue:
-            return "rescue";
-        case kCsNoPerm:
-            return UsbNoPermissionsShortHelpText();
-        case kCsSideload:
-            return "sideload";
-        case kCsUnauthorized:
-            return "unauthorized";
-        case kCsAuthorizing:
-            return "authorizing";
-        case kCsConnecting:
-            return "connecting";
-        case kCsDetached:
-            return "detached";
-        default:
-            return "unknown";
-    }
-}
-
 void atransport::update_version(int version, size_t payload) {
     protocol_version = std::min(version, A_VERSION);
     max_payload = std::min(payload, MAX_PAYLOAD);
@@ -1399,10 +1366,10 @@
     if (!long_listing) {
         *result += serial;
         *result += '\t';
-        *result += t->connection_state_name();
+        *result += to_string(t->GetConnectionState());
     } else {
         android::base::StringAppendF(result, "%-22s %s", serial.c_str(),
-                                     t->connection_state_name().c_str());
+                                     to_string(t->GetConnectionState()).c_str());
 
         append_transport_info(result, "", t->devpath, false);
         append_transport_info(result, "product:", t->product, false);
diff --git a/transport.h b/transport.h
index 20c47a1..35cecf8 100644
--- a/transport.h
+++ b/transport.h
@@ -335,7 +335,6 @@
     size_t failed_auth_attempts = 0;
 
     std::string serial_name() const { return !serial.empty() ? serial : "<unknown>"; }
-    std::string connection_state_name() const;
 
     void update_version(int version, size_t payload);
     int get_protocol_version() const;
diff --git a/transport_test.cpp b/transport_test.cpp
index 8579ff4..1a047aa 100644
--- a/transport_test.cpp
+++ b/transport_test.cpp
@@ -21,6 +21,19 @@
 #include "adb.h"
 #include "fdevent/fdevent_test.h"
 
+TEST(ConnectionStateTest, to_string) {
+    ASSERT_EQ("offline", to_string(ConnectionState::kCsOffline));
+    ASSERT_EQ("bootloader", to_string(ConnectionState::kCsBootloader));
+    ASSERT_EQ("device", to_string(ConnectionState::kCsDevice));
+    ASSERT_EQ("host", to_string(ConnectionState::kCsHost));
+    ASSERT_EQ("recovery", to_string(ConnectionState::kCsRecovery));
+    ASSERT_EQ("rescue", to_string(ConnectionState::kCsRescue));
+    ASSERT_EQ("sideload", to_string(ConnectionState::kCsSideload));
+    ASSERT_EQ("unauthorized", to_string(ConnectionState::kCsUnauthorized));
+    ASSERT_EQ("authorizing", to_string(ConnectionState::kCsAuthorizing));
+    ASSERT_EQ("connecting", to_string(ConnectionState::kCsConnecting));
+}
+
 struct TransportTest : public FdeventTest {};
 
 static void DisconnectFunc(void* arg, atransport*) {