summaryrefslogtreecommitdiffstats
path: root/Modules/_testcapi
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-04-25 05:16:43 (GMT)
committerGitHub <noreply@github.com>2024-04-25 05:16:43 (GMT)
commit33d1cfffe150c667aa64c52e1bdd929e227e6212 (patch)
treea1fdb7db53726b02f7a1d4312045f51318e95cdd /Modules/_testcapi
parentc784b3e8fc9d87630c19bbc213c05754d8a3f175 (diff)
downloadcpython-33d1cfffe150c667aa64c52e1bdd929e227e6212.zip
cpython-33d1cfffe150c667aa64c52e1bdd929e227e6212.tar.gz
cpython-33d1cfffe150c667aa64c52e1bdd929e227e6212.tar.bz2
[3.12] gh-117968: Make the test for closed file more safe in the C API tests (GH-118230) (GH-118266)
The behavior of fileno() after fclose() is undefined, but it is the only practical way to check whether the file was closed. Only test this on the known platforms (Linux, Windows, macOS), where we already tested that it works. (cherry picked from commit 546cbcfa0eeeb533950bd49e30423f3d3bbd5ebe) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Diffstat (limited to 'Modules/_testcapi')
-rw-r--r--Modules/_testcapi/run.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/Modules/_testcapi/run.c b/Modules/_testcapi/run.c
index baf728c..16c7b75 100644
--- a/Modules/_testcapi/run.c
+++ b/Modules/_testcapi/run.c
@@ -75,8 +75,10 @@ run_fileexflags(PyObject *mod, PyObject *pos_args)
result = PyRun_FileExFlags(fp, filename, start, globals, locals, closeit, pflags);
-#if !defined(__wasi__)
- /* The behavior of fileno() after fclose() is undefined. */
+#if defined(__linux__) || defined(MS_WINDOWS) || defined(__APPLE__)
+ /* The behavior of fileno() after fclose() is undefined, but it is
+ * the only practical way to check whether the file was closed.
+ * Only test this on the known platforms. */
if (closeit && result && fileno(fp) >= 0) {
PyErr_SetString(PyExc_AssertionError, "File was not closed after excution");
Py_DECREF(result);