start of integration testing
[scpubgit/App-EzPz.git] / lib / App / EzPz / TestSetup.pm
index 4cd3552..46acf51 100644 (file)
@@ -3,7 +3,7 @@ package App::EzPz::TestSetup;
 use IO::All;
 use IPC::System::Simple qw(run);
 use Cwd;
-use Exporter;
+use base qw(Exporter);
 use strictures 1;
 
 our @EXPORT = qw(create_install create_list);
@@ -12,20 +12,20 @@ sub create_install {
   die "Usage: ezpz-create-test-ezmlm-install ezmlm-source.tgz build-dir install-dir"
     unless @_ == 3;
   
-  my ($ezmlm_tarball_path, $build_dir_path, $install_to_path) = @ARGV;
+  my ($ezmlm_tarball_path, $build_dir_path, $install_to_path) = @_;
   
   my $ezmlm_tarball = io->file(io->file($ezmlm_tarball_path)->rel2abs);
   
-  my $orig_cwd = io->dir(cwd);
+  my $cwd = cwd;
   
-  my $build_dir = io->dir($build_dir_path)->absolute;
-  my $install_to = io->dir($install_to_path)->absolute;
+  my $build_dir = io->dir(io->dir($build_dir_path)->rel2abs);
+  my $install_to = io->dir(io->dir($install_to_path)->rel2abs);
   
   unless ($build_dir->exists) {
     $build_dir->mkpath;
     $build_dir->chdir;
     run 'tar', 'xzf', $ezmlm_tarball;
-    $orig_cwd->chdir;
+    chdir($cwd);
   }
   
   my ($src_dir) = ($build_dir->all_dirs)[0];
@@ -44,6 +44,8 @@ sub create_install {
   run './ezmlm-test';
   $install_to->catdir('bin')->mkpath;
   run make => 'install';
+
+  chdir(cwd);
 }
 
 sub create_list {
@@ -52,9 +54,9 @@ sub create_list {
   
   my ($ezmlm_bin_path, $list_base_path, $list_name) = @_;
   
-  my $ezmlm_bin = io->dir($ezmlm_bin_path)->absolute;
+  my $ezmlm_bin = io->dir(io->dir($ezmlm_bin_path)->rel2abs);
   
-  my $list_base = io->dir($list_base_path)->absolute;
+  my $list_base = io->dir(io->dir($list_base_path)->rel2abs);
   
   run(
     $ezmlm_bin->catfile('ezmlm-make'),
@@ -63,3 +65,6 @@ sub create_list {
     $list_name,
     'example.com'
   );
+}
+
+1;