diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:19:53 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:19:53 +0000 |
commit | 7a9fb41030e1e2c83a6f8e7a93d588eddfe3aec4 (patch) | |
tree | 26c4570f6cc8f5ee36233bd88a2b1236e65a8f20 /socket_spec_test.cpp | |
parent | 5979bcb5027a90f89acb289aefbbbfb51e0d1b4b (diff) | |
parent | c362e05a76d7238f684234fe4ad6768c0c461b8d (diff) | |
download | adb-7a9fb41030e1e2c83a6f8e7a93d588eddfe3aec4.tar.gz |
Snap for 10453563 from c362e05a76d7238f684234fe4ad6768c0c461b8d to mainline-sdkext-releaseaml_sdk_341710000aml_sdk_341510000aml_sdk_341410000aml_sdk_341110080aml_sdk_341110000aml_sdk_341010000aml_sdk_340912010android14-mainline-sdkext-release
Change-Id: I5b8c69036ab58b779643c014c99e7d400ae32fab
Diffstat (limited to 'socket_spec_test.cpp')
-rw-r--r-- | socket_spec_test.cpp | 89 |
1 files changed, 78 insertions, 11 deletions
diff --git a/socket_spec_test.cpp b/socket_spec_test.cpp index 93fc191b..a4b73c49 100644 --- a/socket_spec_test.cpp +++ b/socket_spec_test.cpp @@ -24,14 +24,20 @@ #include <android-base/stringprintf.h> #include <gtest/gtest.h> -TEST(socket_spec, parse_tcp_socket_spec_failure) { +// If the socket spec is incorrectly specified (i.e w/o a "tcp:" prefix), +// check for the contents of the returned error string. +TEST(socket_spec, parse_tcp_socket_spec_failure_error_check) { std::string hostname, error, serial; int port; - EXPECT_FALSE(parse_tcp_socket_spec("sneakernet:5037", &hostname, &port, &serial, &error)); + + // spec needs to be prefixed with "tcp:" + const std::string spec("sneakernet:5037"); + EXPECT_FALSE(parse_tcp_socket_spec(spec, &hostname, &port, &serial, &error)); EXPECT_TRUE(error.find("sneakernet") != std::string::npos); + EXPECT_EQ(error, "specification is not tcp: " + spec); } -TEST(socket_spec, parse_tcp_socket_spec_just_port) { +TEST(socket_spec, parse_tcp_socket_spec_just_port_success) { std::string hostname, error, serial; int port; EXPECT_TRUE(parse_tcp_socket_spec("tcp:5037", &hostname, &port, &serial, &error)); @@ -40,7 +46,7 @@ TEST(socket_spec, parse_tcp_socket_spec_just_port) { EXPECT_EQ("", serial); } -TEST(socket_spec, parse_tcp_socket_spec_bad_ports) { +TEST(socket_spec, parse_tcp_socket_spec_bad_ports_failure) { std::string hostname, error, serial; int port; EXPECT_FALSE(parse_tcp_socket_spec("tcp:", &hostname, &port, &serial, &error)); @@ -48,7 +54,7 @@ TEST(socket_spec, parse_tcp_socket_spec_bad_ports) { EXPECT_FALSE(parse_tcp_socket_spec("tcp:65536", &hostname, &port, &serial, &error)); } -TEST(socket_spec, parse_tcp_socket_spec_host_and_port) { +TEST(socket_spec, parse_tcp_socket_spec_host_and_port_success) { std::string hostname, error, serial; int port; EXPECT_TRUE(parse_tcp_socket_spec("tcp:localhost:1234", &hostname, &port, &serial, &error)); @@ -57,7 +63,7 @@ TEST(socket_spec, parse_tcp_socket_spec_host_and_port) { EXPECT_EQ("localhost:1234", serial); } -TEST(socket_spec, parse_tcp_socket_spec_host_no_port) { +TEST(socket_spec, parse_tcp_socket_spec_host_no_port_success) { std::string hostname, error, serial; int port; EXPECT_TRUE(parse_tcp_socket_spec("tcp:localhost", &hostname, &port, &serial, &error)); @@ -66,7 +72,16 @@ TEST(socket_spec, parse_tcp_socket_spec_host_no_port) { EXPECT_EQ("localhost:5555", serial); } -TEST(socket_spec, parse_tcp_socket_spec_host_bad_ports) { +TEST(socket_spec, parse_tcp_socket_spec_host_ipv4_no_port_success) { + std::string hostname, error, serial; + int port; + EXPECT_TRUE(parse_tcp_socket_spec("tcp:127.0.0.1", &hostname, &port, &serial, &error)); + EXPECT_EQ("127.0.0.1", hostname); + EXPECT_EQ(5555, port); + EXPECT_EQ("127.0.0.1:5555", serial); +} + +TEST(socket_spec, parse_tcp_socket_spec_host_bad_ports_failure) { std::string hostname, error, serial; int port; EXPECT_FALSE(parse_tcp_socket_spec("tcp:localhost:", &hostname, &port, &serial, &error)); @@ -74,33 +89,85 @@ TEST(socket_spec, parse_tcp_socket_spec_host_bad_ports) { EXPECT_FALSE(parse_tcp_socket_spec("tcp:localhost:65536", &hostname, &port, &serial, &error)); } -TEST(socket_spec, parse_tcp_socket_spec_ipv6_and_port) { +TEST(socket_spec, parse_tcp_socket_spec_host_ipv4_bad_ports_failure) { + std::string hostname, error, serial; + int port; + EXPECT_FALSE(parse_tcp_socket_spec("tcp:127.0.0.1:", &hostname, &port, &serial, &error)); + EXPECT_FALSE(parse_tcp_socket_spec("tcp:127.0.0.1:-1", &hostname, &port, &serial, &error)); + EXPECT_FALSE(parse_tcp_socket_spec("tcp:127.0.0.1:65536", &hostname, &port, &serial, &error)); +} + +TEST(socket_spec, parse_tcp_socket_spec_host_ipv6_bad_ports_failure) { + std::string hostname, error, serial; + int port; + EXPECT_FALSE(parse_tcp_socket_spec("tcp:2601:644:8e80:620:c63:50c9:8a91:8efa:", &hostname, + &port, &serial, &error)); + EXPECT_FALSE(parse_tcp_socket_spec("tcp:2601:644:8e80:620:c63:50c9:8a91:8efa:-1", &hostname, + &port, &serial, &error)); + EXPECT_FALSE(parse_tcp_socket_spec("tcp:2601:644:8e80:620:c63:50c9:8a91:8efa:65536", &hostname, + &port, &serial, &error)); +} + +TEST(socket_spec, parse_tcp_socket_spec_ipv6_and_port_success) { std::string hostname, error, serial; int port; EXPECT_TRUE(parse_tcp_socket_spec("tcp:[::1]:1234", &hostname, &port, &serial, &error)); EXPECT_EQ("::1", hostname); EXPECT_EQ(1234, port); EXPECT_EQ("[::1]:1234", serial); + + // Repeat with different format of ipv6 + EXPECT_TRUE(parse_tcp_socket_spec("tcp:[2601:644:8e80:620::fbbc]:2345", &hostname, &port, + &serial, &error)); + EXPECT_EQ("2601:644:8e80:620::fbbc", hostname); + EXPECT_EQ(2345, port); + EXPECT_EQ("[2601:644:8e80:620::fbbc]:2345", serial); } -TEST(socket_spec, parse_tcp_socket_spec_ipv6_no_port) { +TEST(socket_spec, parse_tcp_socket_spec_ipv6_no_port_success) { std::string hostname, error, serial; int port; EXPECT_TRUE(parse_tcp_socket_spec("tcp:::1", &hostname, &port, &serial, &error)); EXPECT_EQ("::1", hostname); EXPECT_EQ(5555, port); EXPECT_EQ("[::1]:5555", serial); + + // Repeat with other supported formats of ipv6. + EXPECT_TRUE(parse_tcp_socket_spec("tcp:2601:644:8e80:620::fbbc", &hostname, &port, &serial, + &error)); + EXPECT_EQ("2601:644:8e80:620::fbbc", hostname); + EXPECT_EQ(5555, port); + EXPECT_EQ("[2601:644:8e80:620::fbbc]:5555", serial); + + EXPECT_TRUE(parse_tcp_socket_spec("tcp:2601:644:8e80:620:c63:50c9:8a91:8efa", &hostname, &port, + &serial, &error)); + EXPECT_EQ("2601:644:8e80:620:c63:50c9:8a91:8efa", hostname); + EXPECT_EQ(5555, port); + EXPECT_EQ("[2601:644:8e80:620:c63:50c9:8a91:8efa]:5555", serial); + + EXPECT_TRUE(parse_tcp_socket_spec("tcp:2601:644:8e80:620:2d0e:b944:5288:97df", &hostname, &port, + &serial, &error)); + EXPECT_EQ("2601:644:8e80:620:2d0e:b944:5288:97df", hostname); + EXPECT_EQ(5555, port); + EXPECT_EQ("[2601:644:8e80:620:2d0e:b944:5288:97df]:5555", serial); } -TEST(socket_spec, parse_tcp_socket_spec_ipv6_bad_ports) { +TEST(socket_spec, parse_tcp_socket_spec_ipv6_bad_ports_failure) { std::string hostname, error, serial; int port; EXPECT_FALSE(parse_tcp_socket_spec("tcp:[::1]", &hostname, &port, &serial, &error)); EXPECT_FALSE(parse_tcp_socket_spec("tcp:[::1]:", &hostname, &port, &serial, &error)); EXPECT_FALSE(parse_tcp_socket_spec("tcp:[::1]:-1", &hostname, &port, &serial, &error)); + + EXPECT_TRUE(parse_tcp_socket_spec("tcp:2601:644:8e80:620:2d0e:b944:5288:97df", &hostname, &port, + &serial, &error)); + EXPECT_FALSE(parse_tcp_socket_spec("tcp:2601:644:8e80:620:2d0e:b944:5288:97df:", &hostname, + &port, &serial, &error)); + EXPECT_FALSE(parse_tcp_socket_spec("tcp:2601:644:8e80:620:2d0e:b944:5288:97df:-1", &hostname, + &port, &serial, &error)); } -TEST(socket_spec, get_host_socket_spec_port) { +TEST(socket_spec, get_host_socket_spec_port_success) { std::string error; EXPECT_EQ(5555, get_host_socket_spec_port("tcp:5555", &error)); EXPECT_EQ(5555, get_host_socket_spec_port("tcp:localhost:5555", &error)); |