Rombobjörn

summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorBjörn Persson <Bjorn@Rombobjörn.se>2014-02-02 23:42:09 +0100
committerBjörn Persson <Bjorn@Rombobjörn.se>2014-02-02 23:42:09 +0100
commit17adf2f999c06f1f7d207cb9ce5e2518b7e89ca6 (patch)
treedd698a099ec0e7ea75233565c7e8c09378ff89c1 /testsuite
parent00f4b3a5e2ac1bbf44b127858adf5284eabd94e4 (diff)
parent16639abaf4bc45b92d6ac70e25d457412c1a11bb (diff)
Merged the branch "testsuite".
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/inputs/build_with_Gnatmake4
-rw-r--r--testsuite/inputs/clean4
-rw-r--r--testsuite/inputs/configure_and_build8
-rw-r--r--testsuite/inputs/configure_and_clean13
-rw-r--r--testsuite/inputs/default_build4
-rw-r--r--testsuite/inputs/directories_project5
-rw-r--r--testsuite/inputs/distclean3
-rw-r--r--testsuite/inputs/relocatable4
-rw-r--r--testsuite/library72
-rw-r--r--testsuite/locations/separate3
-rw-r--r--testsuite/locations/space3
-rwxr-xr-xtestsuite/run_tests132
-rw-r--r--testsuite/sources/empty/Makefile1
-rw-r--r--testsuite/sources/empty/generated_files0
-rw-r--r--testsuite/sources/library_1/Makefile25
-rw-r--r--testsuite/sources/library_1/build_testcase.gpr.gp34
-rw-r--r--testsuite/sources/library_1/generated_files8
-rw-r--r--testsuite/sources/library_1/subdir/Makefile15
-rw-r--r--testsuite/sources/library_1/subdir/helper/Makefile19
-rwxr-xr-xtestsuite/sources/library_1/subdir/helper/script3
-rw-r--r--testsuite/sources/library_1/testcase.adb24
-rw-r--r--testsuite/sources/library_1/testcase.ads18
-rw-r--r--testsuite/sources/library_1/testcase.gpr.gp27
-rw-r--r--testsuite/sources/program_1/Makefile16
-rw-r--r--testsuite/sources/program_1/build_testcase.gpr20
-rw-r--r--testsuite/sources/program_1/generated_files2
-rw-r--r--testsuite/sources/program_1/testcase.adb20
-rw-r--r--testsuite/test_directories.gpr9
28 files changed, 496 insertions, 0 deletions
diff --git a/testsuite/inputs/build_with_Gnatmake b/testsuite/inputs/build_with_Gnatmake
new file mode 100644
index 0000000..124f632
--- /dev/null
+++ b/testsuite/inputs/build_with_Gnatmake
@@ -0,0 +1,4 @@
+expect_configuration
+expect_generated_files
+common_setup
+GNAT_BUILDER=gnatmake make
diff --git a/testsuite/inputs/clean b/testsuite/inputs/clean
new file mode 100644
index 0000000..2b37fec
--- /dev/null
+++ b/testsuite/inputs/clean
@@ -0,0 +1,4 @@
+expect_configuration
+common_setup
+make
+make clean
diff --git a/testsuite/inputs/configure_and_build b/testsuite/inputs/configure_and_build
new file mode 100644
index 0000000..3b4a060
--- /dev/null
+++ b/testsuite/inputs/configure_and_build
@@ -0,0 +1,8 @@
+prefix=/usr
+libdir=/usr/lib64
+frobnicate=true
+expect_configuration always
+expect_generated_files
+common_setup
+make configure prefix="${prefix}" libdir="${libdir}" frobnicate=true
+make
diff --git a/testsuite/inputs/configure_and_clean b/testsuite/inputs/configure_and_clean
new file mode 100644
index 0000000..ba9b640
--- /dev/null
+++ b/testsuite/inputs/configure_and_clean
@@ -0,0 +1,13 @@
+expect_configuration always
+common_setup
+make configure bindir='${prefix}/special'
+make clean
+expected='bindir = ${prefix}/special'
+conf=$(make show_configuration --no-print-directory)
+if [ "${conf}" != "${expected}" ] ; then
+ echo "Expected configuration:" >&2
+ echo "${expected}" >&2
+ echo "Configuration found:" >&2
+ echo "${conf}" >&2
+ exit 1
+fi
diff --git a/testsuite/inputs/default_build b/testsuite/inputs/default_build
new file mode 100644
index 0000000..635b842
--- /dev/null
+++ b/testsuite/inputs/default_build
@@ -0,0 +1,4 @@
+expect_configuration
+expect_generated_files
+common_setup
+make
diff --git a/testsuite/inputs/directories_project b/testsuite/inputs/directories_project
new file mode 100644
index 0000000..e477a8d
--- /dev/null
+++ b/testsuite/inputs/directories_project
@@ -0,0 +1,5 @@
+prefix=/opt/comfignat_test
+expect_configuration
+expect_generated_files
+common_setup
+make dirgpr="${dirgpr}" gprdir="${gprdir}" libexecdir="${libexecdir}"
diff --git a/testsuite/inputs/distclean b/testsuite/inputs/distclean
new file mode 100644
index 0000000..6e5e472
--- /dev/null
+++ b/testsuite/inputs/distclean
@@ -0,0 +1,3 @@
+common_setup
+make
+make distclean
diff --git a/testsuite/inputs/relocatable b/testsuite/inputs/relocatable
new file mode 100644
index 0000000..a060390
--- /dev/null
+++ b/testsuite/inputs/relocatable
@@ -0,0 +1,4 @@
+expect_configuration
+expect_generated_files
+common_setup
+make relocatable_package=true
diff --git a/testsuite/library b/testsuite/library
new file mode 100644
index 0000000..4482215
--- /dev/null
+++ b/testsuite/library
@@ -0,0 +1,72 @@
+# 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.
+
+
+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.
+
+ # 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=${prefix:-/usr/local}
+ exec_prefix=${exec_prefix:-${prefix}}
+ datarootdir=${datarootdir:-${prefix}/share}
+ bindir=${bindir:-${exec_prefix}/bin}
+ libexecdir=${libexecdir:-${exec_prefix}/libexec}
+ includedir=${includedir:-${prefix}/include}
+ libdir=${libdir:-${exec_prefix}/lib}
+ alidir=${alidir:-${libdir}}
+ gprdir=${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}
+
+ 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
+}
diff --git a/testsuite/locations/separate b/testsuite/locations/separate
new file mode 100644
index 0000000..a2fc7f1
--- /dev/null
+++ b/testsuite/locations/separate
@@ -0,0 +1,3 @@
+srcdir=parent/source
+builddir=build
+relative_builddir=../../build
diff --git a/testsuite/locations/space b/testsuite/locations/space
new file mode 100644
index 0000000..8323fa2
--- /dev/null
+++ b/testsuite/locations/space
@@ -0,0 +1,3 @@
+srcdir="name with spaces"
+builddir="${srcdir}"
+relative_builddir=.
diff --git a/testsuite/run_tests b/testsuite/run_tests
new file mode 100755
index 0000000..06e9c4c
--- /dev/null
+++ b/testsuite/run_tests
@@ -0,0 +1,132 @@
+#!/bin/sh
+
+# Comfignat's testsuite
+# 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.
+
+
+# It is hoped that this program will work in any Posix-compliant shell.
+
+set -e
+
+# Get the command line parameters.
+outer_srcdir="$1"
+outer_builddir="$2"
+
+testsuitedir="${outer_srcdir}"/testsuite
+
+# Initialize counters.
+passed=0
+failed=0
+
+# The testcases should use their own build directories, not the one of the Make
+# process that invoked the testsuite.
+Comfignat_overriding_absolute_builddir=
+Comfignat_overriding_absolute_objdir=
+Comfignat_overriding_absolute_stagedir=
+
+# variables that the testcases need:
+export file_list # absolute pathname of list of expected files
+export srcdir # testcase's source directory relative to testrundir
+export builddir # testcase's build directory relative to testrundir
+export relative_builddir # testcase's build directory relative to srcdir
+export dirgpr="${testsuitedir}"/test_directories.gpr
+
+
+pass () {
+ # Report the current testcase as passed.
+ echo "${test_name}: PASSED"
+ passed=$((passed + 1))
+}
+
+
+fail () {
+ # Report the current testcase as failed.
+ # Parameters:
+ # 1: a message about what went wrong
+ # 2: the name of a file with details about the error
+ echo "${test_name}: FAILED"
+ echo "$1"
+ cat "$2"
+ echo
+ failed=$((failed + 1))
+}
+
+
+# Clean out any old test results.
+rm -Rf "${outer_builddir}"/testruns
+
+for source_directory in "${testsuitedir}"/sources/* ; do
+ for location_file in "${testsuitedir}"/locations/* ; do
+ for input_script in "${testsuitedir}"/inputs/* ; do
+
+ # Compose the name of the combined testcase.
+ test_name=$(basename "${source_directory}")+$(basename "${location_file}")+$(basename "${input_script}")
+ testrundir="${outer_builddir}"/testruns/"${test_name}"
+ file_list="${testrundir}"/files.expected
+ mkdir -p "${testrundir}"
+ cd "${testrundir}"
+
+ # Get the source and build directory names.
+ . "${location_file}"
+ mkdir -p "${srcdir}"
+ if [ "${relative_builddir}" != . ] ; then
+ echo "${builddir}" >>files.expected
+ fi
+
+ # Populate the source directory.
+ cp -RHp "${source_directory}"/* "${srcdir}"
+ cp -p "${outer_srcdir}"/comfignat.* "${srcdir}"
+ find "${srcdir}" >>files.expected
+
+ # Run the testcase in a child process.
+ # The child process first loads the function library and then runs the
+ # input script.
+ if sh -e -c ". ${testsuitedir}/library; . ${input_script}" >output 2>&1 ; then
+
+ # Check that the expected files and no others are present.
+ # Sort the list of expected files and remove duplicates.
+ LC_COLLATE=C sort -u -o files.expected files.expected
+ # List all files in the build directory except for the directory
+ # where intermediate files are suposed to be. List the files in the
+ # source directory separately if the directories are separate. Sort
+ # the combined list the same way as the list of expected files is
+ # sorted. Then compare the lists.
+ if ( find "${builddir}" | grep -v ^"${builddir}"/obj ; test "${relative_builddir}" != . && find "${srcdir}" ) | LC_COLLATE=C sort | diff files.expected - >files.diff ; then
+
+ # Check that the source files haven't been mangled.
+ cd "${source_directory}"
+ find . -type f ! -exec cmp -s "{}" "${testrundir}/${srcdir}/{}" \; -print >> "${testrundir}"/changed_sources
+ cd "${outer_srcdir}"
+ for file in comfignat.* ; do
+ if ! cmp -s ${file} "${testrundir}/${srcdir}/${file}" ; then
+ echo ${file} >> "${testrundir}"/changed_sources
+ fi
+ done
+ if [ -s "${testrundir}"/changed_sources ] ; then
+ fail "Changed soure files:" "${testrundir}"/changed_sources
+ else
+ pass
+ fi
+ else
+ fail "Difference from the list of expected files:" files.diff
+ fi
+ else
+ fail "Error code: $?" output
+ fi
+
+ done
+ done
+done
+
+echo
+echo "passed: ${passed}, failed: ${failed}"
+exit ${failed}
diff --git a/testsuite/sources/empty/Makefile b/testsuite/sources/empty/Makefile
new file mode 100644
index 0000000..7bfdf9f
--- /dev/null
+++ b/testsuite/sources/empty/Makefile
@@ -0,0 +1 @@
+include comfignat.mk
diff --git a/testsuite/sources/empty/generated_files b/testsuite/sources/empty/generated_files
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/testsuite/sources/empty/generated_files
diff --git a/testsuite/sources/library_1/Makefile b/testsuite/sources/library_1/Makefile
new file mode 100644
index 0000000..4047099
--- /dev/null
+++ b/testsuite/sources/library_1/Makefile
@@ -0,0 +1,25 @@
+# part of Comfignat's testsuite
+# Copyright 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.
+
+
+include comfignat.mk
+
+options = frobnicate
+frobnicate = false
+
+build_GPRs = build_testcase.gpr
+usage_GPRs = testcase.gpr
+
+submake:
+ @${MAKE} --directory=${srcdir}/subdir
+
+build: submake
diff --git a/testsuite/sources/library_1/build_testcase.gpr.gp b/testsuite/sources/library_1/build_testcase.gpr.gp
new file mode 100644
index 0000000..5861788
--- /dev/null
+++ b/testsuite/sources/library_1/build_testcase.gpr.gp
@@ -0,0 +1,34 @@
+-- part of Comfignat's testsuite
+-- Copyright 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.
+
+
+with "comfignat.gpr";
+
+library project Build_Testcase is
+
+ #if Frobnicate then
+ Frob_Flag := "-frob";
+ #else
+ Frob_Flag := "";
+ #end if;
+
+ for Library_Name use "testcase";
+ for Library_Kind use "dynamic";
+ for Library_Version use "libtestcase" & Frob_Flag & ".so.1";
+ for Library_Interface use ("Testcase");
+ for Source_Dirs use ($Srcdir);
+ for Object_Dir use Comfignat.Objdir;
+ for Library_Src_Dir use Comfignat.Stage_Includedir & "/testcase";
+ for Library_Dir use Comfignat.Stage_Libdir;
+ for Library_ALI_Dir use Comfignat.Stage_Alidir & "/testcase";
+
+end Build_Testcase;
diff --git a/testsuite/sources/library_1/generated_files b/testsuite/sources/library_1/generated_files
new file mode 100644
index 0000000..4ff4941
--- /dev/null
+++ b/testsuite/sources/library_1/generated_files
@@ -0,0 +1,8 @@
+build_testcase.gpr
+comfignat.gpr
+${stage_includedir}/testcase/testcase.ads
+${stage_libdir}/libtestcase${frobnicate:+-frob}.so.1
+${stage_libdir}/libtestcase.so
+${stage_alidir}/testcase/testcase.ali
+${stage_gprdir}/testcase.gpr
+${stage_libexecdir}/testcase/script
diff --git a/testsuite/sources/library_1/subdir/Makefile b/testsuite/sources/library_1/subdir/Makefile
new file mode 100644
index 0000000..9434d2d
--- /dev/null
+++ b/testsuite/sources/library_1/subdir/Makefile
@@ -0,0 +1,15 @@
+# part of Comfignat's testsuite
+# Copyright 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.
+
+
+submake:
+ @${MAKE} --directory=helper
diff --git a/testsuite/sources/library_1/subdir/helper/Makefile b/testsuite/sources/library_1/subdir/helper/Makefile
new file mode 100644
index 0000000..f9ec257
--- /dev/null
+++ b/testsuite/sources/library_1/subdir/helper/Makefile
@@ -0,0 +1,19 @@
+# part of Comfignat's testsuite
+# Copyright 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.
+
+
+include ../../comfignat.mk
+
+build: ${stage_libexecdir}/testcase/script
+
+${stage_libexecdir}/testcase/script: script | ${stage_libexecdir}/testcase/
+ cp -p $< $@
diff --git a/testsuite/sources/library_1/subdir/helper/script b/testsuite/sources/library_1/subdir/helper/script
new file mode 100755
index 0000000..f013b39
--- /dev/null
+++ b/testsuite/sources/library_1/subdir/helper/script
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+echo "Hi ho!"
diff --git a/testsuite/sources/library_1/testcase.adb b/testsuite/sources/library_1/testcase.adb
new file mode 100644
index 0000000..df96cc3
--- /dev/null
+++ b/testsuite/sources/library_1/testcase.adb
@@ -0,0 +1,24 @@
+-- part of Comfignat's testsuite
+-- Copyright 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.
+
+
+with Ada.Calendar; use Ada.Calendar;
+with Ada.Text_IO; use Ada.Text_IO;
+
+package body Testcase is
+
+ function Year return String is
+ begin
+ return Year(Clock)'Img;
+ end Year;
+
+end Testcase;
diff --git a/testsuite/sources/library_1/testcase.ads b/testsuite/sources/library_1/testcase.ads
new file mode 100644
index 0000000..d2646b8
--- /dev/null
+++ b/testsuite/sources/library_1/testcase.ads
@@ -0,0 +1,18 @@
+-- part of Comfignat's testsuite
+-- Copyright 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.
+
+
+package Testcase is
+
+ function Year return String;
+
+end Testcase;
diff --git a/testsuite/sources/library_1/testcase.gpr.gp b/testsuite/sources/library_1/testcase.gpr.gp
new file mode 100644
index 0000000..de4645c
--- /dev/null
+++ b/testsuite/sources/library_1/testcase.gpr.gp
@@ -0,0 +1,27 @@
+-- part of Comfignat's testsuite
+-- Copyright 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.
+
+
+#if Directories_GPR'Defined then
+with $Directories_GPR;
+#end if;
+
+library project Testcase is
+
+ for Library_Name use "testcase";
+ for Library_Kind use "dynamic";
+ for Source_Dirs use ($Includedir & "/testcase");
+ for Library_Dir use $Libdir;
+ for Library_ALI_Dir use $Alidir & "/testcase";
+ for Externally_Built use "true";
+
+end Testcase;
diff --git a/testsuite/sources/program_1/Makefile b/testsuite/sources/program_1/Makefile
new file mode 100644
index 0000000..c5f8e5c
--- /dev/null
+++ b/testsuite/sources/program_1/Makefile
@@ -0,0 +1,16 @@
+# part of Comfignat's testsuite
+# Copyright 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.
+
+
+include comfignat.mk
+
+build_GPRs = build_testcase.gpr
diff --git a/testsuite/sources/program_1/build_testcase.gpr b/testsuite/sources/program_1/build_testcase.gpr
new file mode 100644
index 0000000..912115b
--- /dev/null
+++ b/testsuite/sources/program_1/build_testcase.gpr
@@ -0,0 +1,20 @@
+-- part of Comfignat's testsuite
+-- Copyright 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.
+
+
+with "comfignat.gpr";
+
+standard project Build_Testcase is
+ for Main use ("testcase");
+ for Object_Dir use Comfignat.Objdir;
+ for Exec_Dir use Comfignat.Stage_Bindir;
+end Build_Testcase;
diff --git a/testsuite/sources/program_1/generated_files b/testsuite/sources/program_1/generated_files
new file mode 100644
index 0000000..cfccc4c
--- /dev/null
+++ b/testsuite/sources/program_1/generated_files
@@ -0,0 +1,2 @@
+comfignat.gpr
+${stage_bindir}/testcase
diff --git a/testsuite/sources/program_1/testcase.adb b/testsuite/sources/program_1/testcase.adb
new file mode 100644
index 0000000..4121845
--- /dev/null
+++ b/testsuite/sources/program_1/testcase.adb
@@ -0,0 +1,20 @@
+-- part of Comfignat's testsuite
+-- Copyright 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.
+
+
+with Ada.Calendar; use Ada.Calendar;
+with Ada.Text_IO; use Ada.Text_IO;
+
+procedure Testcase is
+begin
+ Put_Line(Year(Clock)'Img);
+end Testcase;
diff --git a/testsuite/test_directories.gpr b/testsuite/test_directories.gpr
new file mode 100644
index 0000000..e402a25
--- /dev/null
+++ b/testsuite/test_directories.gpr
@@ -0,0 +1,9 @@
+abstract project Test_Directories is
+ Hardware_Platform := "multivac";
+ Bindir := "/opt/comfignat_test/bin";
+ Libexecdir := "/opt/comfignat_test/libexec";
+ Includedir := "/opt/comfignat_test/include";
+ Libdir := "/opt/comfignat_test/lib";
+ Alidir := Libdir;
+ Archincludedir := Libdir & "/include";
+end Test_Directories;