int main(void) { xorn_revision_t rev0, rev1, rev2, rev3; xorn_object_t ob0, ob1a, ob1b; xorn_object_t *objects; size_t count; setup(&rev0, &rev1, &rev2, &rev3, &ob0, &ob1a, &ob1b); assert(xorn_get_added_objects(rev0, rev1, &objects, &count) == 0); assert(objects != NULL); assert(count == 1); assert(objects[0] == ob0); free(objects); assert(xorn_get_removed_objects(rev0, rev1, &objects, &count) == 0); assert(count == 0); free(objects); assert(xorn_get_modified_objects(rev0, rev1, &objects, &count) == 0); assert(count == 0); free(objects); assert(xorn_get_added_objects(rev1, rev2, &objects, &count) == 0); assert(objects != NULL); assert(count == 2); assert((objects[0] == ob1a && objects[1] == ob1b) || (objects[0] == ob1b && objects[1] == ob1a)); free(objects); assert(xorn_get_removed_objects(rev1, rev2, &objects, &count) == 0); assert(count == 0); free(objects); assert(xorn_get_modified_objects(rev1, rev2, &objects, &count) == 0); assert(count == 0); free(objects); assert(xorn_get_added_objects(rev2, rev3, &objects, &count) == 0); assert(count == 0); free(objects); assert(xorn_get_removed_objects(rev2, rev3, &objects, &count) == 0); assert(objects != NULL); assert(count == 1); assert(objects[0] == ob1a); free(objects); assert(xorn_get_modified_objects(rev2, rev3, &objects, &count) == 0); assert(objects != NULL); assert(count == 1); assert(objects[0] == ob0); free(objects); xorn_free_revision(rev3); xorn_free_revision(rev2); xorn_free_revision(rev1); xorn_free_revision(rev0); return 0; }
static PyObject *get_added_objects( PyObject *self, PyObject *args, PyObject *kwds) { PyObject *from_arg = NULL, *to_arg = NULL; static char *kwlist[] = { "from", "to", NULL }; if (!PyArg_ParseTupleAndKeywords( args, kwds, "O!O!:get_added_objects", kwlist, &RevisionType, &from_arg, &RevisionType, &to_arg)) return NULL; xorn_object_t *objects; size_t count; if (xorn_get_added_objects(((Revision *)from_arg)->rev, ((Revision *)to_arg)->rev, &objects, &count) == -1) return PyErr_NoMemory(); return to_python_list(objects, count); }