[PATCH] D20825: Don't force Python2.7

Luke Drummond via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 3 07:03:36 PDT 2016


ldrumm added a comment.

Sorry for the delay, I wanted to run tests...

In http://reviews.llvm.org/D20825#444646, @zturner wrote:

> Does lit run properly under Python 3.5?


A quick glance at the lit python sources indicate that they're python3 ready for the most-part with some suspicious use of old-style classes in places - nothing too to worry about in this case, as they don't use any of the old MRO behaviour and are not subclassed anywhere I can see, but again - not code I'm familiar with.

In any case, building with ` cmake ../llvm -G Ninja -DPYTHON_EXECUTABLE:FILEPATH=$(which python3); ninja check-llvm` gives me a pass result on Linux platforms (on Win32 I get millions of errors for missing `grep`), so I think that if there are any code paths that are not py3-compatible, they are not being used by `check-llvm`:

  Testing Time: 146.65s
  Expected Passes    : 16594
  Expected Failures  : 129
  Unsupported Tests  : 186

Snip from `ps aux | grep lit` shows that python3 is actually being used for the test run

  /usr/bin/python3 ~/llvm-upstream/llvm/utils/lit/lit.py -sv --param llvm_site_config=~/llvm-upstream/build/test/lit.site.cfg --param llvm_unit_site_config=~/llvm-upstream/build/test/Unit/lit.site.cfg~/llvm-upstream/build/test

> There's also the awkward issue that LLDB specifies its python libraries independently of how LLVM does.  I think it's safe to remove this check for that reason alone (LLVM's python interpreter should have no effect on LLDB's).

> 

> What combination of {OS, Python Version} have you tested this on?


Please see below. I've tried to test this on the big 3, but the Mac I used seems to have a very old linker that fails some of the LTO tests, and the windows builder fails with "unable to find `grep` errors. In both cases the test-suite itself is fine, only the tools it calls out to are missing or (on the Macintosh) outdated.

I don't know if this counts as a successful result though.

Linux (Ubuntu 16.04 LTS): CPython2.7.11:
----------------------------------------

  cmake ../llvm -G Ninja -DPYTHON_EXECUTABLE:FILEPATH=$(which python2)
  [...]
  ninja check-llvm
  [...]
  [2046/2046] Running the LLVM regression tests
  Testing Time: 177.57s
    Expected Passes    : 16594
    Expected Failures  : 129
    Unsupported Tests  : 186

Linux (Ubuntu 16.04 LTS): CPython3.5.1:
---------------------------------------

  cmake ../llvm -G Ninja -DPYTHON_EXECUTABLE:FILEPATH=$(which python3)
  ninja check-llvm
  [127/127] Running the LLVM regression tests
  Testing Time: 201.90s
    Expected Passes    : 16594
    Expected Failures  : 129
    Unsupported Tests  : 186

win32 (Windows 7 Pro 64bit): CPython3.5.1 32bitWoW:
---------------------------------------------------

Too many failures to include (missing grep)
snip of output:

  call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
  cmake ..\llvm -G Ninja -DPYTHON_EXECUTABLE:FILEPATH=C:\Python27-64\python.exe
  [...]
  ninja check-llvm
  [...]
  ********************
  Testing: 0 .. 10.. 20.. 30..
  FAIL: LLVM :: CodeGen/PowerPC/store-load-fwd.ll (6621 of 16916)
  ******************** TEST 'LLVM :: CodeGen/PowerPC/store-load-fwd.ll' FAILED ********************
  Script:
  --
  C:/Users/luke/llvm-upstream/build-py27-64/./bin\llc.EXE < C:\Users\luke\llvm-upstream\llvm\test\CodeGen\PowerPC\store-load-fw
  d.ll -march=ppc32 | C:/Users/luke/llvm-upstream/build-py27-64/./bin\not.EXE grep lwz
  --
  Exit Code: 1
  
  Command Output (stdout):
  --
  Command 0: "C:/Users/luke/llvm-upstream/build-py27-64/./bin\llc.EXE" "-march=ppc32"
  Command 0 Result: 0
  Command 0 Output:
          .text
          .file   "<stdin>"
          .globl  test
          .p2align        2
          .type   test, at function
  test:                                   # @test
  .Lfunc_begin0:
          .cfi_startproc
  # BB#0:
          li 4, 1
          stw 4, 0(3)
          li 3, 1
          blr
  .Lfunc_end0:
          .size   test, .Lfunc_end0-.Lfunc_begin0
          .cfi_endproc
  
  
          .section        ".note.GNU-stack","", at progbits
  
  
  Command 0 Stderr:
  
  
  Command 1: "C:/Users/luke/llvm-upstream/build-py27-64/./bin\not.EXE" "grep" "lwz"
  Command 1 Result: 1
  Command 1 Output:
  
  
  Command 1 Stderr:
  Error: Unable to find `grep' in PATH: no such file or directory
  [...]

win32 (Windows 7 Pro 64bit): CPython2.7.11 64bit MSVC 2015:
-----------------------------------------------------------

Same results as above

Darwin Mac OS X; Apple Clang 500.2.76 (LLVM 3.3); Brew CPython3.5.1:
--------------------------------------------------------------------

  cmake ../llvm -G Ninja -DPYTHON_EXECUTABLE:FILEPATH=$(which python2)
  # [...]
  ninja check-llvm
  # [...]
  [1/1] Running the LLVM regression tests
  FAIL: LLVM-Unit :: Support/SupportTests/TrailingObjects.TwoArg (1471 of 16920)
  ******************** TEST 'LLVM-Unit :: Support/SupportTests/TrailingObjects.TwoArg' FAILED ********************
  Note: Google Test filter = TrailingObjects.TwoArg
  [==========] Running 1 test from 1 test case.
  [----------] Global test environment set-up.
  [----------] 1 test from TrailingObjects
  [ RUN      ] TrailingObjects.TwoArg
  ~/llvm-git/llvm/unittests/Support/TrailingObjectsTest.cpp:125: Failure
  Value of: llvm::alignOf<double>()
    Actual: 8
  Expected: llvm::alignOf<Class2>()
  Which is: 1
  [  FAILED  ] TrailingObjects.TwoArg (0 ms)
  [----------] 1 test from TrailingObjects (0 ms total)
  
  [----------] Global test environment tear-down
  [==========] 1 test from 1 test case ran. (0 ms total)
  [  PASSED  ] 0 tests.
  [  FAILED  ] 1 test, listed below:
  [  FAILED  ] TrailingObjects.TwoArg
  
   1 FAILED TEST
  
  ********************
  FAIL: LLVM :: tools/lto/hide-linkonce-odr.ll (16917 of 16920)
  ******************** TEST 'LLVM :: tools/lto/hide-linkonce-odr.ll' FAILED ********************
  Script:
  --
  ~/llvm-git/build-py35/./bin/llvm-as ~/llvm-git/llvm/test/tools/lto/hide-linkonce-odr.ll -o ~/llvm-git/build-py35/test/tools/lto/Output/hide-linkonce-odr.ll.tmp.o
  /usr/bin/ld -lto_library ~/llvm-git/build-py35/./lib/libLTO.dylib -dylib -arch x86_64 -macosx_version_min 10.10.0 -lSystem -o ~/llvm-git/build-py35/test/tools/lto/Output/hide-linkonce-odr.ll.tmp.dylib ~/llvm-git/build-py35/test/tools/lto/Output/hide-linkonce-odr.ll.tmp.o -save-temps  -undefined dynamic_lookup -exported_symbol _c -exported_symbol _b  -exported_symbol _GlobLinkonce
  ~/llvm-git/build-py35/./bin/llvm-dis ~/llvm-git/build-py35/test/tools/lto/Output/hide-linkonce-odr.ll.tmp.dylib.lto.opt.bc -o - | ~/llvm-git/build-py35/./bin/FileCheck --check-prefix=IR ~/llvm-git/llvm/test/tools/lto/hide-linkonce-odr.ll
  ~/llvm-git/build-py35/./bin/llvm-nm ~/llvm-git/build-py35/test/tools/lto/Output/hide-linkonce-odr.ll.tmp.dylib | ~/llvm-git/build-py35/./bin/FileCheck --check-prefix=NM ~/llvm-git/llvm/test/tools/lto/hide-linkonce-odr.ll
  --
  Exit Code: 1
  
  Command Output (stderr):
  --
  ld: could not parse object file ~/llvm-git/build-py35/test/tools/lto/Output/hide-linkonce-odr.ll.tmp.o: 'Global not a pointer type!', using libLTO version 'LLVM version 3.3svn, from Apple Clang 5.0 (build 500.2.76)' file '~/llvm-git/build-py35/test/tools/lto/Output/hide-linkonce-odr.ll.tmp.o' for architecture x86_64
  
  --
  
  ********************
  FAIL: LLVM :: tools/lto/opt-level.ll (16918 of 16920)
  ******************** TEST 'LLVM :: tools/lto/opt-level.ll' FAILED ********************
  Script:
  --
  ~/llvm-git/build-py35/./bin/llvm-as ~/llvm-git/llvm/test/tools/lto/opt-level.ll -o ~/llvm-git/build-py35/test/tools/lto/Output/opt-level.ll.tmp.o
  /usr/bin/ld -lto_library ~/llvm-git/build-py35/./lib/libLTO.dylib -arch x86_64 -dylib -mllvm -O0 -o ~/llvm-git/build-py35/test/tools/lto/Output/opt-level.ll.tmp.dylib ~/llvm-git/build-py35/test/tools/lto/Output/opt-level.ll.tmp.o
  ~/llvm-git/build-py35/./bin/llvm-nm -no-llvm-bc ~/llvm-git/build-py35/test/tools/lto/Output/opt-level.ll.tmp.dylib | ~/llvm-git/build-py35/./bin/FileCheck --check-prefix=CHECK-O0 ~/llvm-git/llvm/test/tools/lto/opt-level.ll
  /usr/bin/ld -lto_library ~/llvm-git/build-py35/./lib/libLTO.dylib -arch x86_64 -dylib -mllvm -O2 -o ~/llvm-git/build-py35/test/tools/lto/Output/opt-level.ll.tmp.dylib ~/llvm-git/build-py35/test/tools/lto/Output/opt-level.ll.tmp.o
  ~/llvm-git/build-py35/./bin/llvm-nm -no-llvm-bc ~/llvm-git/build-py35/test/tools/lto/Output/opt-level.ll.tmp.dylib | ~/llvm-git/build-py35/./bin/FileCheck --check-prefix=CHECK-O2 ~/llvm-git/llvm/test/tools/lto/opt-level.ll
  --
  Exit Code: 1
  
  Command Output (stderr):
  --
  ld: warning: -macosx_version_min not specified, assuming 10.8
  ld: could not parse object file ~/llvm-git/build-py35/test/tools/lto/Output/opt-level.ll.tmp.o: 'Function not a pointer type!', using libLTO version 'LLVM version 3.3svn, from Apple Clang 5.0 (build 500.2.76)' file '~/llvm-git/build-py35/test/tools/lto/Output/opt-level.ll.tmp.o' for architecture x86_64
  
  --
  
  ********************
  FAIL: LLVM :: tools/lto/print-stats.ll (16919 of 16920)
  ******************** TEST 'LLVM :: tools/lto/print-stats.ll' FAILED ********************
  Script:
  --
  ~/llvm-git/build-py35/./bin/llvm-as ~/llvm-git/llvm/test/tools/lto/print-stats.ll -o ~/llvm-git/build-py35/test/tools/lto/Output/print-stats.ll.tmp.o
  /usr/bin/ld -lto_library ~/llvm-git/build-py35/./lib/libLTO.dylib -arch x86_64 -dylib -mllvm -stats -o ~/llvm-git/build-py35/test/tools/lto/Output/print-stats.ll.tmp.dylib ~/llvm-git/build-py35/test/tools/lto/Output/print-stats.ll.tmp.o 2>&1 | ~/llvm-git/build-py35/./bin/FileCheck --check-prefix=STATS ~/llvm-git/llvm/test/tools/lto/print-stats.ll
  /usr/bin/ld -lto_library ~/llvm-git/build-py35/./lib/libLTO.dylib -arch x86_64 -dylib -o ~/llvm-git/build-py35/test/tools/lto/Output/print-stats.ll.tmp.dylib ~/llvm-git/build-py35/test/tools/lto/Output/print-stats.ll.tmp.o 2>&1 | ~/llvm-git/build-py35/./bin/FileCheck --check-prefix=NO_STATS ~/llvm-git/llvm/test/tools/lto/print-stats.ll
  --
  Exit Code: 1
  
  Command Output (stderr):
  --
  ~/llvm-git/llvm/test/tools/lto/print-stats.ll:8:10: error: expected string not found in input
  ; STATS: Statistics Collected
           ^
  <stdin>:1:1: note: scanning from here
  ld: warning: -macosx_version_min not specified, assuming 10.8
  ^
  <stdin>:1:27: note: possible intended match here
  ld: warning: -macosx_version_min not specified, assuming 10.8
                            ^
  
  --
  
  ********************
  Testing Time: 773.60s
  ********************
  Failing Tests (4):
      LLVM-Unit :: Support/SupportTests/TrailingObjects.TwoArg
      LLVM :: tools/lto/hide-linkonce-odr.ll
      LLVM :: tools/lto/opt-level.ll
      LLVM :: tools/lto/print-stats.ll
  
    Expected Passes    : 16591
    Expected Failures  : 135
    Unsupported Tests  : 190
    Unexpected Failures: 4
  FAILED: cd ~/llvm-git/build-py35/test && /usr/local/bin/python3 ~/llvm-git/llvm/utils/lit/lit.py -sv --param llvm_site_config=~/llvm-git/build-py35/test/lit.site.cfg --param llvm_unit_site_config=~/llvm-git/build-py35/test/Unit/lit.site.cfg ~/llvm-git/build-py35/test
  ninja: build stopped: subcommand failed.

Darwin Mac OS X; Apple Clang 500.2.76 (LLVM 3.3): Brew CPython2.7.11:
---------------------------------------------------------------------

  Same result as above


Repository:
  rL LLVM

http://reviews.llvm.org/D20825





More information about the llvm-commits mailing list