summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pyinterp.cc5
-rw-r--r--test/CMakeLists.txt6
-rw-r--r--test/unit/CMakeLists.txt2
3 files changed, 9 insertions, 4 deletions
diff --git a/src/pyinterp.cc b/src/pyinterp.cc
index 5381758e..72995eb6 100644
--- a/src/pyinterp.cc
+++ b/src/pyinterp.cc
@@ -151,6 +151,11 @@ void python_interpreter_t::initialize()
DEBUG("python.interp", "Initializing Python");
#if PY_MAJOR_VERSION >= 3
+ // Unbuffer stdio to avoid python output getting stuck in buffer when
+ // stdout is not a TTY. Normally buffers are flushed by Py_Finalize but
+ // Boost has a long-standing issue preventing proper shutdown of the
+ // interpreter with Py_Finalize when embedded.
+ Py_UnbufferedStdioFlag = 1;
// PyImport_AppendInittab docs: "This should be called before Py_Initialize()".
PyImport_AppendInittab((char*)"ledger", PyInit_ledger);
#endif
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index a0905004..c1dde710 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -34,7 +34,7 @@ macro(add_ledger_harness_tests _class)
$<TARGET_FILE:ledger> ${PROJECT_SOURCE_DIR}
${TestFile} ${TEST_PYTHON_FLAGS})
set_tests_properties(${_class}Test_${TestFile_Name}
- PROPERTIES ENVIRONMENT "PYTHONUNBUFFERED=1;TZ=${Ledger_TEST_TIMEZONE}")
+ PROPERTIES ENVIRONMENT "TZ=${Ledger_TEST_TIMEZONE}")
endif()
endforeach()
endif()
@@ -53,7 +53,7 @@ if (Python_EXECUTABLE)
COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/test/${_class}.py
--ledger $<TARGET_FILE:ledger> --file ${TestFile})
set_tests_properties(${_class}Test_${TestFile_Name}
- PROPERTIES ENVIRONMENT "PYTHONUNBUFFERED=1;TZ=${Ledger_TEST_TIMEZONE}")
+ PROPERTIES ENVIRONMENT "TZ=${Ledger_TEST_TIMEZONE}")
endforeach()
# CheckManpage and CheckTexinfo are disabled, since they do not work
@@ -64,7 +64,7 @@ if (Python_EXECUTABLE)
COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/test/${_class}.py
--ledger $<TARGET_FILE:ledger> --source ${PROJECT_SOURCE_DIR})
set_tests_properties(${_class}
- PROPERTIES ENVIRONMENT "PYTHONUNBUFFERED=1;TZ=${Ledger_TEST_TIMEZONE}")
+ PROPERTIES ENVIRONMENT "TZ=${Ledger_TEST_TIMEZONE}")
endforeach()
endif()
diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt
index 4a9911c5..1bd5e4b3 100644
--- a/test/unit/CMakeLists.txt
+++ b/test/unit/CMakeLists.txt
@@ -2,7 +2,7 @@ macro(add_ledger_test _name)
target_link_libraries(${_name} libledger)
add_test(Ledger${_name} ${PROJECT_BINARY_DIR}/${_name})
set_tests_properties(Ledger${_name}
- PROPERTIES ENVIRONMENT "PYTHONUNBUFFERED=1;TZ=${Ledger_TEST_TIMEZONE}")
+ PROPERTIES ENVIRONMENT "TZ=${Ledger_TEST_TIMEZONE}")
endmacro(add_ledger_test _name)
include_directories(${PROJECT_SOURCE_DIR}/src)