Make tests pass on systems without %s strftime specifier
authorMarius Gavrilescu <marius@ieval.ro>
Sat, 7 Jan 2017 16:53:28 +0000 (18:53 +0200)
committerMarius Gavrilescu <marius@ieval.ro>
Sat, 7 Jan 2017 16:53:28 +0000 (18:53 +0200)
lib/App/Lastmsg.pm
t/App-Lastmsg.t

index a5a27b59c42af9fea88cebcfee4c86d870469561..8d2cce57eb09d247c336dcd61711c9ed32a58d0d 100644 (file)
@@ -18,6 +18,8 @@ our @DEFAULT_INBOX;
 push @DEFAULT_INBOX, "/var/mail/$ENV{USER}" if exists $ENV{USER};
 push @DEFAULT_INBOX, "$ENV{HOME}/Maildir"   if exists $ENV{HOME};
 
+sub format_time { strftime '%c', localtime shift }
+
 sub run {
        my $config = Config::Auto->new(format => 'yaml')->parse;
        die "No configuration file found\n" unless $config;
@@ -94,7 +96,7 @@ sub run {
        my $addrlen = max map { length } values %lastaddr;
 
        for (sort { $lastmsg{$b} <=> $lastmsg{$a} } keys %lastmsg) {
-               my $time = strftime '%c', localtime $lastmsg{$_};
+               my $time = format_time $lastmsg{$_};
                printf $OUTPUT_FILEHANDLE "%-${idlen}s %-${addrlen}s %s\n", $_, $lastaddr{$_}, $time;
        }
 
index 2439d3f1997e270331a71cce01ab374592ec380a..a9845098fc2e2632775d2d4e4251917ba8a20034 100644 (file)
@@ -5,14 +5,9 @@ use warnings;
 use Test::More tests => 2;
 BEGIN { use_ok('App::Lastmsg') };
 
-my $real_strftime = \&POSIX::strftime;
-
 {
        no warnings 'redefine';
-       *App::Lastmsg::strftime = sub {
-               my ($format, @rest) = @_;
-               $real_strftime->('%s', @rest)
-       };
+       *App::Lastmsg::format_time = sub { shift };
 }
 
 chdir 't';
This page took 0.011982 seconds and 4 git commands to generate.