Skip to content

Commit d0bff6b

Browse files
committed
Implement C API function PyErr_SetFromErrnoWithFilename
1 parent f85e33b commit d0bff6b

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

graalpython/com.oracle.graal.python.cext/src/errors.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,16 @@ PyObject* PyErr_SetFromErrno(PyObject* exc) {
212212
return PyErr_SetFromErrnoWithFilenameObjects(exc, NULL, NULL);
213213
}
214214

215+
// taken from CPython "Python/errors.c"
216+
PyObject *
217+
PyErr_SetFromErrnoWithFilename(PyObject *exc, const char *filename)
218+
{
219+
PyObject *name = filename ? PyUnicode_DecodeFSDefault(filename) : NULL;
220+
PyObject *result = PyErr_SetFromErrnoWithFilenameObjects(exc, name, NULL);
221+
Py_XDECREF(name);
222+
return result;
223+
}
224+
215225
// taken from CPython "Python/errors.c"
216226
PyObject* PyErr_SetFromErrnoWithFilenameObject(PyObject* exc, PyObject* filenameObject) {
217227
return PyErr_SetFromErrnoWithFilenameObjects(exc, filenameObject, NULL);

graalpython/lib-graalpython/modules/hpy/test/test_hpyerr.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,6 @@ def test_HPyErr_SetFromErrno(self):
170170

171171
assert err.value.errno == errno.EINVAL
172172

173-
@pytest.mark.skip(reason="GR-40178")
174173
def test_HPyErr_SetFromErrnoWithFilenameObjects(self):
175174
import pytest
176175
import errno
@@ -208,7 +207,6 @@ def test_HPyErr_SetFromErrnoWithFilenameObjects(self):
208207
assert err.value.filename == file1
209208
assert err.value.filename2 == file2
210209

211-
@pytest.mark.skip(reason="GR-40178")
212210
def test_HPyErr_SetFromErrnoWithFilename(self):
213211
import pytest
214212
import errno

0 commit comments

Comments
 (0)