<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Running python tests is fragile"
   href="https://bugs.llvm.org/show_bug.cgi?id=42462">42462</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Running python tests is fragile
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>libclang
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>ro@gcc.gnu.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>klimek@google.com, llvm-bugs@lists.llvm.org, richard-llvm@metafoo.co.uk
          </td>
        </tr></table>
      <p>
        <div>
        <pre>I've found several times that running clang's python binding tests is quite
fragile, as witnessed by the number of cases disabling them in
bindings/python/tests/CMakeLists.txt.

There are two issues here:

* It isn't obvious to me why failure to run those tests should break make
  check-all.  Why is this test so different from a random other test that 
  just FAILs in such a case?

* What has been bothering me lately is running the binding tests on multilib
  targets like Solaris or Linux/x86_64.  Only when the python binary in PATH
  and lib/libclang.so match (same ELF class, same ABI) will the tests run.  On
  Solaris 11 there happen to be both 32 and 64-bit python binaries
(/usr/bin/python,
  32-bit, and /usr/bin/64/python, 64-bit), so by selecting the proper PATH the
  tests *can* run.  On Linux/x86_64 however, when building llvm for the
  i686-pc-linux-gnu target, libclang.so will be 32-bit while /usr/bin/python
  is 64-bit and no 32-bit python is available.

Either the build framework should test that libclang is usable with the python
around (using something like

import ctypes
ctypes.cdll.LoadLibrary("lib/libclang.so")

) or be way less sensitive to mismatches here.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>