CI fixes (#1744)
* Fix warning that not including a cmake source or build dir will be a fatal error (it is now on newest CMakes)
* Fixes appveyor
* Travis uses CMake 3.9 for more than a year now
* Travis dropped sudo: false in December
* Dropping Sphinx 2
- clang7: Suppress self-assign warnings; fix missing virtual dtors
- pypy:
- Keep old version (newer stuff breaks)
- Pin packages to extra index for speed
- travis:
- Make docker explicit; remove docker if not needed
- Make commands more verbose (for debugging / repro)
- Make Ubuntu dist explicit per job
- Fix Windows
- Add names to travis
diff --git a/tests/test_gil_scoped.cpp b/tests/test_gil_scoped.cpp
index a94b7a2..cb0010e 100644
--- a/tests/test_gil_scoped.cpp
+++ b/tests/test_gil_scoped.cpp
@@ -13,6 +13,7 @@
class VirtClass {
public:
+ virtual ~VirtClass() {}
virtual void virtual_func() {}
virtual void pure_virtual_func() = 0;
};
diff --git a/tests/test_kwargs_and_defaults.cpp b/tests/test_kwargs_and_defaults.cpp
index 2263b6b..6563fb9 100644
--- a/tests/test_kwargs_and_defaults.cpp
+++ b/tests/test_kwargs_and_defaults.cpp
@@ -34,7 +34,9 @@
m.def("kw_func_udl_z", kw_func, "x"_a, "y"_a=0);
// test_args_and_kwargs
- m.def("args_function", [](py::args args) -> py::tuple { return args; });
+ m.def("args_function", [](py::args args) -> py::tuple {
+ return std::move(args);
+ });
m.def("args_kwargs_function", [](py::args args, py::kwargs kwargs) {
return py::make_tuple(args, kwargs);
});
diff --git a/tests/test_operator_overloading.cpp b/tests/test_operator_overloading.cpp
index 4ad34d1..8ca7d8b 100644
--- a/tests/test_operator_overloading.cpp
+++ b/tests/test_operator_overloading.cpp
@@ -62,6 +62,25 @@
};
}
+// MSVC warns about unknown pragmas, and warnings are errors.
+#ifndef _MSC_VER
+ #pragma GCC diagnostic push
+ // clang 7.0.0 and Apple LLVM 10.0.1 introduce `-Wself-assign-overloaded` to
+ // `-Wall`, which is used here for overloading (e.g. `py::self += py::self `).
+ // Here, we suppress the warning using `#pragma diagnostic`.
+ // Taken from: https://github.com/RobotLocomotion/drake/commit/aaf84b46
+ // TODO(eric): This could be resolved using a function / functor (e.g. `py::self()`).
+ #if (__APPLE__) && (__clang__)
+ #if (__clang_major__ >= 10) && (__clang_minor__ >= 0) && (__clang_patchlevel__ >= 1)
+ #pragma GCC diagnostic ignored "-Wself-assign-overloaded"
+ #endif
+ #elif (__clang__)
+ #if (__clang_major__ >= 7)
+ #pragma GCC diagnostic ignored "-Wself-assign-overloaded"
+ #endif
+ #endif
+#endif
+
TEST_SUBMODULE(operators, m) {
// test_operator_overloading
@@ -144,3 +163,7 @@
.def_readwrite("b", &NestC::b);
m.def("get_NestC", [](const NestC &c) { return c.value; });
}
+
+#ifndef _MSC_VER
+ #pragma GCC diagnostic pop
+#endif
diff --git a/tests/test_smart_ptr.cpp b/tests/test_smart_ptr.cpp
index 5f1fd07..87c9be8 100644
--- a/tests/test_smart_ptr.cpp
+++ b/tests/test_smart_ptr.cpp
@@ -336,7 +336,9 @@
// test_shared_ptr_gc
// #187: issue involving std::shared_ptr<> return value policy & garbage collection
- struct ElementBase { virtual void foo() { } /* Force creation of virtual table */ };
+ struct ElementBase {
+ virtual ~ElementBase() { } /* Force creation of virtual table */
+ };
py::class_<ElementBase, std::shared_ptr<ElementBase>>(m, "ElementBase");
struct ElementA : ElementBase {
diff --git a/tests/test_virtual_functions.cpp b/tests/test_virtual_functions.cpp
index c9a561c..ccf018d 100644
--- a/tests/test_virtual_functions.cpp
+++ b/tests/test_virtual_functions.cpp
@@ -129,6 +129,7 @@
class NCVirt {
public:
+ virtual ~NCVirt() { }
virtual NonCopyable get_noncopyable(int a, int b) { return NonCopyable(a, b); }
virtual Movable get_movable(int a, int b) = 0;