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
This commit is contained in:
Elliott Hughes 2020-05-12 16:36:04 -07:00
parent a269c7c3d1
commit e65e002102
2 changed files with 33 additions and 6 deletions

View file

@ -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) {

View file

@ -24,6 +24,13 @@
#include <android-base/stringprintf.h>
#include <gtest/gtest.h>
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"));
}