Hi, On Mon, May 16, 2016 at 03:00:14PM +0200, Pavel Grunt wrote: > Related: rhbz#1335239 > --- > tests/Makefile.am | 2 ++ > tests/test-spice-uri.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 66 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..993cc78 > --- /dev/null > +++ b/tests/test-spice-uri.c > @@ -0,0 +1,64 @@ > +/* -*- 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" > + > +static void test_spice_uri_ipv4(void) > +{ > + SpiceURI *uri = spice_uri_new(); > + g_assert_nonnull(uri); Many, many thanks for taking time to write tests for it. I'd suggest that you create an array of a testing structure that contain the right fields to be checked and then make a loop to check each test. The goal is to see in one place all the test cases and also it makes easier to include new tests if necessary. Thanks, toso > + > + /* missing hostname */ > + g_assert_false(spice_uri_parse(uri, "http://:80", NULL)); > + /* invalid port */ > + g_assert_false(spice_uri_parse(uri, "http://127.0.0.1:port", NULL)); > + > + g_assert_true(spice_uri_parse(uri, "http://127.0.0.1/", NULL)); > + g_assert_cmpstr(spice_uri_get_scheme(uri), ==, "http"); > + g_assert_cmpstr(spice_uri_get_hostname(uri), ==, "127.0.0.1"); > + g_assert_cmpuint(spice_uri_get_port(uri), ==, 3128); > + > + g_assert_true(spice_uri_parse(uri, "https://127.0.0.1", NULL)); > + g_assert_cmpstr(spice_uri_get_scheme(uri), ==, "https"); > + g_assert_cmpstr(spice_uri_get_hostname(uri), ==, "127.0.0.1"); > + g_assert_cmpuint(spice_uri_get_port(uri), ==, 3129); > + > + g_assert_true(spice_uri_parse(uri, "127.0.0.1", NULL)); > + g_assert_cmpstr(spice_uri_get_scheme(uri), ==, "http"); > + g_assert_cmpstr(spice_uri_get_hostname(uri), ==, "127.0.0.1"); > + g_assert_cmpuint(spice_uri_get_port(uri), ==, 3128); > + > + g_assert_true(spice_uri_parse(uri, "http://user:password@host:80", NULL)); > + g_assert_cmpstr(spice_uri_get_scheme(uri), ==, "http"); > + g_assert_cmpstr(spice_uri_get_hostname(uri), ==, "host"); > + g_assert_cmpstr(spice_uri_get_user(uri), ==, "user"); > + g_assert_cmpstr(spice_uri_get_password(uri), ==, "password"); > + g_assert_cmpuint(spice_uri_get_port(uri), ==, 80); > + > + g_object_unref(uri); > +} > + > +int main(int argc, char* argv[]) > +{ > + g_test_init(&argc, &argv, NULL); > + > + g_test_add_func("/spice_uri/ipv4", test_spice_uri_ipv4); > + > + return g_test_run(); > +} > -- > 2.8.2 > > _______________________________________________ > 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