[Spice-devel] [PATCH spice-gtk v2 4/4] test-session: Add IPv6 tests
Pavel Grunt
pgrunt at redhat.com
Wed Oct 12 15:08:26 UTC 2016
---
tests/session.c | 157 +++++++++++++++++++++++++++++++++++++-------------------
1 file changed, 105 insertions(+), 52 deletions(-)
diff --git a/tests/session.c b/tests/session.c
index 494e92f..09856b3 100644
--- a/tests/session.c
+++ b/tests/session.c
@@ -1,5 +1,16 @@
#include <spice-client.h>
+typedef struct {
+ const gchar *port;
+ const gchar *tls_port;
+ const gchar *host;
+ const gchar *username;
+ const gchar *password;
+ const gchar *uri_input;
+ const gchar *uri_output;
+ const gchar *message;
+} TestCase;
+
static void test_session_uri_bad(void)
{
SpiceSession *s;
@@ -121,62 +132,13 @@ static void test_session_uri_bad(void)
g_object_unref(s);
}
-static void test_session_uri_good(void)
+static void test_session_uri_good(const TestCase *tests, const guint cases)
{
SpiceSession *s;
guint i;
- struct {
- gchar *port;
- gchar *tls_port;
- gchar *host;
- gchar *username;
- gchar *password;
- gchar *uri_input;
- gchar *uri_output;
- gchar *message;
- } tests[] = {
- /* Arguments with empty value */
- { "5900", NULL,
- "localhost",
- NULL, NULL,
- "spice://localhost?port=5900&tls-port=",
- "spice://localhost?port=5900&" },
- { "5910", NULL,
- "localhost",
- "user", NULL,
- "spice://user@localhost?tls-port=&port=5910",
- "spice://localhost?port=5910&" },
- { NULL, "5920",
- "localhost",
- "user", "password",
- "spice://user@localhost?tls-port=5920&port=&password=password",
- "spice://localhost?tls-port=5920",
- "password may be visible in process listings"},
- { NULL, "5930",
- "localhost",
- NULL, NULL,
- "spice://localhost?port=&tls-port=5930",
- "spice://localhost?tls-port=5930" },
- { "42", NULL,
- "localhost",
- NULL, NULL,
- "spice://localhost:42",
- "spice://localhost?port=42&" },
- { "42", "5930",
- "localhost",
- NULL, NULL,
- "spice://localhost:42?tls-port=5930",
- "spice://localhost?port=42&tls-port=5930" },
- { "42", "5930",
- "127.0.0.1",
- NULL, NULL,
- "spice://127.0.0.1:42?tls-port=5930",
- "spice://127.0.0.1?port=42&tls-port=5930" },
- };
-
/* Set URI and check URI, port and tls_port */
- for (i = 0; i < G_N_ELEMENTS(tests); i++) {
+ for (i = 0; i < cases; i++) {
gchar *uri, *port, *tls_port, *host, *username, *password;
s = spice_session_new();
@@ -226,12 +188,103 @@ static void test_session_uri_good(void)
}
}
+static void test_session_uri_ipv4_good(void)
+{
+ const TestCase tests[] = {
+ /* Arguments with empty value */
+ { "5900", NULL,
+ "localhost",
+ NULL, NULL,
+ "spice://localhost?port=5900&tls-port=",
+ "spice://localhost?port=5900&" },
+ { "5910", NULL,
+ "localhost",
+ "user", NULL,
+ "spice://user@localhost?tls-port=&port=5910",
+ "spice://localhost?port=5910&" },
+ { NULL, "5920",
+ "localhost",
+ "user", "password",
+ "spice://user@localhost?tls-port=5920&port=&password=password",
+ "spice://localhost?tls-port=5920",
+ "password may be visible in process listings"},
+ { NULL, "5930",
+ "localhost",
+ NULL, NULL,
+ "spice://localhost?port=&tls-port=5930",
+ "spice://localhost?tls-port=5930" },
+ { "42", NULL,
+ "localhost",
+ NULL, NULL,
+ "spice://localhost:42",
+ "spice://localhost?port=42&" },
+ { "42", "5930",
+ "localhost",
+ NULL, NULL,
+ "spice://localhost:42?tls-port=5930",
+ "spice://localhost?port=42&tls-port=5930" },
+ { "42", "5930",
+ "127.0.0.1",
+ NULL, NULL,
+ "spice://127.0.0.1:42?tls-port=5930",
+ "spice://127.0.0.1?port=42&tls-port=5930" },
+ };
+
+ test_session_uri_good(tests, G_N_ELEMENTS(tests));
+}
+
+static void test_session_uri_ipv6_good(void)
+{
+ const TestCase tests[] = {
+ /* Arguments with empty value */
+ { "5900", NULL,
+ "[2010:836B:4179::836B:4179]",
+ NULL, NULL,
+ "spice://[2010:836B:4179::836B:4179]?port=5900&tls-port=",
+ "spice://[2010:836B:4179::836B:4179]?port=5900&" },
+ { "5910", NULL,
+ "[::192.9.5.5]",
+ "user", NULL,
+ "spice://user@[::192.9.5.5]?tls-port=&port=5910",
+ "spice://[::192.9.5.5]?port=5910&" },
+ { NULL, "5920",
+ "[3ffe:2a00:100:7031::1]",
+ "user", "password",
+ "spice://user@[3ffe:2a00:100:7031::1]?tls-port=5920&port=&password=password",
+ "spice://[3ffe:2a00:100:7031::1]?tls-port=5920",
+ "password may be visible in process listings"},
+ { NULL, "5930",
+ "[1080:0:0:0:8:800:200C:417A]",
+ NULL, NULL,
+ "spice://[1080:0:0:0:8:800:200C:417A]?port=&tls-port=5930",
+ "spice://[1080:0:0:0:8:800:200C:417A]?tls-port=5930" },
+ { "42", NULL,
+ "[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]",
+ NULL, NULL,
+ "spice://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:42",
+ "spice://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]?port=42&" },
+ { "42", "5930",
+ "[::192.9.5.5]",
+ NULL, NULL,
+ "spice://[::192.9.5.5]:42?tls-port=5930",
+ "spice://[::192.9.5.5]?port=42&tls-port=5930" },
+ { "42", "5930",
+ "[::FFFF:129.144.52.38]",
+ NULL, NULL,
+ "spice://[::FFFF:129.144.52.38]:42?tls-port=5930",
+ "spice://[::FFFF:129.144.52.38]?port=42&tls-port=5930" },
+ };
+
+ test_session_uri_good(tests, G_N_ELEMENTS(tests));
+}
+
int main(int argc, char* argv[])
{
g_test_init(&argc, &argv, NULL);
g_test_add_func("/session/bad-uri", test_session_uri_bad);
- g_test_add_func("/session/good-uri", test_session_uri_good);
+ g_test_add_func("/session/good-ipv4-uri", test_session_uri_ipv4_good);
+ g_test_add_func("/session/good-ipv6-uri", test_session_uri_ipv6_good);
return g_test_run();
}
--
2.10.1
More information about the Spice-devel
mailing list