summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Ulrich Niedermann <hun@n-dimensional.de>2008-06-27 00:01:05 +0200
committerHans Ulrich Niedermann <hun@n-dimensional.de>2008-07-15 12:28:53 +0200
commit4a9d8a17e04adfe050f3c66a802c0e73937f6a5d (patch)
tree2082ebb52d01c3a06de7f6e01e5d9664d9114d75
parent49cb96c606911241069c2afc4d36b5e00f2e86c8 (diff)
downloadnbb-4a9d8a17e04adfe050f3c66a802c0e73937f6a5d.tar.gz
nbb-4a9d8a17e04adfe050f3c66a802c0e73937f6a5d.tar.xz
nbb-4a9d8a17e04adfe050f3c66a802c0e73937f6a5d.zip
Add test suite for scons BS
-rw-r--r--test/Makefile.am1
-rw-r--r--test/local.at36
-rw-r--r--test/nbb-scons.at52
3 files changed, 89 insertions, 0 deletions
diff --git a/test/Makefile.am b/test/Makefile.am
index 41f3def..6c7416b 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -8,6 +8,7 @@ TESTCASES += autotest.at
TESTCASES += nbb-basic.at
TESTCASES += nbb-detect.at
TESTCASES += nbb-config.at
+TESTCASES += nbb-scons.at
TESTCASES += nbb-automake.at
# Add more testcases here
diff --git a/test/local.at b/test/local.at
index 0b2a309..42136f3 100644
--- a/test/local.at
+++ b/test/local.at
@@ -3,6 +3,42 @@ AT_TESTED([autom4te autoconf autoheader autoupdate autoreconf])
# Local initialization of the test environment would happen here
+dnl AT_WRAP_GIT([stuff-to-do-with-git-repo])dnl
+m4_define([AT_WRAP_GIT], [dnl
+AT_CHECK([mkdir test.dir && cd test.dir])
+AT_CHECK([cd test.dir && git init], [0],
+[Initialized empty Git repository in .git/
+])dnl
+$1
+AT_CHECK([rm -rf test.dir])dnl
+])dnl
+
+
+dnl AT_WRAP_GIT_SCONS([stuff-to-do-with-tree])dnl
+m4_define([AT_WRAP_GIT_SCONS], [dnl
+AT_WRAP_GIT([dnl
+AT_DATA([test.dir/SConstruct], [dnl
+# Test
+env = Environment()
+env.Configure()
+prog = env.Program('foobar',
+ source=@<:@'foobar.c'@:>@)
+env.Install('/usr/bin', prog)
+env.Alias('install', '/usr/bin')
+])
+AT_DATA([test.dir/foobar.c], [dnl
+#include <stdio.h>
+int main(int argc, char *argv@<:@@:>@) {
+ printf("FOOBAR!\n");
+ return 0;
+}
+])dnl
+$1
+])dnl
+])dnl
+
+
+dnl AT_CREATE_GIT_AM()dnl
m4_define([AT_CREATE_GIT_AM], [dnl
AT_CHECK([mkdir test.git && cd test.git])
AT_CHECK([cd test.git && git init], [0],
diff --git a/test/nbb-scons.at b/test/nbb-scons.at
new file mode 100644
index 0000000..08e9a61
--- /dev/null
+++ b/test/nbb-scons.at
@@ -0,0 +1,52 @@
+dnl ===================================================================
+
+AT_COPYRIGHT([Copyright (C) 2008 Hans Ulrich Niedermann])dnl
+AT_TESTED([nbb])dnl
+AT_TESTED([scons])dnl
+
+dnl ===================================================================
+
+AT_SETUP([nbb scons: init])
+AT_KEYWORDS([nbb scons init])
+AT_WRAP_GIT_SCONS([dnl
+AT_CHECK([cd test.dir && nbb init])dnl
+])dnl
+AT_CLEANUP()dnl
+
+dnl ===================================================================
+
+AT_SETUP([nbb scons: configure])
+AT_KEYWORDS([nbb scons configure])
+AT_WRAP_GIT_SCONS([dnl
+AT_CHECK([cd test.dir && nbb configure])dnl
+])dnl
+AT_CLEANUP()dnl
+
+dnl ===================================================================
+
+AT_SETUP([nbb scons: build])
+AT_KEYWORDS([nbb scons build])
+AT_WRAP_GIT_SCONS([dnl
+AT_CHECK([echo "scons: Reading SConscript files ...
+scons: done reading SConscript files.
+scons: Building targets ...
+gcc -o foobar.o -c foobar.c
+gcc -o foobar foobar.o
+scons: done building targets.
+RUN: @<:@'scons'@:>@
+ in $PWD/test.dir" > expout
+cd test.dir && nbb build], [0], [expout])dnl
+])dnl
+AT_CLEANUP()dnl
+
+dnl ===================================================================
+
+dnl AT_SETUP([nbb scons: install])
+dnl AT_KEYWORDS([nbb scons install])
+dnl AT_WRAP_GIT_SCONS([dnl
+dnl AT_CHECK([echo "FIXME $PWD/test.dir" > expout
+dnl cd test.dir && nbb install], [0], [expout])
+dnl ])dnl
+dnl AT_CLEANUP()dnl
+
+dnl ===================================================================