示例#1
0
文件: stat.c 项目: bert/geda-gaf
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;
}
示例#2
0
文件: module.c 项目: SayCV/geda-gaf
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);
}