]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: hash: Test case for adding duplicate hash entry
authorPeter Krempa <pkrempa@redhat.com>
Thu, 16 Jan 2020 14:30:53 +0000 (15:30 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 24 Jan 2020 12:45:38 +0000 (13:45 +0100)
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 <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
tests/virhashtest.c

index 66fa3a428e6574c074dc65b805afcec133a586ca..4d05cbb0f8145a59f6d651d109a8f9694cbcdca1 100644 (file)
@@ -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;
 }