forked from pool/boost
Accepting request 1197908 from home:aschnell:boost
- update to 1.86.0
* process turned into compile library
* for details on all changes see,
https://www.boost.org/users/history/version_1_86_0.html
- boost-aarch64-flags.patch: updated
- boost-1.57.0-python-abi_letters.patch: updated
- boost-process.patch: removed (included upstream)
- boost-charconv-quadmath.patch: removed (improved upstream)
OBS-URL: https://build.opensuse.org/request/show/1197908
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/boost?expand=0&rev=330
This commit is contained in:
87
boost-1.55.0-python-test-PyImport_AppendInittab.patch
Normal file
87
boost-1.55.0-python-test-PyImport_AppendInittab.patch
Normal file
@@ -0,0 +1,87 @@
|
||||
Index: boost_1_63_0/libs/python/test/exec.cpp
|
||||
===================================================================
|
||||
--- boost_1_63_0.orig/libs/python/test/exec.cpp
|
||||
+++ boost_1_63_0/libs/python/test/exec.cpp
|
||||
@@ -56,8 +56,24 @@ void eval_test()
|
||||
BOOST_TEST(value == "ABCDEFG");
|
||||
}
|
||||
|
||||
+struct PyCtx
|
||||
+{
|
||||
+ PyCtx() {
|
||||
+ Py_Initialize();
|
||||
+ }
|
||||
+
|
||||
+ ~PyCtx() {
|
||||
+ // N.B. certain problems may arise when Py_Finalize is called when
|
||||
+ // using Boost.Python. However in this test suite it all seems to
|
||||
+ // work fine.
|
||||
+ Py_Finalize();
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
void exec_test()
|
||||
{
|
||||
+ PyCtx ctx;
|
||||
+
|
||||
// Retrieve the main module
|
||||
python::object main = python::import("__main__");
|
||||
|
||||
@@ -138,6 +154,19 @@ void check_pyerr(bool pyerr_expected=fal
|
||||
}
|
||||
}
|
||||
|
||||
+template <class Cb>
|
||||
+bool
|
||||
+run_and_handle_exception(Cb cb, bool pyerr_expected = false)
|
||||
+{
|
||||
+ PyCtx ctx;
|
||||
+ if (python::handle_exception(cb)) {
|
||||
+ check_pyerr(pyerr_expected);
|
||||
+ return true;
|
||||
+ } else {
|
||||
+ return false;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
BOOST_TEST(argc == 2 || argc == 3);
|
||||
@@ -156,29 +185,19 @@ int main(int argc, char **argv)
|
||||
"builtin modules");
|
||||
}
|
||||
|
||||
- // Initialize the interpreter
|
||||
- Py_Initialize();
|
||||
-
|
||||
- if (python::handle_exception(eval_test)) {
|
||||
+ // N.B. exec_test mustn't be called through run_and_handle_exception
|
||||
+ // as it needs to handles the python context by itself.
|
||||
+ if (run_and_handle_exception(eval_test)
|
||||
+ || python::handle_exception(exec_test))
|
||||
check_pyerr();
|
||||
- }
|
||||
- else if(python::handle_exception(exec_test)) {
|
||||
- check_pyerr();
|
||||
- }
|
||||
- else if (python::handle_exception(boost::bind(exec_file_test, script))) {
|
||||
- check_pyerr();
|
||||
- }
|
||||
-
|
||||
- if (python::handle_exception(exec_test_error))
|
||||
- {
|
||||
- check_pyerr(/*pyerr_expected*/ true);
|
||||
- }
|
||||
else
|
||||
- {
|
||||
+ run_and_handle_exception(boost::bind(exec_file_test, script));
|
||||
+
|
||||
+ if (!run_and_handle_exception(exec_test_error, true))
|
||||
BOOST_ERROR("Python exception expected, but not seen.");
|
||||
- }
|
||||
|
||||
if (argc > 2) {
|
||||
+ PyCtx ctx;
|
||||
// The main purpose is to test compilation. Since this test generates
|
||||
// a file and I (rwgk) am uncertain about the side-effects, run it only
|
||||
// if explicitly requested.
|
||||
Reference in New Issue
Block a user