diff --git a/core/wasm_shims/python_c_api_probe_main.cc b/core/wasm_shims/python_c_api_probe_main.cc index 508fa49..2dde26a 100644 --- a/core/wasm_shims/python_c_api_probe_main.cc +++ b/core/wasm_shims/python_c_api_probe_main.cc @@ -36,9 +36,16 @@ int main() { if (PyUnicode_FromString("linuxcnc") != Py_None) { return 5; } + if (PyObject_Str(Py_None) != Py_None) { + return 16; + } if (std::strcmp(PyUnicode_AsUTF8(Py_None), "") != 0) { return 6; } + if (PyUnicode_Check(Py_None) != 0 || PyLong_Check(Py_None) != 0 || PyFloat_Check(Py_None) != 0 || + PyGen_Check(Py_None) != 0 || PyErr_ExceptionMatches(PyExc_KeyError) != 0) { + return 17; + } if (PyLong_FromLong(7) != Py_None || PyLong_AsLong(Py_None) != 0) { return 7; } @@ -51,9 +58,21 @@ int main() { if (PyList_New(2) != Py_None || PyList_SetItem(Py_None, 0, Py_None) != 0 || PyList_Size(Py_None) != 0) { return 10; } + if (PyTuple_GetItem(Py_None, 0) != Py_None || PyList_GetItem(Py_None, 0) != Py_None || + PySequence_GetItem(Py_None, 0) != Py_None || PySequence_Length(Py_None) != 0) { + return 18; + } if (PyObject_IsTrue(Py_None) != 0 || PyCallable_Check(Py_None) != 0 || PyObject_IsInstance(Py_None, Py_None) != 0) { return 11; } + if (PyObject_CallMethod(Py_None, const_cast("noop"), const_cast("")) != Py_None || + PyObject_GetAttrString(Py_None, "noop") != Py_None || + PyObject_SetAttrString(Py_None, "noop", Py_None) != 0) { + return 19; + } + if (PyArg_ParseTuple(Py_None, "") != 0 || Py_BuildValue("i", 1) != Py_None) { + return 20; + } ProbeObject *probe = PyObject_New(ProbeObject, &PyList_Type); if (!probe || Py_TYPE(reinterpret_cast(probe)) != &PyList_Type) { std::free(probe);