gpgme/lang/python/tests/Makefile.am
Justus Winter 24b4162d90 python: Build for both Python2 and Python3.
* NEWS: Update.
* configure.ac: Check for multiple Python versions.
* lang/python/Makefile.am: Build and install for both Python versions.
* lang/python/tests/Makefile.am: Test both versions.
* lang/python/tests/run-tests.py: New test runner.

Signed-off-by: Justus Winter <justus@g10code.com>
2016-09-14 12:18:15 +02:00

117 lines
3.7 KiB
Makefile

# Makefile.am for the tests of the Python bindings.
# Copyright (C) 2016 g10 Code 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 General Public License as published by
# the Free Software Foundation; either version 2 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, see <http://www.gnu.org/licenses/>.
GPG = gpg
GPG_AGENT = gpg-agent
export GNUPGHOME := $(abs_builddir)
export GPG_AGENT_INFO :=
test_srcdir = $(top_srcdir)/tests/gpg
TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) \
LC_ALL=C GPG_AGENT_INFO= \
top_srcdir=$(top_srcdir) \
srcdir=$(srcdir) \
LD_LIBRARY_PATH="../../../src/.libs:$(LD_LIBRARY_PATH)"
py_tests = t-wrapper.py \
t-callbacks.py \
t-data.py \
t-encrypt.py \
t-encrypt-sym.py \
t-encrypt-sign.py \
t-sign.py \
t-signers.py \
t-decrypt.py \
t-verify.py \
t-decrypt-verify.py \
t-sig-notation.py \
t-export.py \
t-import.py \
t-trustlist.py \
t-edit.py \
t-keylist.py \
t-wait.py \
t-encrypt-large.py \
t-file-name.py \
t-idiomatic.py \
t-protocol-assuan.py
XTESTS = initial.py $(py_tests) final.py
EXTRA_DIST = support.py $(XTESTS) encrypt-only.asc sign-only.asc \
run-tests.py
# XXX: Currently, one cannot override automake's 'check' target. As a
# workaround, we avoid defining 'TESTS', thus automake will not emit
# the 'check' target. For extra robustness, we merely define a
# dependency on 'xcheck', so this hack should also work even if
# automake would emit the 'check' target, as adding dependencies to
# targets is okay.
check: xcheck
.PHONY: xcheck
xcheck:
$(TESTS_ENVIRONMENT) $(PYTHON) $(srcdir)/run-tests.py \
--interpreters="$(PYTHONS)" --srcdir=$(srcdir) $(TESTFLAGS) \
$(XTESTS)
CLEANFILES = secring.gpg pubring.gpg pubring.kbx trustdb.gpg dirmngr.conf \
gpg-agent.conf pubring.kbx~ gpg.conf pubring.gpg~ \
random_seed .gpg-v21-migrated pubring-stamp
private_keys = \
$(test_srcdir)/13CD0F3BDF24BE53FE192D62F18737256FF6E4FD \
$(test_srcdir)/76F7E2B35832976B50A27A282D9B87E44577EB66 \
$(test_srcdir)/A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD \
$(test_srcdir)/13CBE3758AFE42B5E5E2AE4CED27AFA455E3F87F \
$(test_srcdir)/7A030357C0F253A5BBCD282FFC4E521B37558F5C
clean-local:
-$(top_srcdir)/tests/start-stop-agent --stop
-rm -fR -- private-keys-v1.d openpgp-revocs.d S.gpg-agent sshcontrol
check-local: ./gpg.conf ./gpg-agent.conf ./pubring-stamp \
./private-keys-v1.d/gpg-sample.stamp
# To guarantee that check-local is run before any tests we
# add this dependency:
initial.py: check-local
./private-keys-v1.d/gpg-sample.stamp: $(private_keys)
test -d ./private-keys-v1.d || mkdir ./private-keys-v1.d
for k in $(private_keys); do \
cp $$k private-keys-v1.d/`basename $$k`.key; \
done
echo x > ./private-keys-v1.d/gpg-sample.stamp
./pubring-stamp: $(test_srcdir)/pubdemo.asc
$(GPG) --no-permission-warning \
--import $(test_srcdir)/pubdemo.asc
-$(GPG) --no-permission-warning \
--import $(test_srcdir)/secdemo.asc
touch ./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.
echo pinentry-program $(abs_top_srcdir)/tests/gpg/pinentry >$@
echo allow-loopback-pinentry >>$@