[Rt-commit] r14372 - in rt/3.8/trunk: .

spang at bestpractical.com spang at bestpractical.com
Tue Jul 22 08:52:31 EDT 2008


Author: spang
Date: Tue Jul 22 08:52:27 2008
New Revision: 14372

Modified:
   rt/3.8/trunk/   (props changed)
   rt/3.8/trunk/t/shredder/utils.pl

Log:
 r46851 at loki:  spang | 2008-07-22 13:49:16 +0100
 clean up utils.pl and use a File::Temp tempdir instead of t/data/shredder so tests don't walk over each others' data when run in parallel


Modified: rt/3.8/trunk/t/shredder/utils.pl
==============================================================================
--- rt/3.8/trunk/t/shredder/utils.pl	(original)
+++ rt/3.8/trunk/t/shredder/utils.pl	Tue Jul 22 08:52:27 2008
@@ -4,6 +4,7 @@
 use warnings;
 
 use File::Spec;
+use File::Temp ();
 require File::Path;
 require File::Copy;
 require Cwd;
@@ -14,6 +15,9 @@
 }
 use RT::Shredder;
 
+# where to keep temporary generated test data
+my $tmpdir = '';
+
 =head1 DESCRIPTION
 
 RT::Shredder test suite utilities.
@@ -152,7 +156,8 @@
 =head3 db_name
 
 Returns absolute file path to the current DB.
-It is C<cwd() .'/t/data/shredder/'. test_name() .'.db'>.
+It is $tmpdir . test_name() .'.db'>.
+
 See also C<test_name> function.
 
 =cut
@@ -181,7 +186,7 @@
 {
     my $obj = new RT::Shredder;
 
-    my $file = File::Spec->catfile( tmpdir(), test_name() .'.XXXX.sql' );
+    my $file = File::Spec->catfile( create_tmpdir(), test_name() .'.XXXX.sql' );
     $obj->AddDumpPlugin( Arguments => {
         file_name    => $file,
         from_storage => 0,
@@ -213,15 +218,17 @@
 
 =head3 tmpdir
 
-Return absolute path to tmp dir used in tests.
-It is C<Cwd->getcwd()>. $directories . "../data/shredder", relative to the
-location of this file, where $directories is the directory portion of $0.
+Return the absolute path to a tmp dir used in tests.
 
 =cut
 
 sub tmpdir {
-    return RT::Test::get_abs_relocatable_dir(File::Spec->updir(),
-        'data', 'shredder');
+    if (-d $tmpdir) {
+        return $tmpdir;
+    } else {
+        $tmpdir = File::Temp->newdir(TEMPLATE => 'shredderXXXXX');
+        return $tmpdir;
+    }
 }
 
 =head2 create_tmpdir
@@ -234,7 +241,7 @@
 
 =head3 cleanup_tmp
 
-Delete all tmp files that match C<t/data/shredder/test_name.*> mask.
+Delete all tmp files used in the tests.
 See also C<test_name> function.
 
 =cut
@@ -384,23 +391,23 @@
     return <<END;
 Some tests in '$0' file failed.
 You can find debug info in '$tmpdir' dir.
-There is should be:
+There should be:
     $name.log - RT debug log file
-    $name.db - latest RT DB sed while testing
+    $name.db - latest RT DB used while testing
     $name.*.db - savepoint databases
-See also perldoc t/shredder/utils.pl to know how to use this info.
+See also perldoc t/shredder/utils.pl for how to use this info.
 END
 }
 
 =head2 OTHER
 
-=head3 is_all_seccessful
+=head3 all_were_successful
 
-Returns true if all tests you've already run are successful.
+Returns true if all tests that have already run were successful.
 
 =cut
 
-sub is_all_successful
+sub all_were_successful
 {
     use Test::Builder;
     my $Test = Test::Builder->new;
@@ -409,7 +416,7 @@
 
 END {
     return unless -e tmpdir();
-    if( is_all_successful() ) {
+    if ( all_were_successful() ) {
             cleanup_tmp();
     } else {
             diag( note_on_fail() );


More information about the Rt-commit mailing list