New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

re: test failures on Windows #261

Closed
charsbar opened this Issue Feb 17, 2018 · 2 comments

Comments

Projects
None yet
2 participants
@charsbar

charsbar commented Feb 17, 2018

https://twitter.com/azumakuniyuki/status/963988522053939200
https://twitter.com/azumakuniyuki/status/963987561046683648

There are two reasons of this breakage for Windows.

  1. Windows doesn't have a reliable inode (see also perlport for the stat portability)

The following kind of hack made the failing tests pass, but I'm not sure this is the best way to go. As you've said in the above tweets, just making the tests skip would be enough.

diff --git a/lib/Sisimai/Mail/Maildir.pm b/lib/Sisimai/Mail/Maildir.pm
--- a/lib/Sisimai/Mail/Maildir.pm
+++ b/lib/Sisimai/Mail/Maildir.pm
@@ -66,6 +66,7 @@ sub read {
# Get inode number of the file
$self->{'path'} = $emailindir;
$emailinode = [stat $emailindir]->[1];

  •        $emailinode = $emailindir if $^O eq 'MSWin32';
           next if exists $self->{'inodes'}->{ $emailinode };
    
           $filehandle = IO::File->new($emailindir, 'r');
    
  1. Some of the tests fail because of the Windows line ending difference (LF/CRLF)

This patch should fix the issue, but the same as above can be applied here, and it might be better to add this binmode to lib/Sisimai/Mail/STDIN.pm as well (as of this writing tests pass without patching it).

diff --git a/lib/Sisimai/Mail/Mbox.pm b/lib/Sisimai/Mail/Mbox.pm
index f10db4b..c49816c 100644
--- a/lib/Sisimai/Mail/Mbox.pm
+++ b/lib/Sisimai/Mail/Mbox.pm
@@ -34,6 +34,7 @@ sub new {
$param->{'size'} = -s $argv1;
$param->{'file'} = File::Basename::basename $argv1;
$param->{'handle'} = ref $argv1 ? $argv1 : IO::File->new($argv1, 'r');

  • binmode $param->{'handle'};

    return bless($param, PACKAGE);
    }

@azumakuniyuki

This comment has been minimized.

Member

azumakuniyuki commented Feb 17, 2018

@charsbar Thanks for the advice! I'll try to fix these codes :-)

azumakuniyuki added a commit that referenced this issue Feb 17, 2018

azumakuniyuki added a commit that referenced this issue Feb 17, 2018

@azumakuniyuki

This comment has been minimized.

Member

azumakuniyuki commented Feb 17, 2018

try-to-support-windows branch which is applied your patch has successfully passed tests on Windows !
https://twitter.com/azumakuniyuki/status/964804204865847296

And then, we've released the merged master branch as v4.22.4p1.
Thank you again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment