miyagawa / test-synopsis

Test your code in SYNOPSIS
10 stars 8 forks source link

Test Failures on Windows due to slash/backslash differences in paths #14

Open zoffixznet opened 9 years ago

zoffixznet commented 9 years ago

Failure report: http://www.cpantesters.org/cpan/report/4c9f7f70-dfd6-11e4-aa8d-adc4dc153cf8

zoffixznet commented 9 years ago

Traced this down to differring outputs of caller(). It uses slashes, because that's what we're using inside the test, but on the report's perl build, seems their perl uses backslashes in caller(), regardless of what we asked it to use.

I emailed the tester, asking for more info on their setup. Will take it from there, if they respond.

Also, I'm downloading Win8 VM to try and see if this is the result of Win8 vs earlier Windows.

jddurand commented 1 year ago

FYI I am reproducing it, this is on Windows 10, perl 5.37.6.

perl setup is:

Summary of my perl5 (revision 5 version 37 subversion 6) configuration:

  Platform:
    osname=MSWin32
    osvers=10.0.19045.2364
    archname=MSWin32-x86-multi-thread
    uname=''
    config_args='undef'
    hint=recommended
    useposix=true
    d_sigaction=undef
    useithreads=define
    usemultiplicity=define
    use64bitint=undef
    use64bitall=undef
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
  Compiler:
    cc='cl'
    ccflags ='-nologo -GF -W3 -MD -DWIN32 -D_CONSOLE -DNO_STRICT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS  -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DMULTIPLICITY -DPERL_IMPLICIT_SYS'
    optimize='-O1 -Zi -GL'
    cppflags='-DWIN32'
    ccversion='19.32.31332'
    gccversion=''
    gccosandvers=''
    intsize=4
    longsize=4
    ptrsize=4
    doublesize=8
    byteorder=1234
    doublekind=3
    d_longlong=undef
    longlongsize=8
    d_longdbl=define
    longdblsize=8
    longdblkind=0
    ivtype='long'
    ivsize=4
    nvtype='double'
    nvsize=8
    Off_t='__int64'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='link'
    ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -ltcg  -libpath:"C:\cl-perl-5.37.6-32bit\lib\CORE"  -machine:x86 -subsystem:console,"5.01"'
    libpth="C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.32.31326\\lib\x86"
    libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib  comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib  netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib  version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib vcruntime.lib ucrt.lib
    perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib  comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib  netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib  version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib vcruntime.lib ucrt.lib
    libc=ucrt.lib
    so=dll
    useshrplib=true
    libperl=perl537.lib
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_win32.xs
    dlext=dll
    d_dlsymun=undef
    ccdlflags=' '
    cccdlflags=' '
    lddlflags='-dll -nologo -nodefaultlib -debug -opt:ref,icf -ltcg  -libpath:"C:\cl-perl-5.37.6-32bit\lib\CORE"  -machine:x86 -subsystem:console,"5.01"'

Characteristics of this binary (from libperl):
  Compile-time options:
    HAS_TIMES
    HAVE_INTERP_INTERN
    MULTIPLICITY
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_HASH_FUNC_ZAPHOD32
    PERL_HASH_USE_SBOX32
    PERL_IMPLICIT_SYS
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_USE_SAFE_PUTENV
    USE_ITHREADS
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
    USE_SITECUSTOMIZE
    USE_THREAD_SAFE_LOCALE
  Built under MSWin32
  Compiled at Dec 27 2022 11:38:37
  @INC:
    C:/cl-perl-5.37.6-32bit/site/lib/MSWin32-x86-multi-thread
    C:/cl-perl-5.37.6-32bit/site/lib
    C:/cl-perl-5.37.6-32bit/lib

The test output is:

        "C:\cl-perl-5.37.6-32bit\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t\*.t
t\00-compile.t ...................... ok
t\01-fail-if-SYNOPSIS-has-errors.t ..
#   Failed test 'synopsis fail works'
t\01-fail-if-SYNOPSIS-has-errors.t .. 1/1 #   at t\01-fail-if-SYNOPSIS-has-errors.t line 18.
# STDERR is:
#   #   Failed test 't/lib/BrokenSYNOPSIS01.pm'
# > #   at t\01-fail-if-SYNOPSIS-has-errors.t line 17.
#   # Global symbol "$x" requires explicit package name (did you forget to declare "my $x"?) at t/lib/BrokenSYNOPSIS01.pm line 18.
# not:
#   #   Failed test 't/lib/BrokenSYNOPSIS01.pm'
# > #   at t/01-fail-if-SYNOPSIS-has-errors.t line 17.
#   # Global symbol "$x" requires explicit package name (did you forget to declare "my $x"?) at t/lib/BrokenSYNOPSIS01.pm line 18.
# as expected
t\01-fail-if-SYNOPSIS-has-errors.t .. Failed 1/1 subtests
t\02-END-token-errors.t .............
#   Failed test 'synopsis fail works'
#   at t\02-END-token-errors.t line 18.
t\02-END-token-errors.t ............. 1/1 # STDERR is:
#   #   Failed test 't/lib/ENDInPodWithError.pm'
# > #   at t\02-END-token-errors.t line 17.
#   # Global symbol "$x" requires explicit package name (did you forget to declare "my $x"?) at t/lib/ENDInPodWithError.pm line 24.
# not:
#   #   Failed test 't/lib/ENDInPodWithError.pm'
# > #   at t/02-END-token-errors.t line 17.
#   # Global symbol "$x" requires explicit package name (did you forget to declare "my $x"?) at t/lib/ENDInPodWithError.pm line 24.
# as expected
t\02-END-token-errors.t ............. Failed 1/1 subtests
t\03-end-in-pod.t ................... ok
t\04-HEREDOC.t ...................... ok
t\05-multi-chunks-clash.t ...........
#   Failed test 'synopsis with multiple chunks fails'
#   at t\05-multi-chunks-clash.t line 13.
t\05-multi-chunks-clash.t ........... 1/1 # STDERR is:
#   #   Failed test 't/lib/TestMultipleChunks.pm (section 2)'
# > #   at t\05-multi-chunks-clash.t line 12.
#   # Bareword "bob" not allowed while "strict subs" in use at t/lib/TestMultipleChunks.pm line 29.
# not:
#   #   Failed test 't/lib/TestMultipleChunks.pm (section 2)'
# > #   at t/05-multi-chunks-clash.t line 12.
#   # Bareword "bob" not allowed while "strict subs" in use at t/lib/TestMultipleChunks.pm line 29.
# as expected
t\05-multi-chunks-clash.t ........... Failed 1/1 subtests
t\05-multi-files-clash.t ............ ok
t\06-for.t .......................... ok
t\07-nopod.t ........................ ok
t\08-plain-text-in-pod.t ............ ok
t\09-synopsis.t ..................... ok
t\10-in-pod-skip.t .................. ok
t\11-DATA-in-pod.t .................. ok
t\12-DATA-token-errors.t ............
#   Failed test 'synopsis fail works'
t\12-DATA-token-errors.t ............ 1/1 #   at t\12-DATA-token-errors.t line 18.
# STDERR is:
#   #   Failed test 't/lib/Test12DATAInPodWithError.pm'
# > #   at t\12-DATA-token-errors.t line 17.
#   # Global symbol "$x" requires explicit package name (did you forget to declare "my $x"?) at t/lib/Test12DATAInPodWithError.pm line 24.
# not:
#   #   Failed test 't/lib/Test12DATAInPodWithError.pm'
# > #   at t/12-DATA-token-errors.t line 17.
#   # Global symbol "$x" requires explicit package name (did you forget to declare "my $x"?) at t/lib/Test12DATAInPodWithError.pm line 24.
# as expected
t\12-DATA-token-errors.t ............ Failed 1/1 subtests

Test Summary Report
-------------------
t\01-fail-if-SYNOPSIS-has-errors.t (Wstat: 0 Tests: 1 Failed: 1)
  Failed test:  1
t\02-END-token-errors.t           (Wstat: 0 Tests: 1 Failed: 1)
  Failed test:  1
t\05-multi-chunks-clash.t         (Wstat: 0 Tests: 1 Failed: 1)
  Failed test:  1
t\12-DATA-token-errors.t          (Wstat: 0 Tests: 1 Failed: 1)
  Failed test:  1
Files=14, Tests=17,  4 wallclock secs ( 0.05 usr +  0.05 sys =  0.09 CPU)
Result: FAIL
Failed 4/14 test programs. 4/17 subtests failed.
NMAKE : fatal error U1077: 'C:\cl-perl-5.37.6-32bit\bin\perl.exe' : code retour '0xff'