[Koha-patches] [PATCH] test suite - various changes
Andrew Moore
andrew.moore at liblime.com
Fri Apr 18 18:01:13 CEST 2008
From: Galen Charlton <galen.charlton at liblime.com>
* All configuration and run-time files created during
a test suite run now live under t/run
* made sure scripts copied to t/run/bin are executable
* added t/run and t/test-config.txt to .gitignore
Signed-off-by: Andrew Moore <andrew.moore at liblime.com>
---
.gitignore | 4 +++-
Makefile.PL | 39 ++++++++++++++++++++++++++++++++-------
t/Makefile | 40 +++++++++++++++++++++-------------------
t/database_dependent.pl | 6 +++---
4 files changed, 59 insertions(+), 30 deletions(-)
diff --git a/.gitignore b/.gitignore
index 740b7f5..034e580 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,6 @@
*.old
*.tgz
*.iso2709
-.directory
\ No newline at end of file
+.directory
+t/run/
+t/test-config.txt
diff --git a/Makefile.PL b/Makefile.PL
index 5ad9fcb..bffe610 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -507,6 +507,16 @@ if ($config{'INSTALL_MODE'} ne "dev") {
);
}
+my %test_suite_override_dirs = (
+ KOHA_CONF_DIR => ['etc'],
+ ZEBRA_CONF_DIR => ['etc', 'zebradb'],
+ LOG_DIR => ['var', 'log'],
+ SCRIPT_DIR => ['bin'],
+ ZEBRA_LOCK_DIR => ['var', 'lock', 'zebradb'],
+ ZEBRA_DATA_DIR => ['var', 'lib', 'zebradb'],
+ ZEBRA_RUN_DIR => ['var', 'run', 'zebradb'],
+);
+
WriteMakefile(
NAME => 'koha',
#VERSION => strftime('2.9.%Y%m%d%H',gmtime),
@@ -1228,6 +1238,25 @@ sub get_target_directories {
return \%dirmap, \%skipdirs;
}
+=head2 get_test_dir
+
+Map a directory target to the corresponding path for
+the test suite.
+
+=cut
+
+sub get_test_dir {
+ my ($dirname) = @_;
+
+ my @basedir = (File::Spec->rel2abs(File::Spec->curdir()), 't', 'run');
+ if (exists $test_suite_override_dirs{$dirname}) {
+ return File::Spec->catdir(@basedir, @{ $test_suite_override_dirs{$dirname} });
+ } else {
+ return;
+ }
+
+}
+
sub _get_env_overrides {
my $dirmap = shift;
@@ -1473,14 +1502,10 @@ sub postamble {
print $confhandle "# It is separate from the standard koha-conf.xml so that you can edit this by hand and test with different configurations.\n";
# these directories will be relocated to the 't' directory
- my %move_to_t = map { $_ => 1 } qw( KOHA_CONF_DIR LOG_DIR SCRIPT_DIR ZEBRA_CONF_DIR ZEBRA_LOCK_DIR ZEBRA_DATA_DIR ZEBRA_RUN_DIR );
- my $oldbasedir = substr( $target_directories->{'KOHA_CONF_DIR'}, 0, - length( '/etc' ) );
- my $newbasedir = $target_directories->{'KOHA_CONF_DIR'};
- $newbasedir =~ s/etc$/t/;
foreach my $dirname ( keys %$target_directories ) {
- my $dir = $target_directories->{ $dirname };
- if ( $move_to_t{ $dirname } ) {
- $dir =~ s/$oldbasedir/$newbasedir/;
+ my $dir = $target_directories->{$dirname};
+ if ( exists $test_suite_override_dirs{$dirname} ) {
+ $dir = main::get_test_dir($dirname);
}
print $confhandle "$dirname = $dir\n"
}
diff --git a/t/Makefile b/t/Makefile
index fa3c57f..a41907e 100644
--- a/t/Makefile
+++ b/t/Makefile
@@ -6,6 +6,7 @@ ECHO = echo
MKDIR = /bin/mkdir
CP = cp
SED = /bin/sed
+CHMOD = chmod
# some of these are pretty questionable.
PERL = /usr/bin/perl
@@ -15,18 +16,18 @@ PROVE = /usr/bin/prove
PROVE_FLAGS = -v
KOHA_CONF_DIR = ../etc
CONF_FILE_TEMPLATE = $(KOHA_CONF_DIR)/koha-conf.xml
-TEST_CONF_FILE = etc/koha-conf.xml
+TEST_CONF_FILE = run/etc/koha-conf.xml
MKPATH = $(PERL) "-MExtUtils::Command" -e mkpath
TEST_REWRITE_SCRIPT = rewrite-config-test.PL
REAL_REWRITE_SCRIPT = ../rewrite-config.PL
-ZEBRA_CONF_DIR = etc/zebradb
+ZEBRA_CONF_DIR = run/etc/zebradb
ZEBRA_CONF_FILES = $(ZEBRA_CONF_DIR)/etc/passwd $(ZEBRA_CONF_DIR)/zebra-biblios.cfg $(ZEBRA_CONF_DIR)/zebra-authorities.cfg $(ZEBRA_CONF_DIR)/zebra-authorities-dom.cfg $(ZEBRA_CONF_DIR)/explain-authorities.xml $(ZEBRA_CONF_DIR)/explain-biblios.xml $(ZEBRA_CONF_DIR)/retrieval-info-auth-grs1.xml $(ZEBRA_CONF_DIR)/retrieval-info-auth-dom.xml $(ZEBRA_CONF_DIR)/ccl.properties $(ZEBRA_CONF_DIR)/cql.properties $(ZEBRA_CONF_DIR)/pqf.properties
SCRIPTS = koha-zebra-ctl.sh koha-pazpar2-ctl.sh koha-zebraqueue-ctl.sh zebraqueue_daemon.pl
SRC_SCRIPT_DIR = ../misc/bin
-TEST_SCRIPT_DIR = bin
+TEST_SCRIPT_DIR = run/bin
all ::
@@ -45,7 +46,6 @@ zebra_conf_files :: test_run_dirs $(ZEBRA_CONF_FILES)
$(ZEBRA_CONF_FILES) ::
- $(CP) ../$@ $@
$(PERL) $(TEST_REWRITE_SCRIPT) --file $@
$(PERL) $(REAL_REWRITE_SCRIPT) $@
@@ -53,24 +53,26 @@ $(SCRIPTS) ::
$(SED) s/--user=\$$USER.\$$GROUP// $(SRC_SCRIPT_DIR)/$@ > $(TEST_SCRIPT_DIR)/$@
$(PERL) $(TEST_REWRITE_SCRIPT) --file $(TEST_SCRIPT_DIR)/$@
$(PERL) $(REAL_REWRITE_SCRIPT) $(TEST_SCRIPT_DIR)/$@
+ $(CHMOD) 755 $(TEST_SCRIPT_DIR)/$@
test :: config_file $(ZEBRA_CONF_FILES) $(SCRIPTS)
KOHA_CONF=$(TEST_CONF_FILE) $(PROVE) $(PROVE_FLAGS) $(TEST_FILES)
test_run_dirs ::
- $(CP) -a ../etc/zebradb etc
- $(MKPATH) etc/zebradb/etc
- $(MKPATH) var/lib/zebradb/biblios/key
- $(MKPATH) var/lib/zebradb/biblios/register
- $(MKPATH) var/lib/zebradb/biblios/shadow
- $(MKPATH) var/lib/zebradb/biblios/tmp
- $(MKPATH) var/lib/zebradb/authorities/key
- $(MKPATH) var/lib/zebradb/authorities/register
- $(MKPATH) var/lib/zebradb/authorities/shadow
- $(MKPATH) var/lib/zebradb/authorities/tmp
- $(MKPATH) var/lock/zebradb/biblios
- $(MKPATH) var/lock/zebradb/authorities
- $(MKPATH) var/run/zebradb
- $(MKPATH) var/log/zebradb
- $(MKPATH) bin
+ $(MKPATH) run/etc
+ $(CP) -a ../etc/zebradb run/etc
+ $(MKPATH) run/etc/zebradb/etc
+ $(MKPATH) run/var/lib/zebradb/biblios/key
+ $(MKPATH) run/var/lib/zebradb/biblios/register
+ $(MKPATH) run/var/lib/zebradb/biblios/shadow
+ $(MKPATH) run/var/lib/zebradb/biblios/tmp
+ $(MKPATH) run/var/lib/zebradb/authorities/key
+ $(MKPATH) run/var/lib/zebradb/authorities/register
+ $(MKPATH) run/var/lib/zebradb/authorities/shadow
+ $(MKPATH) run/var/lib/zebradb/authorities/tmp
+ $(MKPATH) run/var/lock/zebradb/biblios
+ $(MKPATH) run/var/lock/zebradb/authorities
+ $(MKPATH) run/var/run/zebradb
+ $(MKPATH) run/var/log/zebradb
+ $(MKPATH) run/bin
diff --git a/t/database_dependent.pl b/t/database_dependent.pl
index 42348be..3afd422 100644
--- a/t/database_dependent.pl
+++ b/t/database_dependent.pl
@@ -39,7 +39,7 @@ stop_zebrasrv();
sub create_test_database {
- diag 'creating testing datbase...';
+ diag 'creating testing database...';
my $installer = C4::Installer->new() or die 'unable to create new installer';
# warn Data::Dumper->Dump( [ $installer ], [ 'installer' ] );
my $all_languages = getAllLanguages();
@@ -140,7 +140,7 @@ sub stop_zebrasrv {
sub start_zebraqueue_daemon {
- my $command = q(bin/koha-zebraqueue-ctl.sh start);
+ my $command = q(run/bin/koha-zebraqueue-ctl.sh start);
diag $command;
my $started = system( $command );
diag "started: $started";
@@ -162,7 +162,7 @@ sub start_zebraqueue_daemon {
sub stop_zebraqueue_daemon {
- my $command = q(bin/koha-zebraqueue-ctl.sh stop);
+ my $command = q(run/bin/koha-zebraqueue-ctl.sh stop);
diag $command;
my $started = system( $command );
diag "started: $started";
--
1.5.2.1
More information about the Koha-patches
mailing list