# function library for Comfignat's testcases # Copyright 2013 - 2014 B. Persson, Bjorn@Rombobeorn.se # # This material is provided as is, with absolutely no warranty expressed # or implied. Any use is at your own risk. # # Permission is hereby granted to use or copy this testsuite # for any purpose, provided the above notices are retained on all copies. # Permission to modify the code and to distribute modified code is granted, # provided the above notices are retained, and a notice that the code was # modified is included with the above copyright notice. # These directory variables mustn't be conveyed from Comfignat, because then # the testsuite would rely on the same thing that it's supposed to test. prefix=/usr/local exec_prefix=${prefix} datarootdir=${prefix}/share bindir=${exec_prefix}/bin libexecdir=${exec_prefix}/libexec includedir=${prefix}/include libdir=${exec_prefix}/lib alidir=${libdir} gprdir=${datarootdir}/gpr stagedir=stage stage_bindir=${stagedir}${bindir} stage_libexecdir=${stagedir}${libexecdir} stage_includedir=${stagedir}${includedir} stage_libdir=${stagedir}${libdir} stage_alidir=${stagedir}${alidir} stage_gprdir=${stagedir}${gprdir} expect_configuration () { # If "always" is passed, the testcase is always expected to leave a # configuration file. If this is called without "always", a configuration # file is expected only in a separate build directory. if [ "$1" = always -o "${relative_builddir}" != . ] ; then echo "${builddir}"/comfignat_configuration.mk >>"${file_list}" fi } expect_generated_files () { # The testcase is expected to generate files which are listed in the file # generated_files. The list is whitespace-separated and may contain shell # variable references. for file in $(cat "${srcdir}"/generated_files) ; do # Expand variables in the string to get the pathname. eval file="${file}" # Write the pathname and its parent directories to the file list. # Chop off pathname components until only "." remains, but also avoid # looping forever if the final residue turns out to be "/" or "//". while [ "${file}" != . -a "${file}" != / -a "${file}" != // ] ; do echo "${builddir}/${file}" >>"${file_list}" file=$(dirname "${file}") done done } common_setup () { # When the locations file specifies a separate build directory, initialize # the build directory and go there. When the source directory is also the # build directory, just go to that directory. cd "${srcdir}" if [ "${relative_builddir}" != . ] ; then echo "${builddir}"/Makefile >>"${file_list}" make configure builddir="${relative_builddir}" cd "${relative_builddir}" fi }