summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Heinecke <aheinecke@intevation.de>2018-11-14 13:05:36 +0100
committerAndre Heinecke <aheinecke@intevation.de>2018-11-14 13:05:36 +0100
commit3e5684d99b881787f9739e53fd8e8c22eadc2146 (patch)
treeb770a05215d0099b7b3f3dd0adba90cfebc58064
parent0c31837766e016227b3c8dfd44c476949cd4741e (diff)
downloadgpgme-3e5684d99b881787f9739e53fd8e8c22eadc2146.tar.gz
tests,json: Fix and improve t-json
* tests/json/t-json.c (run_test): Terminate argv array correctly. (run_test): Note and handle empty response.
-rw-r--r--tests/json/t-json.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/tests/json/t-json.c b/tests/json/t-json.c
index ec294f72..53a57438 100644
--- a/tests/json/t-json.c
+++ b/tests/json/t-json.c
@@ -243,9 +243,9 @@ run_test (const char *test, const char *gpgme_json)
gpgme_data_t json_stderr = NULL;
char *test_in;
char *test_out;
- const char *argv[2];
+ const char *argv[3];
char *response;
- char *expected;
+ char *expected = NULL;
size_t response_size;
int rc = 0;
const char *top_srcdir = getenv ("top_srcdir");
@@ -256,9 +256,9 @@ run_test (const char *test, const char *gpgme_json)
exit(1);
}
- gpgrt_asprintf (&test_in, "%s//tests//json//%s.in",
+ gpgrt_asprintf (&test_in, "%s/tests/json/%s.in",
top_srcdir, test);
- gpgrt_asprintf (&test_out, "%s//tests//json//%s.out",
+ gpgrt_asprintf (&test_out, "%s/tests/json/%s.out",
top_srcdir, test);
printf ("Running %s...\n", test);
@@ -273,6 +273,7 @@ run_test (const char *test, const char *gpgme_json)
argv[0] = gpgme_json;
argv[1] = "-s";
+ argv[2] = NULL;
fail_if_err (gpgme_op_spawn (ctx, gpgme_json, argv,
json_stdin,
@@ -281,13 +282,18 @@ run_test (const char *test, const char *gpgme_json)
0));
response = gpgme_data_release_and_get_mem (json_stdout,
&response_size);
- test (response_size);
-
- expected = get_file (test_out);
+ if (response_size)
+ {
+ expected = get_file (test_out);
- test (expected);
+ test (expected);
- rc = check_response (response, expected);
+ rc = check_response (response, expected);
+ }
+ else
+ {
+ rc = 1;
+ }
if (!rc)
{
@@ -300,7 +306,8 @@ run_test (const char *test, const char *gpgme_json)
size_t size;
buf = gpgme_data_release_and_get_mem (json_stderr, &size);
- printf (" failed\n");
+ printf (" failed%s\n", response_size ? "" :
+ ", no response from gpgme-json");
if (size)
{
printf ("gpgme-json stderr:\n%.*s\n", (int)size, buf);