From 88b7221eb737a3102ec61ea385990b7ea7ef2b30 Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Wed, 14 Nov 2018 15:55:02 +0100 Subject: [PATCH] tests,json: Add missing files and chunking test * 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 | 106 +++++++++++++++++++++++++++++++++ tests/json/final.test | 4 ++ tests/json/initial.test | 4 ++ tests/json/t-chunking.in.json | 5 ++ tests/json/t-chunking.out.json | 5 ++ tests/json/t-json.c | 2 +- 6 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 tests/json/Makefile.am create mode 100755 tests/json/final.test create mode 100755 tests/json/initial.test create mode 100644 tests/json/t-chunking.in.json create mode 100644 tests/json/t-chunking.out.json diff --git a/tests/json/Makefile.am b/tests/json/Makefile.am new file mode 100644 index 00000000..74c9c3e8 --- /dev/null +++ b/tests/json/Makefile.am @@ -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 index 00000000..5289396f --- /dev/null +++ b/tests/json/final.test @@ -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 index 00000000..93c8621a --- /dev/null +++ b/tests/json/initial.test @@ -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 index 00000000..3ff655b5 --- /dev/null +++ b/tests/json/t-chunking.in.json @@ -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 index 00000000..bdc2f0f2 --- /dev/null +++ b/tests/json/t-chunking.out.json @@ -0,0 +1,5 @@ +{ + "base64": true, + "more": true, + "response": "*" +} diff --git a/tests/json/t-json.c b/tests/json/t-json.c index 7a4d9065..98bd8622 100644 --- a/tests/json/t-json.c +++ b/tests/json/t-json.c @@ -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",