Re: [PATCH spice-gtk v3 1/7] tests: Add test for SpiceUri

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Thu, May 19, 2016 at 06:38:03PM +0200, Pavel Grunt wrote:
> Related: rhbz#1335239
> ---
>  tests/Makefile.am      |  2 ++
>  tests/test-spice-uri.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 75 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				\

The other binaries don't have 'test-' prefix but I actually liked it.
My vote is to change the other binaries to have it too. :)

>  	$(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..e8cfcc9
> --- /dev/null
> +++ b/tests/test-spice-uri.c
> @@ -0,0 +1,73 @@
> +/* -*- 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;
> +};
> +
> +static void test_spice_uri_ipv4(void)
> +{
> +    const struct test_case invalid_test_cases[] = {
> +        {"http://:80";, "http", NULL, 80, NULL, NULL}, /* missing hostname */
> +        {"http://";, "http", NULL, 3128, NULL, NULL},
> +        {"http://127.0.0.1:port";, "http", "127.0.0.1", 3128, NULL, NULL}, /* invalid port */
> +    };
> +    const struct test_case valid_test_cases[] = {
> +        {"http://127.0.0.1/";, "http", "127.0.0.1", 3128, NULL, NULL},
> +        {"https://127.0.0.1";, "https", "127.0.0.1", 3129, NULL, NULL},
> +        {"127.0.0.1", "http", "127.0.0.1", 3128, NULL, NULL},
> +        {"http://user:password@host:80";, "http", "host", 80, "user", "password"},
> +    };
> +
> +    guint i;
> +
> +    SpiceURI *uri = spice_uri_new();
> +    g_assert_nonnull(uri);
> +
> +    for (i = 0; i < G_N_ELEMENTS(invalid_test_cases); i++) {
> +        g_assert_false(spice_uri_parse(uri, invalid_test_cases[i].uri, NULL));
> +    }
> +
> +    for (i = 0; i < G_N_ELEMENTS(valid_test_cases); i++) {
> +        g_assert_true(spice_uri_parse(uri, valid_test_cases[i].uri, NULL));
> +        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_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);

For the testpath I would go with "spice-uri" instead of underscore.

You could also split this in two different tests, the ones that should
work and the ones that should not.

IMHO you don't need to send this again, feel free to take/ignore the
suggestions above.

Acked-by: Victor Toso <victortoso@xxxxxxxxxx>

> +
> +    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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]