[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#7995: [PATCH 2/4] Testsuite coverage for Guile support.
From: |
Ralf Wildenhues |
Subject: |
bug#7995: [PATCH 2/4] Testsuite coverage for Guile support. |
Date: |
Sun, 20 Feb 2011 08:31:59 +0100 |
User-agent: |
Mutt/1.5.20 (2010-08-04) |
* tests/guile1.test, tests/guile2.test, tests/guile3.test,
tests/guile4.test: New tests.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
---
ChangeLog | 5 ++
tests/Makefile.am | 8 +++
tests/Makefile.in | 7 ++-
tests/guile1.test | 54 ++++++++++++++++++++++
tests/guile2.test | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/guile3.test | 91 ++++++++++++++++++++++++++++++++++++
tests/guile4.test | 48 +++++++++++++++++++
7 files changed, 344 insertions(+), 1 deletions(-)
create mode 100755 tests/guile1.test
create mode 100755 tests/guile2.test
create mode 100755 tests/guile3.test
create mode 100755 tests/guile4.test
diff --git a/ChangeLog b/ChangeLog
index c338e8a..5483ce4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2011-02-20 Ralf Wildenhues <address@hidden>
+ Testsuite coverage for Guile support.
+ * tests/guile1.test, tests/guile2.test, tests/guile3.test,
+ tests/guile4.test: New tests.
+ * tests/Makefile.am (TESTS, XFAIL_TESTS): Update.
+
Documentation for Guile support.
* doc/automake.texi (Guile): New chapter.
(Top, Other GNU Tools): Update menus.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index e3eb9e9..b993678 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -24,6 +24,10 @@ all.test \
auxdir2.test \
cond17.test \
gcj6.test \
+guile1.test \
+guile2.test \
+guile3.test \
+guile4.test \
override-conditional-2.test \
txinfo5.test
@@ -460,6 +464,10 @@ gnuwarn2.test \
gnits.test \
gnits2.test \
gnits3.test \
+guile1.test \
+guile2.test \
+guile3.test \
+guile4.test \
header.test \
help.test \
help2.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 1f367cd..e449137 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -284,7 +284,8 @@ top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = $(parallel_tests) $(instspc_tests)
EXTRA_DIST = ChangeLog-old gen-parallel-tests instspc-tests.sh \
$(TESTS)
-XFAIL_TESTS = all.test auxdir2.test cond17.test gcj6.test \
+XFAIL_TESTS = all.test auxdir2.test cond17.test gcj6.test guile1.test \
+ guile2.test guile3.test guile4.test \
override-conditional-2.test txinfo5.test \
$(instspc_xfail_tests)
parallel_tests = backcompat5-p.test check-exported-srcdir-p.test \
@@ -722,6 +723,10 @@ gnuwarn2.test \
gnits.test \
gnits2.test \
gnits3.test \
+guile1.test \
+guile2.test \
+guile3.test \
+guile4.test \
header.test \
help.test \
help2.test \
diff --git a/tests/guile1.test b/tests/guile1.test
new file mode 100755
index 0000000..94efa82
--- /dev/null
+++ b/tests/guile1.test
@@ -0,0 +1,54 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program 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, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Basic Guile support: guile_GUILE.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >>configure.in <<\END
+AM_PATH_GUILE
+AC_OUTPUT
+END
+
+cat > Makefile.am <<\END
+guile_GUILE = foo.scm bar.scm baz.scm
+END
+
+: >foo.scm
+: >bar.scm
+: >baz.scm
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+grep '^GUILECOMPILE' Makefile.in
+grep '^GUILEFLAGS' Makefile.in
+
+inst=`pwd`/inst
+./configure --prefix="$inst"
+
+env GUILE_TOOLS=false $MAKE -e && Exit 1
+env AM_GUILEFLAGS=--nosuchflag $MAKE -e && Exit 1
+env GUILEFLAGS=--nosuchflag $MAKE -e && Exit 1
+
+$MAKE
+$MAKE install
+$MAKE distcheck
+
+:
diff --git a/tests/guile2.test b/tests/guile2.test
new file mode 100755
index 0000000..d355518
--- /dev/null
+++ b/tests/guile2.test
@@ -0,0 +1,132 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program 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, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Ensure that we compile and install Guile sources properly.
+
+required='guile-tools'
+. ./defs || Exit 1
+
+set -e
+
+cat >>configure.in <<\END
+AM_PATH_GUILE([1.8],,
+ [AC_MSG_ERROR([Guile installation missing or too old for compilation],
+ [77])])
+AC_OUTPUT
+END
+
+cat > Makefile.am <<\END
+guile_GUILE = compiled-and-installed.scm
+nodist_guile_GUILE = not-distributed.scm
+guile_DATA = not-compiled.scm
+noinst_GUILE = compiled-but-not-installed.scm
+dist_noinst_DATA = just-distributed-blob.scm
+nobase_guile_GUILE = installed-in-subdir/foo.scm
+pkgguile_GUILE = installed-in-package-dir.scm
+
+not-distributed.scm:
+ : >$@
+
+CLEANFILES = not-distributed.scm
+
+check-dist:
+ test -f $(distdir)/compiled-and-installed.scm
+ test ! -f $(distdir)/not-distributed.scm
+ test -f $(distdir)/not-compiled.scm
+ test -f $(distdir)/compiled-but-not-installed.scm
+ test -f $(distdir)/just-distributed-blob.scm
+ test -f $(distdir)/installed-in-subdir/foo.scm
+ test -f $(distdir)/installed-in-package-dir.scm
+ test -z "`find $(distdir) -name \*.go`"
+END
+
+mkdir installed-in-subdir
+
+: >compiled-and-installed.scm
+: >not-compiled.scm
+: >compiled-but-not-installed.scm
+: >just-distributed-blob.scm
+: >installed-in-subdir/foo.scm
+: >installed-in-package-dir.scm
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+inst=`pwd`/inst
+./configure --prefix="$inst"
+$MAKE
+test -f compiled-and-installed.go
+test -f not-distributed.go
+test ! -f not-compiled.go
+test -f compiled-but-not-installed.go
+test ! -f just-distributed-blob.go
+test -f installed-in-subdir/foo.go
+test -f installed-in-package-dir.go
+
+guile_version=
+if : new install layout; then
+ guiledir=$inst/share/guile/site/$guile_version
+ guileexecdir=$inst/lib/guile/$guile_version/ccache
+else
+ guiledir=$inst/share/guile/site
+ guileexecdir=$inst/lib
+fi
+
+$MAKE install-data
+test -f "$guiledir/compiled-and-installed.scm"
+test -f "$guiledir/not-distributed.scm"
+test ! -f "$guiledir/not-compiled.scm"
+test ! -f "$guiledir/compiled-but-not-installed.scm"
+test ! -f "$guiledir/just-distributed-blob.scm"
+test -f "$guiledir/installed-in-subdir/foo.scm"
+test -f "$guiledir/$me/installed-in-package-dir.scm"
+
+installed_go=`find "$inst" -name \*.go`
+test -z "$installed_go"
+$MAKE uninstall
+
+$MAKE install-exec
+if : can compile; then
+ test -f "$guileexecdir/compiled-and-installed.go"
+ test -f "$guileexecdir/not-distributed.go"
+ test ! -f "$guileexecdir/not-compiled.go"
+ test ! -f "$guileexecdir/compiled-but-not-installed.go"
+ test ! -f "$guileexecdir/just-distributed-blob.go"
+ test -f "$guileexecdir/installed-in-subdir/foo.go"
+ test -f "$guileexecdir/$me/installed-in-package-dir.go"
+ installed_scm=`find "$inst" -name \*.scm`
+ test -z "$installed_scm"
+else
+ installed_go=`find "$inst" -name \*.go`
+ test -z "$installed_go"
+fi
+
+$MAKE clean
+
+test ! -f compiled-and-installed.go
+test ! -f not-distributed.go
+test ! -f not-compiled.go
+test ! -f compiled-but-not-installed.go
+test ! -f just-distributed-blob.go
+test ! -f installed-in-subdir/foo.go
+test ! -f installed-in-package-dir.go
+
+$MAKE check-dist
+
+$MAKE distcheck
+
+:
diff --git a/tests/guile3.test b/tests/guile3.test
new file mode 100755
index 0000000..4be3c82
--- /dev/null
+++ b/tests/guile3.test
@@ -0,0 +1,91 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program 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, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Check for Guile compiled extensions.
+
+required='guile-tools libtoolize'
+. ./defs || Exit 1
+
+set -e
+
+cat >>configure.in <<\END
+AC_PROG_CC
+AC_PROG_LIBTOOL
+AM_PATH_GUILE
+AC_PATH_PROG([GUILE], [guile], [exit 77])
+: "${GUILECPPFLAGS=`guile-config compile`}"
+: "${GUILECFLAGS=`guile-config compile`}"
+: "${GUILELIBS=`guile-config link`}"
+AC_SUBST([GUILECPPFLAGS])
+AC_SUBST([GUILECFLAGS])
+AC_SUBST([GUILELIBS])
+AC_OUTPUT
+END
+
+cat > Makefile.am <<\END
+guileext_LTLIBRARIES = foo.la
+foo_la_SOURCES = foo.c
+foo_la_LDFLAGS = -module -avoid-version
+foo_la_LIBADD = $(GUILELIBS)
+AM_CFLAGS = $(GUILECFLAGS)
+AM_CPPFLAGS = $(GUILECPPFLAGS)
+
+guile_GUILE = load-foo.scm
+
+# Try out the uninstalled module.
+check-local:
+ $(LIBTOOL) --mode=execute -dlopen foo.la $(GUILE) load-foo.scm
+# Try out the installed module.
+installcheck-local:
+ $(GUILE) load-foo.scm
+END
+
+cat > load-foo.scm <<\END
+(dynamic-call "init_the_answer" (dynamic-link "foo"))
+(answer)
+END
+
+cat >foo.c <<\END
+#include <libguile.h>
+
+SCM
+the_answer (void)
+{
+ return scm_int2num (42);
+}
+
+void
+init_the_answer (void)
+{
+ scm_c_define_gsubr ("answer", 0, 0, 0, the_answer);
+}
+END
+
+inst=`pwd`/inst
+
+libtoolize --force
+$ACLOCAL
+$AUTOMAKE --add-missing
+$AUTOCONF
+./configure --prefix="$inst"
+$MAKE
+$MAKE check
+$MAKE install
+$MAKE clean
+$MAKE installcheck
+$MAKE distcheck
+
+:
diff --git a/tests/guile4.test b/tests/guile4.test
new file mode 100755
index 0000000..47a0ad9
--- /dev/null
+++ b/tests/guile4.test
@@ -0,0 +1,48 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program 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, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Per-target flags should not cause compiled Guile sources to be renamed.
+
+required=guile-tools
+. ./defs || Exit 1
+
+set -e
+
+cat >>configure.in <<\END
+AM_PATH_GUILE
+AC_OUTPUT
+END
+
+cat > Makefile.am <<\END
+guile_GUILE = foo.scm
+foo_scm_GUILEFLAGS = ...
+END
+
+: >foo.scm
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+inst=`pwd`/inst
+./configure --prefix="$inst"
+$MAKE
+test -f foo.go
+test ! -f foo_go_foo.go
+
+$MAKE distcheck
+
+:
--
1.7.4.1.48.g5673d
- bug#7995: Guile support in Automake, Ralf Wildenhues, 2011/02/06
- bug#7995: Guile support in Automake, Ralf Wildenhues, 2011/02/20
- bug#7995: [PATCH 1/4] Documentation for Guile support., Ralf Wildenhues, 2011/02/20
- bug#7995: [PATCH 4/4] Implement Guile support., Ralf Wildenhues, 2011/02/20
- bug#7995: [PATCH 2/4] Testsuite coverage for Guile support.,
Ralf Wildenhues <=
- bug#7995: [PATCH 3/4] Guile macro AM_PATH_GUILE., Ralf Wildenhues, 2011/02/20
- bug#7995: Guile support in Automake, Andy Wingo, 2011/02/20
- bug#7995: Guile support in Automake, Ludovic Courtès, 2011/02/26