| 193 | } |
| 194 | |
| 195 | static PyObject* SymSanTerminate(PyObject *self) { |
| 196 | if (symsan_terminate() != 0) { |
| 197 | PyErr_SetString(PyExc_RuntimeError, "failed to terminate target"); |
| 198 | return NULL; |
| 199 | } |
| 200 | |
| 201 | int status, is_killed; |
| 202 | is_killed = symsan_get_exit_status(&status); |
| 203 | |
| 204 | PyObject *ret = PyTuple_New(2); |
| 205 | PyTuple_SetItem(ret, 0, PyLong_FromLong(status)); |
| 206 | PyTuple_SetItem(ret, 1, PyLong_FromLong(is_killed)); |
| 207 | |
| 208 | return ret; |
| 209 | } |
| 210 | |
| 211 | static PyObject* SymSanDestroy(PyObject *self) { |
| 212 | if (__z3_parser != nullptr) { |
nothing calls this directly
no test coverage detected