Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have used CPAN to install perl modules on quite a few occasions, but I've been lucky enough to just have it work. Unfortunately, I was trying to install Thread::Pool today and one of the required dependencies, Thread::Converyor::Monitored failed the test:

Test Summary Report
t/Conveyor-Monitored02.t (Wstat: 65280 Tests: 89 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Tests out of sequence.  Found (2) but expected (4)
                Tests out of sequence.  Found (4) but expected (5)
                Tests out of sequence.  Found (5) but expected (6)
                Tests out of sequence.  Found (3) but expected (7)
                Tests out of sequence.  Found (6) but expected (8)
Displayed the first 5 of 86 TAP syntax errors.
Re-run prove with the -p option to see them all.
Files=3, Tests=258,  6 wallclock secs ( 0.07 usr  0.03 sys +  4.04 cusr  1.25 csys =  5.39 CPU)
Result: FAIL
Failed 1/3 test programs. 0/258 subtests failed.
make: *** [test_dynamic] Error 255
  /usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports ELIZABETH/Thread-Conveyor-Monitored-0.12.tar.gz
Running make install
  make test had returned bad status, won't install without force
Failed during this command:
 ELIZABETH/Thread-Conveyor-Monitored-0.12.tar.gz: make_test NO

What steps do you take to start seeing why an installation failed? I'm not even sure how to begin tracking down what's wrong.

share|improve this question
You might have more luck with this question on StackOverflow. As a starting point, type "look Thread::Conveyor::Monitored" to get into the directory CPAN is using to compile the source, and try to find a way to get more information out of the "make test" step ("prove -p" seems like a good thing to try, based on the error. "prove --verbose" would also be worth a shot). – Steve Simms May 27 '10 at 0:24
up vote 2 down vote accepted

Looking at the module, it seems to be failing for just about everyone, according to the test reports.

My guess from the error message is that it's starting tests in separate threads, and some later tests are taking less time than earlier ones. When they complete, that's printing the test results out of order, which is causing the failure.

That probably just means the tests are bad, rather than the code itself, and you can do force install Thread::Conveyor::Monitored to bypass the testing.

share|improve this answer
I think this is right. – pythonic metaphor May 28 '10 at 19:49

Well, the first thing I'd do is try and build the module from source. Lot of times you can get better errors there, and, if nothing else, at least you'll still have the entire make log to look at (make sure to pipe it to a file).

share|improve this answer
I tried doing this from source, and when I run make test, I get the same diagnostic messages. The make itself is fine - in fact, I think this is a pure perl module, so there's nothing to make. The issue is that the tests fail. – pythonic metaphor May 26 '10 at 19:43
@pythonic metaphor: I know it's a bitch, but can you post the whole make log? – Satanicpuppy May 27 '10 at 2:22
Steve was right I think. The tests are poorly written. – pythonic metaphor May 28 '10 at 19:49
@pythonic metaphor: Cool. – Satanicpuppy May 28 '10 at 21:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .