[PATCHv2 01/14] virjsontest: switch AddAndRemove tests to work with files

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

 



Instead of using JSON in C strings, put it in separate files
for easier manipulation.

Signed-off-by: Ján Tomko <jtomko@xxxxxxxxxx>
Reviewed-by: Andrea Bolognani <abologna@xxxxxxxxxx>
---
 tests/virjsondata/add-remove-failure-in.json  |  1 +
 tests/virjsondata/add-remove-success-in.json  |  1 +
 tests/virjsondata/add-remove-success-out.json |  1 +
 tests/virjsontest.c                           | 38 ++++++++++++-------
 4 files changed, 27 insertions(+), 14 deletions(-)
 create mode 100644 tests/virjsondata/add-remove-failure-in.json
 create mode 100644 tests/virjsondata/add-remove-success-in.json
 create mode 100644 tests/virjsondata/add-remove-success-out.json

diff --git a/tests/virjsondata/add-remove-failure-in.json b/tests/virjsondata/add-remove-failure-in.json
new file mode 100644
index 0000000000..dd264421e9
--- /dev/null
+++ b/tests/virjsondata/add-remove-failure-in.json
@@ -0,0 +1 @@
+[ 1 ]
diff --git a/tests/virjsondata/add-remove-success-in.json b/tests/virjsondata/add-remove-success-in.json
new file mode 100644
index 0000000000..b8edd30963
--- /dev/null
+++ b/tests/virjsondata/add-remove-success-in.json
@@ -0,0 +1 @@
+{"name": "sample", "value": true}
diff --git a/tests/virjsondata/add-remove-success-out.json b/tests/virjsondata/add-remove-success-out.json
new file mode 100644
index 0000000000..9f1e44637c
--- /dev/null
+++ b/tests/virjsondata/add-remove-success-out.json
@@ -0,0 +1 @@
+{"value":true,"newname":"foo"}
diff --git a/tests/virjsontest.c b/tests/virjsontest.c
index a4bd4fb07b..429eb58704 100644
--- a/tests/virjsontest.c
+++ b/tests/virjsontest.c
@@ -68,12 +68,24 @@ static int
 testJSONAddRemove(const void *data)
 {
     const struct testInfo *info = data;
-    virJSONValuePtr json;
+    virJSONValuePtr json = NULL;
     virJSONValuePtr name = NULL;
-    char *result = NULL;
+    char *infile = NULL;
+    char *indata = NULL;
+    char *outfile = NULL;
+    char *actual = NULL;
     int ret = -1;
 
-    json = virJSONValueFromString(info->doc);
+    if (virAsprintf(&infile, "%s/virjsondata/add-remove-%s-in.json",
+                    abs_srcdir, info->name) < 0 ||
+        virAsprintf(&outfile, "%s/virjsondata/add-remove-%s-out.json",
+                    abs_srcdir, info->name) < 0)
+        goto cleanup;
+
+    if (virTestLoadFile(infile, &indata) < 0)
+        goto cleanup;
+
+    json = virJSONValueFromString(indata);
     if (!json) {
         VIR_TEST_VERBOSE("Fail to parse %s\n", info->name);
         ret = -1;
@@ -113,20 +125,22 @@ testJSONAddRemove(const void *data)
         VIR_TEST_VERBOSE("%s", "unexpected failure adding new key\n");
         goto cleanup;
     }
-    if (!(result = virJSONValueToString(json, false))) {
+    if (!(actual = virJSONValueToString(json, false))) {
         VIR_TEST_VERBOSE("%s", "failed to stringize result\n");
         goto cleanup;
     }
-    if (STRNEQ(info->expect, result)) {
-        virTestDifference(stderr, info->expect, result);
+    if (virTestCompareToFile(actual, outfile) < 0)
         goto cleanup;
-    }
+
     ret = 0;
 
  cleanup:
     virJSONValueFree(json);
     virJSONValueFree(name);
-    VIR_FREE(result);
+    VIR_FREE(infile);
+    VIR_FREE(indata);
+    VIR_FREE(outfile);
+    VIR_FREE(actual);
     return ret;
 }
 
@@ -543,12 +557,8 @@ mymain(void)
                   "\"query-uuid\"},{\"name\":\"query-migrate\"},{\"name\":"
                   "\"query-balloon\"}],\"id\":\"libvirt-2\"}", NULL);
 
-    DO_TEST_FULL("add and remove", AddRemove,
-                 "{\"name\": \"sample\", \"value\": true}",
-                 "{\"value\":true,\"newname\":\"foo\"}",
-                 true);
-    DO_TEST_FULL("add and remove", AddRemove,
-                 "[ 1 ]", NULL, false);
+    DO_TEST_FULL("success", AddRemove, NULL, NULL, true);
+    DO_TEST_FULL("failure", AddRemove, NULL, NULL, false);
 
     DO_TEST_FULL("copy and free", Copy,
                  "{\"return\": [{\"name\": \"quit\"}, {\"name\": \"eject\"},"
-- 
2.19.2

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux