]> git.vpit.fr Git - perl/modules/VPIT-TestHelpers.git/blobdiff - t/50-usleep.t
More flexible selection of usleep() implementations
[perl/modules/VPIT-TestHelpers.git] / t / 50-usleep.t
index 4ed179ef80cf9a08c81b67d0720a70d38e053e54..109f4bce915fd6061a6f635f974b1aebda5c72c1 100644 (file)
@@ -3,12 +3,32 @@
 use strict;
 use warnings;
 
-use VPIT::TestHelpers 'usleep';
+use VPIT::TestHelpers;
 
-use Test::More tests => 2;
+use Test::More;
 
-pass 'before usleep()';
+my @impls = qw<Time::HiRes sleep>;
 
-usleep 100;
+for my $impl (@impls) {
+ my $desc = "$impl-based usleep()";
+ {
+  local $SIG{__WARN__} = sub {
+   my $msg = join ' ', @_;
+   if ($msg !~ /Subroutine main::usleep redefined/) {
+    CORE::warn $msg;
+   }
+   return;
+  };
+  VPIT::TestHelpers->import(usleep => [ $impl ]);
+ }
+ my $has_usleep = do {
+  local $@;
+  eval 'defined &main::usleep';
+ };
+ ok $has_usleep, "$desc was imported";
+ my $ret = usleep(100);
+ pass "$desc did sleep";
+ diag "$desc actually slept $ret microseconds";
+}
 
-pass 'after usleep()';
+done_testing;