Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e65e0021 authored by Elliott Hughes's avatar Elliott Hughes
Browse files

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
parent a269c7c3
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -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) {
+33 −0
Original line number Diff line number Diff line
@@ -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"));
}