1. 24 Feb, 2017 1 commit
    • Jason Rhinelander's avatar
      Independent tests (#665) · 60d0e0db
      Jason Rhinelander authored
      * Make tests buildable independently
      
      This makes "tests" buildable as a separate project that uses
      find_package(pybind11 CONFIG) when invoked independently.
      
      This also moves the WERROR option into tests/CMakeLists.txt, as that's
      the only place it is used.
      
      * Use Eigen 3.3.1's cmake target, if available
      
      This changes the eigen finding code to attempt to use Eigen's
      system-installed Eigen3Config first.  In Eigen 3.3.1, it exports a cmake
      Eigen3::Eigen target to get dependencies from (rather than setting the
      include path directly).
      
      If it fails, we fall back to the trying to load allowing modules (i.e.
      allowing our tools/FindEigen3.cmake).  If we either fallback, or the
      eigen version is older than 3.3.1 (or , we still set the include
      directory manually; otherwise, for CONFIG + new Eigen, we get it via
      the target.
      
      This is also needed to allow 'tests' to be built independently, when
      the find_package(Eigen3) is going to find via the system-installed
      Eigen3Config.cmake.
      
      * Add a install-then-build test, using clang on linux
      
      This tests that `make install` to the actual system, followed by a build
      of the tests (without the main pybind11 repository available) works as
      expected.
      
      To also expand the testing variety a bit, it also builds using
      clang-3.9 instead of gcc.
      
      * Don't try loading Eigen3Config in cmake < 3.0
      
      It could FATAL_ERROR as the newer cmake includes a cmake 3.0 required
      line.
      
      If doing an independent, out-of-tree "tests" build, the regular
      find_package(Eigen3) is likely to fail with the same error, but I think
      we can just let that be: if you want a recent Eigen with proper cmake
      loading support *and* want to do an independent tests build, you'll
      need at least cmake 3.0.
      60d0e0db
  2. 14 Feb, 2017 1 commit
    • Jason Rhinelander's avatar
      Temporary gcc travis-ci build fixes · ada763b9
      Jason Rhinelander authored
      Recent gcc snapshots (both gcc 7 snapshots and recent gcc 6 stable
      branch snapshots) are triggering an upstream gcc bug when -flto is
      enabled (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79296).  This has
      been hitting the gcc-7 builds for a while now, but is going to start
      hitting the debian testing builds in a few days as well.
      
      The issue is triggered by using -flto in combination with structs or
      classes declared in a function, as done in test_alias_initialization,
      test_isses, test_methods_and_attributes (and possibly more).
      
      I'm subscribed to the upstream bug, and will submit another PR to
      reenable LTO once a fixed gcc is available.
      
      The gcc-7 build also generates some warnings; just ignore them for now
      (by turning off -Werror).
      ada763b9
  3. 31 Jan, 2017 2 commits
  4. 01 Jan, 2017 1 commit
  5. 26 Dec, 2016 1 commit
  6. 19 Dec, 2016 1 commit
    • Dean Moldovan's avatar
      Make sure add_subdirectory and find_package behave identically · b0f3885c
      Dean Moldovan authored
      Add a BUILD_INTERFACE and a pybind11::pybind11 alias for the interface
      library to match the installed target.
      
      Add new cmake tests for add_subdirectory and consolidates the
      .cpp and .py files needed for the cmake build tests:
      
      Before:
      tests
      |-- test_installed_module
      |   |-- CMakeLists.txt
      |   |-- main.cpp
      |   \-- test.py
      \-- test_installed_target
          |-- CMakeLists.txt
          |-- main.cpp
          \-- test.py
      
      After:
      tests
      \-- test_cmake_build
          |-- installed_module/CMakeLists.txt
          |-- installed_target/CMakeLists.txt
          |-- subdirectory_module/CMakeLists.txt
          |-- subdirectory_target/CMakeLists.txt
          |-- main.cpp
          \-- test.py
      b0f3885c
  7. 16 Dec, 2016 1 commit
    • Wenzel Jakob's avatar
      WIP: PyPy support (#527) · 1d1f81b2
      Wenzel Jakob authored
      This commit includes modifications that are needed to get pybind11 to work with PyPy. The full test suite compiles and runs except for a last few functions that are commented out (due to problems in PyPy that were reported on the PyPy bugtracker).
      
      Two somewhat intrusive changes were needed to make it possible: two new tags ``py::buffer_protocol()`` and ``py::metaclass()`` must now be specified to the ``class_`` constructor if the class uses the buffer protocol and/or requires a metaclass (e.g. for static properties).
      
      Note that this is only for the PyPy version based on Python 2.7 for now. When the PyPy 3.x has caught up in terms of cpyext compliance, a PyPy 3.x patch will follow.
      1d1f81b2
  8. 15 Dec, 2016 1 commit
  9. 14 Dec, 2016 1 commit
    • Jason Rhinelander's avatar
      Add gcc-7 build from debian experimental · a3d41d10
      Jason Rhinelander authored
      Add a build using g++-7 snapshot from debian experimental.  This build
      is set to allow failures without triggering an overall build failure
      (since this is an experimental compiler with experimental support for a
      future C++ standard).
      a3d41d10
  10. 13 Dec, 2016 1 commit
  11. 11 Dec, 2016 1 commit
  12. 09 Dec, 2016 1 commit
  13. 20 Nov, 2016 1 commit
  14. 11 Nov, 2016 1 commit
  15. 12 Sep, 2016 1 commit
  16. 10 Sep, 2016 1 commit
    • Jason Rhinelander's avatar
      apt-get tweaks for the debian builds · bf14cea7
      Jason Rhinelander authored
      - Try to update and upgrade twice (with a brief pause between attempts)
        to deal with occassional spurious server failures or repository race
        conditions.  Do the same for the main package install.
      - Use dist-upgrade instead of upgrade for updating the image
      - Add -q to the upgrade and install commands to make apt less verbose.
      bf14cea7
  17. 28 Aug, 2016 1 commit
  18. 26 Aug, 2016 3 commits
    • Jason Rhinelander's avatar
      Don't install pytest from cmake, just fail instead · dd3d56a8
      Jason Rhinelander authored
      Installing something outside the project directory from a cmake
      invocation is overly intrusive; this changes tests/CMakeLists.txt to
      just fail with an informative message instead, and changes the
      travis-ci builds to install pytest via pip or apt-get.
      dd3d56a8
    • Dean Moldovan's avatar
      Fix Travis cache config: remove ccache, add OS X pip cache · 14bd10d6
      Dean Moldovan authored
      ccache on Travis was never configured properly so the setting never
      actually did anything. Enabling ccache for real brings other issues:
      due to the way the preprocessor is handled, some of the Python header
      macros produce bogus compiler warnings (which in turn produce errors
      with -Werror). ccache also requires additional configuration on OS X
      and docker. It would reduce compile time by ~30 seconds at best, so
      it's not worth the trouble.
      
      [skip appveyor]
      14bd10d6
    • Dean Moldovan's avatar
      Add barebones build to Travis CI · b62a896f
      Dean Moldovan authored
      This build makes sure everything still works without optional
      dependencies (numpy/scipy/eigen) and also tests the automatic
      discovery functions in CMake (Python version, C++ standard).
      
      [skip appveyor]
      b62a896f
  19. 19 Aug, 2016 2 commits
    • Dean Moldovan's avatar
      Automatically install pytest from CMake · 18319d55
      Dean Moldovan authored
      Pytest is a development dependency but we can make it painless by
      automating the install using CMake.
      18319d55
    • Dean Moldovan's avatar
      Port tests to pytest · a0c1ccf0
      Dean Moldovan authored
      Use simple asserts and pytest's powerful introspection to make testing
      simpler. This merges the old .py/.ref file pairs into simple .py files
      where the expected values are right next to the code being tested.
      
      This commit does not touch the C++ part of the code and replicates the
      Python tests exactly like the old .ref-file-based approach.
      a0c1ccf0
  20. 17 Aug, 2016 3 commits
  21. 15 Aug, 2016 2 commits
    • Dean Moldovan's avatar
      00a30095
    • Jason Rhinelander's avatar
      Add g++-6 builds to travis-ci · 024ce447
      Jason Rhinelander authored
      The current linux/g++ testing (using a backported g++-4.8 on a
      4-year-old Ubuntu) is quite ancient.  It's good as a baseline level of
      support, but it means we aren't testing g++'s C++14 support at all
      (which is why #334 happened).
      
      This commit adds a docker-based travis-ci build using the debian
      "testing" distribution, which will give us both another test system
      (with different versions of build tools), while, more importantly, also
      adding a build and test run using g++ in C++14 mode.
      024ce447
  22. 01 Aug, 2016 1 commit
  23. 30 Jul, 2016 1 commit
  24. 02 Jun, 2016 2 commits
  25. 22 May, 2016 1 commit
  26. 21 May, 2016 1 commit
  27. 21 Jan, 2016 1 commit
  28. 24 Nov, 2015 1 commit
  29. 18 Oct, 2015 1 commit
  30. 11 Oct, 2015 1 commit