From f897ecc9c1041b7ca126dd497dd94d61d4388ba9 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Tue, 29 Dec 2009 03:17:03 +0900 Subject: [PATCH] adding chroot-based install test --- tests/install/install-tests.pl | 57 +++++++++++++++++++++++++++++++ tests/install/run-install-test.sh | 12 +++++++ 2 files changed, 69 insertions(+) create mode 100755 tests/install/install-tests.pl create mode 100755 tests/install/run-install-test.sh diff --git a/tests/install/install-tests.pl b/tests/install/install-tests.pl new file mode 100755 index 00000000..63681324 --- /dev/null +++ b/tests/install/install-tests.pl @@ -0,0 +1,57 @@ +#! /usr/bin/env perl + +use strict; +use warnings; + +my $ROOT="tests/install/root"; +my $USER=$ENV{USER}; + +my $ignore = qr!/lib\d*/modules|/X11|alsa-lib|aspell|dosemu|emacs|erlang|/perl|python|ruby|lisp|sbcl|/ghc-|ocaml|evolution|office|gimp|gtk|mysql|postgres|wordnet|xulrunner!; + +sub linkdir ($$$) { + my ($FROM, $TO, $DEPTH) = @_; + mkdir $TO; + for my $f (`ls $FROM`) { + chomp $f; + if (-d "$FROM/$f") { + if (($DEPTH > 0) && ($FROM !~ $ignore)) { + linkdir("$FROM/$f", "$TO/$f", $DEPTH-1); + } + } else { + link "$FROM/$f", "$TO/$f"; + } + } +} + +mkdir "$ROOT"; +mkdir "$ROOT/bin"; +mkdir "$ROOT/sbin"; +mkdir "$ROOT/dev"; +mkdir "$ROOT/etc"; +mkdir "$ROOT/etc/alternatives"; +mkdir "$ROOT/lib"; +mkdir "$ROOT/lib64"; +mkdir "$ROOT/usr"; +mkdir "$ROOT/usr/bin"; +mkdir "$ROOT/usr/include"; +mkdir "$ROOT/usr/lib"; +mkdir "$ROOT/usr/lib/gcc"; + +linkdir "/bin", "$ROOT/bin", 1; +linkdir "/sbin", "$ROOT/sbin", 1; +link "/etc/passwd", "$ROOT/etc/passwd"; +linkdir "/etc/alternatives", "$ROOT/etc/alternatives", 1; +linkdir "/lib", "$ROOT/lib", 3; +linkdir "/lib64", "$ROOT/lib64", 3; +linkdir "/usr/bin", "$ROOT/usr/bin", 3; +linkdir "/usr/include", "$ROOT/usr/include", 2; +linkdir "/usr/lib", "$ROOT/usr/lib", 3; +linkdir "/usr/lib/gcc", "$ROOT/usr/lib/gcc", 3; + +`make dist`; +my $VERSION=`cat VERSION`; +chomp $VERSION; +`cp chibi-scheme-$VERSION.tgz $ROOT/`; +`sed -e 's/\@VERSION\@/$VERSION/g' $ROOT/bin/run-install-test.sh`; +`chmod 755 $ROOT/bin/run-install-test.sh`; +exec "sudo chroot $ROOT run-install-test.sh"; diff --git a/tests/install/run-install-test.sh b/tests/install/run-install-test.sh new file mode 100755 index 00000000..c558e7cd --- /dev/null +++ b/tests/install/run-install-test.sh @@ -0,0 +1,12 @@ +#! /bin/bash + +export PATH=/usr/local/bin:$PATH +export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH + +tar xzvf chibi-scheme-@VERSION@.tgz +cd chibi-scheme-@VERSION@ +make +make install +cp tests/r5rs-tests.scm .. +cd .. +chibi-scheme r5rs-tests.scm | tee r5rs-tests.out