From 093be6d640d01d7cd24a2d87f6901aa3b3cf4fc6 Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Wed, 17 Sep 2014 00:22:38 +0200 Subject: testsuite: configury & and add first test-case This required little bit of generalization so I moved the SED_CALL into configure.ac to have it available for tests/Makefile.am also. The first testsuite just checks that no un-expanded @pattern@ exists in generated files. --- configure.ac | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index a39f2f6..6abf154 100644 --- a/configure.ac +++ b/configure.ac @@ -10,6 +10,57 @@ AM_SILENT_RULES([yes]) AC_ARG_VAR([DISTSUFF], [Append string suffix to all binaries]) AC_SUBST([DISTSUFF]) +# Initialize the test suite. +AC_CONFIG_TESTDIR(tests) +AC_CONFIG_FILES([tests/Makefile]) +AM_MISSING_PROG([AUTOM4TE], [autom4te]) +AC_SUBST([TEST_GEN_FILES_LIST], [$\(top_srcdir\)/.generated_files]) + + +# Instatiating generated files by sed instead of config.status. +# This is encouraged by autoconf documentation itself because if we used +# config.status directly, e.g. libexecdir may result into +# '${exec_prefix}/libexec' -- but we need fully expanded strings. +m4_define([sed_subst_var_pattern], [ -e 's|@$1[[@]]|\$($1)|g' \\]) +SED_RULES="\\ +sed_subst_var_pattern(bindir) +sed_subst_var_pattern(DISTSUFF) +sed_subst_var_pattern(docdir) +sed_subst_var_pattern(libdir) +sed_subst_var_pattern(libexecdir) +sed_subst_var_pattern(PG_CTL_BIN) +sed_subst_var_pattern(top_srcdir) +sed_subst_var_pattern(pgcontribdocdir) +sed_subst_var_pattern(PGDATADIR) +sed_subst_var_pattern(pgdocdir) +sed_subst_var_pattern(PGENGINE) +sed_subst_var_pattern(PGVERSION) +sed_subst_var_pattern(PGMAJORVERSION) +sed_subst_var_pattern(PKGCONFIG_DIR) +sed_subst_var_pattern(pkgname) +sed_subst_var_pattern(POSTGRES_HOMEDIR) +sed_subst_var_pattern(PREVMAJORVERSION) +sed_subst_var_pattern(PREVPGENGINE) +sed_subst_var_pattern(README_DIST) +sed_subst_var_pattern(SU) +sed_subst_var_pattern(systemdunitsdir) +sed_subst_var_pattern(userunitsdir) +sed_subst_var_pattern(TEST_GEN_FILES_LIST) +sed_subst_var_pattern(VERSION) + -e 's|@__FILE__[[@]]|\$@|g'" + +SED_CALL="\$(SED) \$(SED_RULES)" +m4_pattern_allow(AM_V_GEN) +INSTANTIATE="\$(AM_V_GEN)\$(SED_CALL) \$< > \$@" +INSTANTIATE_SCRIPT="\$(INSTANTIATE) && chmod +x \$@" +c_s='$(top_srcdir)/config.status' + +AC_SUBST([SED_RULES]) +AC_SUBST([SED_CALL]) +AC_SUBST([INSTANTIATE]) +AC_SUBST([INSTANTIATE_SCRIPT]) +AC_SUBST([c_s]) + AC_PATH_PROG([SED], [sed]) test -z "$ac_cv_path_SED" && AC_MSG_ERROR([Sed is needed but not found.]) -- cgit