gozer       2004/09/10 18:02:28

  Modified:    t/modules reload.t
  Log:
  Instead of sleeping to wait for a touch() to be detected, adjust mtime
  forward in the future.
  Obtained from: stas
  
  Revision  Changes    Path
  1.4       +14 -8     modperl-2.0/t/modules/reload.t
  
  Index: reload.t
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/t/modules/reload.t,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- reload.t  9 Sep 2004 18:29:09 -0000       1.3
  +++ reload.t  11 Sep 2004 01:02:28 -0000      1.4
  @@ -8,6 +8,9 @@
   
   plan tests => 3;
   
  +my $test_file = catfile Apache::Test::vars("serverroot"),
  +    qw(lib Apache Reload Test.pm);
  +
   my $module   = 'TestModules::reload';
   my $location = '/' . Apache::TestRequest::module2path($module);
   
  @@ -27,7 +30,7 @@
   sub prototype($$) { 'PROTOTYPE' }
   EOF
   
  -t_write_file(test_file(), $header, $initial);
  +t_write_file($test_file, $header, $initial);
   
   t_debug "getting the same interp ID for $location";
   my $same_interp = Apache::TestRequest::same_interp_tie($location);
  @@ -46,8 +49,8 @@
       );
   }
   
  -sleep(2);
  -t_write_file(test_file(), $header, $modified);
  +t_write_file($test_file, $header, $modified);
  +touch_mtime($test_file);
   
   {
       my $expected = join '', map { "$_:" . uc($_) . "\n" } sort @tests;
  @@ -73,11 +76,6 @@
       );
   }
   
  -sub test_file {
  -    return catfile Apache::Test::vars("serverroot"),
  -        qw(lib Apache Reload Test.pm);
  -}
  -
   # if we fail to find the same interpreter, return undef (this is not
   # an error)
   sub get_body {
  @@ -107,6 +105,14 @@
       ok &t_cmp;
   EOE
       }
  +}
  +
  +sub touch_mtime {
  +    my $file = shift;
  +    # push the mtime into the future (at least 2 secs to work on win32)
  +    # so Apache::Reload will reload the package
  +    my $time = time + 5; # make it 5 to be sure
  +    utime $time, $time, $file;
   }
   
   __DATA__
  
  
  

Reply via email to