Hi, On Mon, May 30, 2016 at 05:46:43PM +0200, Pavel Grunt wrote: > Related: rhbz#1335239 > --- > tests/Makefile.am | 2 ++ > tests/test-spice-uri.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 95 insertions(+) > create mode 100644 tests/test-spice-uri.c > > diff --git a/tests/Makefile.am b/tests/Makefile.am > index c1d95c1..fb97138 100644 > --- a/tests/Makefile.am > +++ b/tests/Makefile.am > @@ -4,6 +4,7 @@ noinst_PROGRAMS = > TESTS = coroutine \ > util \ > session \ > + test-spice-uri \ > $(NULL) > > if WITH_PHODAV > @@ -35,6 +36,7 @@ util_SOURCES = util.c > coroutine_SOURCES = coroutine.c > session_SOURCES = session.c > pipe_SOURCES = pipe.c > +test_spice_uri_SOURCES = test-spice-uri.c > usb_acl_helper_SOURCES = usb-acl-helper.c > usb_acl_helper_CFLAGS = -DTESTDIR=\"$(abs_builddir)\" > mock_acl_helper_SOURCES = mock-acl-helper.c > diff --git a/tests/test-spice-uri.c b/tests/test-spice-uri.c > new file mode 100644 > index 0000000..00aeea7 > --- /dev/null > +++ b/tests/test-spice-uri.c I would rename the file to test-uri.c or just uri.c to follow the other tests. The binary however I agree to have test- prefix if no one complains about it ;) This is a minor comment, feel free to ignore it Acked-by: Victor Toso <victortoso@xxxxxxxxxx> > @@ -0,0 +1,93 @@ > +/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */ > +/* > + Copyright (C) 2016 Red Hat, Inc. > + > + This library is free software; you can redistribute it and/or > + modify it under the terms of the GNU Lesser General Public > + License as published by the Free Software Foundation; either > + version 2.1 of the License, or (at your option) any later version. > + > + This library is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + Lesser General Public License for more details. > + > + You should have received a copy of the GNU Lesser General Public > + License along with this library; if not, see <http://www.gnu.org/licenses/>. > +*/ > +#include <glib.h> > +#include <spice-client.h> > +#include "spice-uri-priv.h" > + > +struct test_case { > + gchar *uri; > + gchar *scheme; > + gchar *hostname; > + guint port; > + gchar *user; > + gchar *password; > + gchar *error_msg; > +}; > + > +static void test_spice_uri_ipv4_bad(void) > +{ > + const struct test_case invalid_test_cases[] = { > + {"http://:80", "http", NULL, 80, NULL, NULL, "Invalid hostname in uri address"}, > + {"http://", "http", NULL, 3128, NULL, NULL, "Invalid hostname in uri address"}, > + {"http://127.0.0.1:port", "http", "127.0.0.1", 3128, NULL, NULL, > + "Invalid uri port: port"}, > + }; > + > + guint i; > + > + SpiceURI *uri = spice_uri_new(); > + g_assert_nonnull(uri); > + > + for (i = 0; i < G_N_ELEMENTS(invalid_test_cases); i++) { > + GError *error = NULL; > + g_assert_false(spice_uri_parse(uri, invalid_test_cases[i].uri, &error)); > + g_assert_error(error, SPICE_CLIENT_ERROR, SPICE_CLIENT_ERROR_FAILED); > + g_assert_cmpstr(error->message, ==, invalid_test_cases[i].error_msg); > + g_error_free(error); > + } > + > + g_object_unref(uri); > +} > + > +static void test_spice_uri_ipv4_good(void) > +{ > + const struct test_case valid_test_cases[] = { > + {"http://127.0.0.1/", "http", "127.0.0.1", 3128, NULL, NULL, NULL}, > + {"https://127.0.0.1", "https", "127.0.0.1", 3129, NULL, NULL, NULL}, > + {"127.0.0.1", "http", "127.0.0.1", 3128, NULL, NULL, NULL}, > + {"http://user:password@host:80", "http", "host", 80, "user", "password", NULL}, > + }; > + > + guint i; > + > + SpiceURI *uri = spice_uri_new(); > + g_assert_nonnull(uri); > + > + for (i = 0; i < G_N_ELEMENTS(valid_test_cases); i++) { > + GError *error = NULL; > + g_assert_true(spice_uri_parse(uri, valid_test_cases[i].uri, &error)); > + g_assert_cmpstr(spice_uri_get_scheme(uri), ==, valid_test_cases[i].scheme); > + g_assert_cmpstr(spice_uri_get_hostname(uri), ==, valid_test_cases[i].hostname); > + g_assert_cmpstr(spice_uri_get_user(uri), ==, valid_test_cases[i].user); > + g_assert_cmpstr(spice_uri_get_password(uri), ==, valid_test_cases[i].password); > + g_assert_cmpuint(spice_uri_get_port(uri), ==, valid_test_cases[i].port); > + g_assert_no_error(error); > + } > + > + g_object_unref(uri); > +} > + > +int main(int argc, char* argv[]) > +{ > + g_test_init(&argc, &argv, NULL); > + > + g_test_add_func("/spice_uri/ipv4/bad-uri", test_spice_uri_ipv4_bad); > + g_test_add_func("/spice_uri/ipv4/good-uri", test_spice_uri_ipv4_good); > + > + return g_test_run(); > +} > -- > 2.8.3 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/spice-devel _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel