[pacman-dev] [PATCH] Have configure set pactest options that it knows.
Allan McRae
allan at archlinux.org
Fri Dec 27 07:27:57 EST 2013
On 24/12/13 23:11, Jeremy Heiner wrote:
> This patch is not ready for accepting into the repository.
>
> It does not work for VPATH builds (because the paths to all the .py
> tests are seen as relative to $(builddir)). Dave is working on a fix
> for this VPATH issue, so a real version of this patch must wait to
> incorporate his commit. This patch works fine for in-$(srcdir) builds.
>
> The purpose of posting it is to follow up Saturday's conversation.
> I think it implements all of Allan's suggestions (if I understood
> correctly). The real commit message would be something like:
>
> SCRIPTLET_SHELL and LDCONFIG can be set via args to configure, and up
> 'till now those options were passed to pactest by Makefile.am as
> command-line args. That works fine for 'make check', but required
> repeated specification when running pactest manually. This patch makes
> pactest a configured file so it has direct access to those options and
> they no longer need to be specified (by Makefile.am nor by hand).
I would really like SCRIPTLET_SHELL to still be at test run time. My
system pacman may have a different shell that the one built in the
source tree. Keep it defaulting to the configured value, but changeable.
Removing the flag to set LDCONFIG is fine for me. But I like other
opinions on this to make sure I'm not missing something.
> Also the default for the pactest '-p' arg is changed to be the pacman
> that the make builds. The '-p' arg is still available, but it should
> now be very rare to have to use it when calling pactest manually.
> ---
> Makefile.am | 4 ----
> configure.ac | 1 +
> test/pacman/.gitignore | 1 +
> test/pacman/{pactest.py => pactest.py.in} | 21 ++++++++++++---------
> 4 files changed, 14 insertions(+), 13 deletions(-)
> rename test/pacman/{pactest.py => pactest.py.in} (88%)
> mode change 100755 => 100644
>
> diff --git a/Makefile.am b/Makefile.am
> index 4d5adae..9689992 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -41,10 +41,6 @@ LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \
> PY_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \
> $(top_srcdir)/build-aux/tap-driver.sh
> PY_LOG_COMPILER = $(top_srcdir)/test/pacman/pactest.py
> -AM_PY_LOG_FLAGS = \
> - --scriptlet-shell $(SCRIPTLET_SHELL) \
> - --ldconfig $(LDCONFIG) \
> - -p $(top_builddir)/src/pacman/pacman
>
> # create the pacman DB and cache directories upon install
> install-data-local:
> diff --git a/configure.ac b/configure.ac
> index cfcc8d1..292260a 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -507,6 +507,7 @@ test/util/Makefile
> contrib/Makefile
> Makefile
> ])
> +AC_CONFIG_FILES([test/pacman/pactest.py],[chmod +x test/pacman/pactest.py])
> AC_OUTPUT
>
> echo "
> diff --git a/test/pacman/.gitignore b/test/pacman/.gitignore
> index 0d20b64..39fa72b 100644
> --- a/test/pacman/.gitignore
> +++ b/test/pacman/.gitignore
> @@ -1 +1,2 @@
> *.pyc
> +pactest.py
> diff --git a/test/pacman/pactest.py b/test/pacman/pactest.py.in
> old mode 100755
> new mode 100644
> similarity index 88%
> rename from test/pacman/pactest.py
> rename to test/pacman/pactest.py.in
> index e21cde7..0d9e1f7
> --- a/test/pacman/pactest.py
> +++ b/test/pacman/pactest.py.in
> @@ -1,5 +1,7 @@
> #! /usr/bin/python2
> #
> +# @configure_input@
> +#
> # pactest : run automated testing on the pacman binary
> #
> # Copyright (c) 2006 by Aurelien Foret <orelien at chez.com>
> @@ -25,6 +27,12 @@
> import sys
> import tempfile
>
> +BUILDDIR = os.path.dirname(os.path.realpath(__file__))
> +SRCDIR = os.path.realpath(os.path.join(BUILDDIR, "@srcdir@"))
> +if BUILDDIR != SRCDIR: sys.path.insert(0, SRCDIR)
> +TOP_BUILDDIR = os.path.realpath(os.path.join(BUILDDIR, "@top_builddir@"))
> +BUILT_EXE = os.path.realpath(os.path.join(TOP_BUILDDIR, "src/pacman/pacman"))
> +
> import pmenv
> import tap
> import util
> @@ -50,7 +58,7 @@ def create_parser():
> help = "set debug level for pacman")
> parser.add_option("-p", "--pacman", action = "callback",
> callback = resolve_binary_path, type = "string",
> - dest = "bin", default = "pacman",
> + dest = "bin", default = BUILT_EXE,
> help = "specify location of the pacman binary")
> parser.add_option("--keep-root", action = "store_true",
> dest = "keeproot", default = False,
> @@ -67,12 +75,6 @@ def create_parser():
> parser.add_option("--manual-confirm", action = "store_true",
> dest = "manualconfirm", default = False,
> help = "do not use --noconfirm for pacman calls")
> - parser.add_option("--scriptlet-shell", type = "string",
> - dest = "scriptletshell", default = "/bin/sh",
> - help = "specify path to shell used for install scriptlets")
> - parser.add_option("--ldconfig", type = "string",
> - dest = "ldconfig", default = "/sbin/ldconfig",
> - help = "specify path to ldconfig")
> return parser
>
>
> @@ -97,8 +99,9 @@ def create_parser():
> env.pacman["gdb"] = opts.gdb
> env.pacman["valgrind"] = opts.valgrind
> env.pacman["manual-confirm"] = opts.manualconfirm
> - env.pacman["scriptlet-shell"] = opts.scriptletshell
> - env.pacman["ldconfig"] = opts.ldconfig
> + # and add configured options
> + env.pacman["scriptlet-shell"] = "@SCRIPTLET_SHELL@"
> + env.pacman["ldconfig"] = "@LDCONFIG@"
>
> opts.testcases = []
> for path in args:
>
More information about the pacman-dev
mailing list