From: Peter Krempa Date: Thu, 16 Jan 2020 14:30:53 +0000 (+0100) Subject: tests: hash: Test case for adding duplicate hash entry X-Git-Tag: v6.1.0-rc1~444 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7134f26b73162536b8bea2af860b32bad6a7f965;p=thirdparty%2Flibvirt.git tests: hash: Test case for adding duplicate hash entry Test that adding a duplicate entry is rejected properly. This also allows to see the error message of the duplicate key addition in verbose mode. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- diff --git a/tests/virhashtest.c b/tests/virhashtest.c index 66fa3a428e..4d05cbb0f8 100644 --- a/tests/virhashtest.c +++ b/tests/virhashtest.c @@ -510,6 +510,28 @@ testHashEqual(const void *data G_GNUC_UNUSED) } +static int +testHashDuplicate(const void *data G_GNUC_UNUSED) +{ + g_autoptr(virHashTable) hash = NULL; + + if (!(hash = virHashCreate(0, NULL))) + return -1; + + if (virHashAddEntry(hash, "a", NULL) < 0) { + VIR_TEST_VERBOSE("\nfailed to add key 'a' to hash"); + return -1; + } + + if (virHashAddEntry(hash, "a", NULL) >= 0) { + VIR_TEST_VERBOSE("\nadding of key 'a' should have failed"); + return -1; + } + + return 0; +} + + static int mymain(void) { @@ -546,6 +568,7 @@ mymain(void) DO_TEST("Search", Search); DO_TEST("GetItems", GetItems); DO_TEST("Equal", Equal); + DO_TEST("Duplicate entry", Duplicate); return (ret == 0) ? EXIT_SUCCESS : EXIT_FAILURE; }