Issue 4957
Let os.ftruncate raise OSError like documented.
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 2c9d9bf..5c94d7d 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -570,10 +570,9 @@
if hasattr(os, "fpathconf"):
self.assertRaises(OSError, os.fpathconf, 10, "PC_NAME_MAX")
- #this is a weird one, it raises IOError unlike the others
def test_ftruncate(self):
if hasattr(os, "ftruncate"):
- self.assertRaises(IOError, os.ftruncate, 10, 0)
+ self.assertRaises(OSError, os.ftruncate, 10, 0)
def test_lseek(self):
if hasattr(os, "lseek"):
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index a1c3444..915d30d 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -6633,7 +6633,7 @@
res = ftruncate(fd, length);
Py_END_ALLOW_THREADS
if (res < 0) {
- PyErr_SetFromErrno(PyExc_IOError);
+ posix_error();
return NULL;
}
Py_INCREF(Py_None);