in reply to Re^3: CPAN newbie troubles
in thread CPAN newbie troubles

That's not what the code in question does at all. It silences the test failures.

You're wrong, I'm afraid.

# After adding 'linux' to the 'unsupported OS' list $ make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_h +arness(0, 'blib/lib', 'blib/arch')" t/*.t t/Term-Menu-Hierarchical.t .. 1/2 Bailout called. Further testing sto +pped: OS unsupported # Failed test at t/Term-Menu-Hierarchical.t line 17. FAILED--Further testing stopped: OS unsupported make: *** [test_dynamic] Error 255

Even though 'test_harness' has '0' for the 'verbose' argument, 'make test' clearly and explicitly throws the specified error.

You weren't very clear about what you wanted to do in your original post.

Hopefully, it's clear enough now.

You'll need to muck around with Makefile.PL.

I quote, again, from the CPAN Wiki (emphasis mine):

"How can I indicate that my distribution only works on a particular operating system?"

While it isn't a very elegant solution, the recommend approach is to either die in the Makefile.PL or Build.PL (or BAIL_OUT in a test file) with one of the following messages:

  • No support for OS
  • OS unsupported

CPAN Testers tools will look for one of those phrases and will send an NA (Not Available) report for that platform.

Thanks for trying. Perhaps someone who is actually familiar with the process will have a good answer.

-- 
Education is not the filling of a pail, but the lighting of a fire.
 -- W. B. Yeats

Replies are listed 'Best First'.
Re^5: CPAN newbie troubles
by ikegami (Patriarch) on Jan 05, 2011 at 00:57 UTC

    You're wrong, I'm afraid.

    I have no idea what you're running, but it's obviously not my code. On linux with linux added to the list:

    $ PERL_DL_NONLAZY=1 perl "-MExtUtils::Command::MM" "-e" "test_harness( +0, 'blib/lib', 'blib/arch')" a.t a.t .. skipped: OS unsupported. It may or may not work, but you won't +know since the tests are being skipped. Use at your own risk Files=1, Tests=0, 1 wallclock secs ( 0.02 usr 0.00 sys + 0.02 cusr + 0.00 csys = 0.04 CPU) Result: NOTESTS

    Clearly that would confuse would-be users.

    I quote, again, from the CPAN Wiki (emphasis mine):

    And for the third time, you never call BAIL_OUT on Windows because you never reach it.

    Thanks for trying. Perhaps someone who is actually familiar with the process will have a good answer.

    Are you saying my solution doesn't work? I seriously doubt that since I copied it from a well used module AND it's mentioned in the documentation you keep quoting.

      And for the third time, you never call BAIL_OUT because you never reach it.

      And you're wrong again. I quote again, from my previous post (emphasis mine):

      PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/ar
      +ch')" t/*.t
      t/Term-Menu-Hierarchical.t .. 1/2 Bailout called.  Further testing stopped:  OS unsupported
      
      Are you saying my solution doesn't work?

      No. I'm saying that you are clearly unfamiliar with the situation that I asked about. Unfortunately, you also appear to be desperately struggling not to be proven wrong - and I'm really not interested in that kind of unproductive tussling.

      In addition, I'm saying that my code works at least as well as yours for the purpose of working; this was never in question, it always worked. The problem is the collision with CPANtesters: I'm doing what's recommended, and not getting back the result that I'm supposed to get. You've been focusing on "fixing" my code (making it work), which it never needed - and you've never addressed the question that I asked, because you clearly don't know anything about it.

      I appreciate your technical competence in other areas of Perl, and I thank you for trying with this question as well. Now please, stop trying to "fix" my code. It doesn't need it.

      -- 
      Education is not the filling of a pail, but the lighting of a fire.
       -- W. B. Yeats

        I quote again,

        Just as irrelevant as the first time around. That's not the same output that you get from Windows.

        But you're right that I was wrong. While the first test is failing on Windows,

        # Failed test 'use Term::Menu::Hierarchical;' # at t/Term-Menu-Hierarchical.t line 9. # Tried to use 'Term::Menu::Hierarchical'. # Error: POSIX::termios not implemented on this architecture at C +:\strawberry\cpan\build\Term-Menu-Hierarchical-0.70-huc0DH\blib\lib/T +erm/Menu/Hierarchical.pm line 18. # Compilation failed in require at (eval 4) line 2. # BEGIN failed--compilation aborted at (eval 4) line 2.

        it's not preventing the BAIL_OUT from being executed. I'm so used to "BEGIN failed--compilation aborted" to being the end of the error chain. But it does continue on with

        # Failed test at t/Term-Menu-Hierarchical.t line 17. Bailout called. Further testing stopped: OS unsupported FAILED--Further testing stopped: OS unsupported dmake.EXE: Error code 255, while making 'test_dynamic'

        So BAIL_OUT is working as intended. So why are you getting FAIL reports? Well, you're not. You're getting N/A reports.

        Subject: NA Term-Menu-Hierarchical-0.70 v5.12.1 Windows (Win32)

        Full report