From e65e002102ed0c8f715795d679036a44ae4a766b Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Tue, 12 May 2020 16:36:04 -0700 Subject: [PATCH] Add a few more trivial socket_spec.h tests. Also remove some dead code. The "missing port" case in parse_tcp_socket_spec hasn't been meaningful since we put the default port back. Test: treehugger Change-Id: I40958f0f1c2dd7f0315142c2c0363a70fe6f80fe --- adb/socket_spec.cpp | 6 ------ adb/socket_spec_test.cpp | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/adb/socket_spec.cpp b/adb/socket_spec.cpp index d17036cec..b7b25fa88 100644 --- a/adb/socket_spec.cpp +++ b/adb/socket_spec.cpp @@ -103,12 +103,6 @@ bool parse_tcp_socket_spec(std::string_view spec, std::string* hostname, int* po if (!android::base::ParseNetAddress(addr, &hostname_value, &port_value, serial, error)) { return false; } - - if (port_value == -1) { - *error = "missing port in specification: "; - *error += spec; - return false; - } } if (hostname) { diff --git a/adb/socket_spec_test.cpp b/adb/socket_spec_test.cpp index e9d5270ca..e83c34c45 100644 --- a/adb/socket_spec_test.cpp +++ b/adb/socket_spec_test.cpp @@ -24,6 +24,13 @@ #include #include +TEST(socket_spec, parse_tcp_socket_spec_failure) { + std::string hostname, error, serial; + int port; + EXPECT_FALSE(parse_tcp_socket_spec("sneakernet:5037", &hostname, &port, &serial, &error)); + EXPECT_TRUE(error.find("sneakernet") != std::string::npos); +} + TEST(socket_spec, parse_tcp_socket_spec_just_port) { std::string hostname, error, serial; int port; @@ -134,6 +141,19 @@ TEST(socket_spec, socket_spec_listen_connect_tcp) { EXPECT_NE(client_fd.get(), -1); } +TEST(socket_spec, socket_spec_connect_failure) { + std::string error, serial; + int port; + unique_fd client_fd; + EXPECT_FALSE(socket_spec_connect(&client_fd, "tcp:", &port, &serial, &error)); + EXPECT_FALSE(socket_spec_connect(&client_fd, "acceptfd:", &port, &serial, &error)); + EXPECT_FALSE(socket_spec_connect(&client_fd, "vsock:", &port, &serial, &error)); + EXPECT_FALSE(socket_spec_connect(&client_fd, "vsock:x", &port, &serial, &error)); + EXPECT_FALSE(socket_spec_connect(&client_fd, "vsock:5", &port, &serial, &error)); + EXPECT_FALSE(socket_spec_connect(&client_fd, "vsock:5:x", &port, &serial, &error)); + EXPECT_FALSE(socket_spec_connect(&client_fd, "sneakernet:", &port, &serial, &error)); +} + TEST(socket_spec, socket_spec_listen_connect_localfilesystem) { std::string error, serial; int port; @@ -152,3 +172,16 @@ TEST(socket_spec, socket_spec_listen_connect_localfilesystem) { EXPECT_NE(client_fd.get(), -1); } } + +TEST(socket_spec, is_socket_spec) { + EXPECT_TRUE(is_socket_spec("tcp:blah")); + EXPECT_TRUE(is_socket_spec("acceptfd:blah")); + EXPECT_TRUE(is_socket_spec("local:blah")); + EXPECT_TRUE(is_socket_spec("localreserved:blah")); +} + +TEST(socket_spec, is_local_socket_spec) { + EXPECT_TRUE(is_local_socket_spec("local:blah")); + EXPECT_TRUE(is_local_socket_spec("tcp:localhost")); + EXPECT_FALSE(is_local_socket_spec("tcp:www.google.com")); +}