Ticket #3091 (closed bug: fixed)

Opened 4 years ago

Last modified 4 years ago

With Python 2.5.1c1, validate ends "... runtests.py ... ValueError: invalid literal for int() with base 10: '1c1'"

Reported by: thorkilnaur Owned by: igloo
Priority: normal Milestone:
Component: Test Suite Version: 6.11
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: Difficulty: Unknown
Test Case: Blocked By:
Blocking: Related Tickets:

Description

Running validate on a recent HEAD with

$ uname -a
Linux tn14 2.6.20-15-generic #2 SMP Sun Apr 15 07:36:31 UTC 2007 i686 GNU/Linux
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.8.2
$ python --version
Python 2.5.1c1
$ 

results in

python ../../driver/runtests.py  -e ghc_with_native_codegen=1 -e ghc_with_profiling=0 -e ghc_with_threaded_rts=1 -e ghc_with_interpreter=1 -e ghc_unregisterised=0 -e ghc_with_smp=1 --threads=2 --rootdir=. --config=../../config/ghc -e config.confdir=\"../../config\" -e config.compiler=\"/home/tn/tn/GHCDarcsRepository/ghc-HEAD-complete-based-on-ghc-HEAD-2009-01-09-ghc-corelibs-testsuite/ghc/ghc/stage2-inplace/ghc\" -e config.compiler_always_flags.append"(\"\")" -e config.ghc_pkg=\"/home/tn/tn/GHCDarcsRepository/ghc-HEAD-complete-based-on-ghc-HEAD-2009-01-09-ghc-corelibs-testsuite/ghc/utils/ghc-pkg/install-inplace/bin/ghc-pkg\" -e config.hp2ps=\"/home/tn/tn/GHCDarcsRepository/ghc-HEAD-complete-based-on-ghc-HEAD-2009-01-09-ghc-corelibs-testsuite/ghc/utils/hp2ps/hp2ps\" -e config.gs=\"gs\" -e config.platform=\"i386-unknown-linux\" -e config.os=\"linux\" -e config.wordsize=\"32\" -e default_testopts.cleanup=\"1\" -e config.timeout="int() or config.timeout" -e config.timeout_prog=\"../../timeout/install-inplace/bin/timeout\" -e config.exeext=\"\" -e config.top=\"/home/tn/tn/GHCDarcsRepository/ghc-HEAD-complete-based-on-ghc-HEAD-2009-01-09-ghc-corelibs-testsuite/ghc/testsuite\"   --rootdir=../../../libraries/containers/tests  --rootdir=../../../libraries/hpc/tests  --rootdir=../../../libraries/bytestring/tests  --rootdir=../../../libraries/random/tests  --rootdir=../../../libraries/directory/tests  --rootdir=../../../libraries/process/tests  --rootdir=../../../libraries/Cabal/tests  --rootdir=../../../libraries/unix/tests \
                 \
                 \
                 \
                 \
                -e config.fast=1 \

Traceback (most recent call last):
  File "../../driver/runtests.py", line 89, in <module>
    pat = int(pat)
ValueError: invalid literal for int() with base 10: '1c1'
make[1]: *** [test] Error 1
make[1]: Leaving directory `/home/tn/tn/GHCDarcsRepository/ghc-HEAD-complete-based-on-ghc-HEAD-2009-01-09-ghc-corelibs-testsuite/ghc/testsuite/tests/ghc-regress'
make: *** [fast] Error 2
make: Leaving directory `/home/tn/tn/GHCDarcsRepository/ghc-HEAD-complete-based-on-ghc-HEAD-2009-01-09-ghc-corelibs-testsuite/ghc/testsuite/tests/ghc-regress'
-------------------------------------------------------------------
Oops!  Looks like you have some unexpected test results or framework failures.
Please fix them before pushing/sending patches.
-------------------------------------------------------------------

from code in runtests.py:

Wed Jun 11 17:51:48 CEST 2008  Ian Lynagh <igloo@earth.li>
  * Refuse to use threads unless python version >= 2.5.2
  According to trac #1558, 2.5.2 should work. It's possible a lower bound,
  e.g. 2.5, would suffice.

    hunk ./driver/runtests.py 13
    +import platform>     hunk ./driver/runtests.py 83
    -        config.threads = int(arg)
    +        # Trac #1558 says threads don't work in python 2.4.4, but do
    +        # in 2.5.2. Probably >= 2.5 is sufficient, but let's be
    +        # conservative here.
    +        (maj, min, pat) = platform.python_version_tuple()
    +        maj = int(maj)
    +        min = int(min)
    +        pat = int(pat)
    +        if (maj, min, pat) >= (2, 5, 2):
    +            config.threads = int(arg)
    +        else:
    +            print "Warning: Ignoring request to use threads as python version < 2.5.2"

The problem seems to be the non-decimal digit character in the the python patchlevel 1c1. I am not sure how to fix this. I seem to recall to have seen non-decimal digit characters also in the minor version string of a python version.

And to be sure: This is not a serious problem for me, it is not preventing me from doing anything important.

Best regards Thorkil

Change History

Changed 4 years ago by igloo

  • owner set to igloo
  • difficulty set to Unknown

Changed 4 years ago by igloo

  • status changed from new to closed
  • resolution set to fixed

Thanks for the report. I couldn't see a nice way to fix this, so I kludged around it with a regexp:

maj = int(re.sub('[^0-9].*', '', maj))
min = int(re.sub('[^0-9].*', '', min))
pat = int(re.sub('[^0-9].*', '', pat))

Fixed by:

Fri Mar 20 19:16:08 GMT 2009  Ian Lynagh <igloo@earth.li>
  * Fix trac #3091: the driver was choking on python versions containing letters
Note: See TracTickets for help on using tickets.