tests,json: Add missing files and chunking test
authorAndre Heinecke <aheinecke@intevation.de>
Wed, 14 Nov 2018 14:55:02 +0000 (15:55 +0100)
committerAndre Heinecke <aheinecke@intevation.de>
Wed, 14 Nov 2018 14:55:02 +0000 (15:55 +0100)
* tests/json/Makefile.am, tests/json/final.test,
tests/json/initial.test: New.
* tests/json/t-chunking.in.json, tests/json/t-chunking.out.json:
New test.
* tests/json/t-json.c: Register new test.

--
Oops..

tests/json/Makefile.am [new file with mode: 0644]
tests/json/final.test [new file with mode: 0755]
tests/json/initial.test [new file with mode: 0755]
tests/json/t-chunking.in.json [new file with mode: 0644]
tests/json/t-chunking.out.json [new file with mode: 0644]
tests/json/t-json.c

diff --git a/tests/json/Makefile.am b/tests/json/Makefile.am
new file mode 100644 (file)
index 0000000..74c9c3e
--- /dev/null
@@ -0,0 +1,106 @@
+# Copyright (C) 2018 Bundesamt für Sicherheit in der Informationstechnik
+#                    Software engineering by Intevation GmbH
+#
+# This file is part of GPGME.
+#
+# GPGME 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.
+#
+# GPGME 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 program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+## Process this file with automake to produce Makefile.in
+
+GPGME_JSON=$(abs_builddir)/../../src/gpgme-json
+GPG = gpg
+
+GNUPGHOME=$(abs_builddir)
+TESTS_ENVIRONMENT = GNUPGHOME=$(GNUPGHOME) LC_ALL=C GPG_AGENT_INFO= \
+                    top_srcdir=$(top_srcdir) gpgme_json=$(GPGME_JSON)
+
+c_tests = t-json
+
+TESTS = initial.test $(c_tests) final.test
+
+CLEANFILES = secring.gpg pubring.gpg pubring.kbx trustdb.gpg dirmngr.conf \
+       gpg-agent.conf pubring.kbx~ S.gpg-agent gpg.conf pubring.gpg~ \
+       random_seed S.gpg-agent .gpg-v21-migrated pubring-stamp \
+       gpg-sample.stamp tofu.db *.conf.gpgconf.bak
+
+private_keys = \
+        $(top_srcdir)/tests/gpg/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD \
+        $(top_srcdir)/tests/gpg/76F7E2B35832976B50A27A282D9B87E44577EB66 \
+        $(top_srcdir)/tests/gpg/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD \
+        $(top_srcdir)/tests/gpg/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F \
+        $(top_srcdir)/tests/gpg/7A030357C0F253A5BBCD282FFC4E521B37558F5C
+
+
+EXTRA_DIST = t-chunking.in.json t-chunking.out.json \
+               t-config.in.json t-config-opt.in.json \
+               t-config-opt.out.json t-config.out.json \
+               t-createkey.in.json t-createkey.out.json \
+               t-decrypt.in.json t-decrypt.out.json \
+               t-decrypt-verify.in.json t-decrypt-verify.out.json \
+               t-delete.in.json t-delete.out.json \
+               t-encrypt.in.json t-encrypt.out.json \
+               t-encrypt-sign.in.json t-encrypt-sign.out.json \
+               t-export.in.json t-export.out.json \
+               t-export-secret-info.in.json t-export-secret-info.out.json \
+               t-import.in.json t-import.out.json \
+               t-keylist.in.json t-keylist.out.json \
+               t-keylist-secret.in.json t-keylist-secret.out.json \
+               t-sign.in.json t-sign.out.json \
+               t-verify.in.json t-verify.out.json \
+               t-version.in.json t-version.out.json
+
+BUILT_SOURCES = gpg.conf gpg-agent.conf pubring-stamp \
+           gpg-sample.stamp
+t_json_SOURCES = t-json.c ../../src/cJSON.o
+AM_LDFLAGS = -no-install
+LDADD = ../../src/libgpgme.la
+t_json_LDADD = ../../src/cJSON.o -lm ../../src/libgpgme.la @GPG_ERROR_LIBS@
+
+AM_CPPFLAGS = -I$(top_builddir)/src @GPG_ERROR_CFLAGS@
+
+noinst_PROGRAMS = $(c_tests)
+
+clean-local:
+       -$(TESTS_ENVIRONMENT) $(top_srcdir)/tests/start-stop-agent --stop
+       -rm -fR private-keys-v1.d
+
+gpg-sample.stamp: $(private_keys)
+       -$(TESTS_ENVIRONMENT) gpgconf --kill all
+       $(MKDIR_P) ./private-keys-v1.d
+       for k in $(private_keys); do \
+          cp $$k private-keys-v1.d/$$(basename $$k).key; \
+        done
+       echo x > ./gpg-sample.stamp
+
+pubring-stamp: $(top_srcdir)/tests/gpg/pubdemo.asc gpg-sample.stamp
+       $(TESTS_ENVIRONMENT) $(GPG) --batch --no-permission-warning \
+               --import $(top_srcdir)/tests/gpg/pubdemo.asc
+       -$(TESTS_ENVIRONMENT) $(GPG) --batch --no-permission-warning \
+               --import $(top_srcdir)/tests/gpg/secdemo.asc
+       echo x > ./pubring-stamp
+
+gpg.conf:
+# This is required for t-sig-notations.
+       echo no-force-v3-sigs > ./gpg.conf
+
+gpg-agent.conf:
+# This is required for gpg2, which does not support command fd for the
+# passphrase.  disable-scdaemon is required so that we don't try using
+# a key from a smartcard reader (error might be: Unusable secret key)
+       echo pinentry-program $(abs_srcdir)/../gpg/pinentry > ./gpg-agent.conf
+       echo disable-scdaemon >> ./gpg-agent.conf
+
+
+# end-of-file
diff --git a/tests/json/final.test b/tests/json/final.test
new file mode 100755 (executable)
index 0000000..5289396
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+${top_srcdir}/tests/start-stop-agent --stop
+exit 0
diff --git a/tests/json/initial.test b/tests/json/initial.test
new file mode 100755 (executable)
index 0000000..93c8621
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+${top_srcdir}/tests/start-stop-agent --start
+exit 0
diff --git a/tests/json/t-chunking.in.json b/tests/json/t-chunking.in.json
new file mode 100644 (file)
index 0000000..3ff655b
--- /dev/null
@@ -0,0 +1,5 @@
+{
+    "op": "keylist",
+    "keys": ["alpha@example.net", "bravo@example.net"],
+    "chunksize": 64
+}
diff --git a/tests/json/t-chunking.out.json b/tests/json/t-chunking.out.json
new file mode 100644 (file)
index 0000000..bdc2f0f
--- /dev/null
@@ -0,0 +1,5 @@
+{
+    "base64": true,
+    "more": true,
+    "response": "*"
+}
index 7a4d906..98bd862 100644 (file)
@@ -40,7 +40,7 @@ static const char*tests[] = { "t-config", "t-version",
     "t-keylist", "t-keylist-secret", "t-decrypt", "t-config-opt",
     "t-encrypt", "t-encrypt-sign", "t-sign", "t-verify",
     "t-decrypt-verify", "t-export", "t-createkey",
-    "t-export-secret-info",
+    "t-export-secret-info", "t-chunking",
     /* For these two the order is important
      * as t-import imports the deleted key from t-delete */
     "t-delete", "t-import",