int main(void) { xorn_revision_t rev0, rev1, rev2, rev3; xorn_object_t ob0, ob1a, ob1b; xorn_revision_t rev4; setup(&rev0, &rev1, &rev2, &rev3, &ob0, &ob1a, &ob1b); rev4 = xorn_new_revision(rev3); assert(rev4 != NULL); assert(xornsch_add_line(rev4, NULL) == NULL); assert(xornsch_set_line_data(rev4, ob0, NULL) == -1); xorn_finalize_revision(rev4); xorn_free_revision(rev4); xorn_free_revision(rev3); xorn_free_revision(rev2); xorn_free_revision(rev1); xorn_free_revision(rev0); return 0; }
int main(void) { xorn_revision_t rev; struct xornsch_net net_data; struct xornsch_text text_data; xorn_object_t N, a, b; xorn_revision_t rev1; struct xornsch_line line_data; struct xornsch_component component_data; assert(rev = xorn_new_revision(NULL)); memset(&net_data, 0, sizeof net_data); assert(N = xornsch_add_net(rev, &net_data)); memset(&text_data, 0, sizeof text_data); assert(a = xornsch_add_text(rev, &text_data)); assert(b = xornsch_add_text(rev, &text_data)); common_checks(rev, N, a, b, N, a, b); /* can move objects */ do_it(rev, N, _, _, 0, a, b, N, &check2, N, a, b); do_it(rev, N, _, a, 0, N, a, b, &check0, N, a, b); do_it(rev, N, _, b, 0, a, N, b, &check1, N, a, b); do_it(rev, a, _, _, 0, N, b, a, &check0, N, b, a); do_it(rev, a, _, N, 0, a, N, b, &check1, N, a, b); do_it(rev, a, _, b, 0, N, a, b, &check0, N, a, b); do_it(rev, b, _, N, 0, b, N, a, &check1, N, b, a); do_it(rev, b, _, a, 0, N, b, a, &check0, N, b, a); do_it(rev, b, _, _, 0, N, a, b, &check0, N, a, b); /* can embed a to N, but not before b */ do_it(rev, a, N, _, 0, N, a, b, &check3, N, a, b); do_it(rev, a, N, b, -1, N, a, b, &check3, N, a, b); do_it(rev, b, _, N, 0, b, N, a, &check4, N, b, a); do_it(rev, b, _, a, -1, b, N, a, &check4, N, b, a); do_it(rev, b, _, _, 0, N, a, b, &check3, N, a, b); do_it(rev, a, _, b, 0, N, a, b, &check0, N, a, b); /* can embed b to N, but not before a */ do_it(rev, b, N, _, 0, N, b, a, &check3, N, b, a); do_it(rev, b, N, a, -1, N, b, a, &check3, N, b, a); do_it(rev, a, _, N, 0, a, N, b, &check4, N, a, b); do_it(rev, a, _, b, -1, a, N, b, &check4, N, a, b); do_it(rev, a, _, _, 0, N, b, a, &check3, N, b, a); do_it(rev, b, _, _, 0, N, a, b, &check0, N, a, b); /* can embed both */ do_it(rev, a, N, _, 0, N, a, b, &check3, N, a, b); do_it(rev, b, N, _, 0, N, a, b, &check5, N, a, b); do_it(rev, a, N, _, 0, N, b, a, &check5, N, b, a); do_it(rev, a, N, b, 0, N, a, b, &check5, N, a, b); do_it(rev, b, N, a, 0, N, b, a, &check5, N, b, a); do_it(rev, b, N, _, 0, N, a, b, &check5, N, a, b); do_it(rev, a, _, _, 0, N, b, a, &check3, N, b, a); do_it(rev, b, _, _, 0, N, a, b, &check0, N, a, b); xorn_finalize_revision(rev); common_checks(rev, N, a, b, N, a, b); check(rev, N, _, _, -1, N, a, b); check(rev, N, _, a, -1, N, a, b); check(rev, N, _, b, -1, N, a, b); check(rev, a, _, _, -1, N, a, b); check(rev, a, _, N, -1, N, a, b); check(rev, a, _, b, -1, N, a, b); check(rev, a, N, _, -1, N, a, b); check(rev, b, _, _, -1, N, a, b); check(rev, b, _, N, -1, N, a, b); check(rev, b, _, a, -1, N, a, b); check(rev, b, N, _, -1, N, a, b); assert(rev1 = xorn_new_revision(rev)); /* can't attach text to line */ memset(&line_data, 0, sizeof line_data); assert(xornsch_set_line_data(rev1, N, &line_data) == 0); do_it(rev1, a, N, _, -1, N, a, b, &check0, N, a, b); /* can attach text to component */ memset(&component_data, 0, sizeof component_data); assert(xornsch_set_component_data(rev1, N, &component_data) == 0); do_it(rev1, a, N, _, 0, N, a, b, &check3, N, a, b); xorn_free_revision(rev1); xorn_free_revision(rev); return 0; }
int main() { xorn_revision_t rev; xorn_object_t ob0, ob1; struct xornsch_line line_data; struct xornsch_net net_data; struct xornsch_component component_data; struct xornsch_text text_data; memset(&line_data, 0, sizeof line_data); memset(&net_data, 0, sizeof net_data); memset(&component_data, 0, sizeof component_data); memset(&text_data, 0, sizeof text_data); assert(rev = xorn_new_revision(NULL)); assert(ob0 = xornsch_add_line(rev, &line_data)); assert(ob1 = xornsch_add_line(rev, &line_data)); assert(xornsch_set_net_data(rev, ob0, &net_data) == 0); assert(xornsch_set_text_data(rev, ob1, &text_data) == 0); check_not_attached(rev, ob0, ob1); /* data can be set without the object being reordered */ assert(xornsch_set_line_data(rev, ob0, &line_data) == 0); check_not_attached(rev, ob0, ob1); assert(xornsch_set_net_data(rev, ob0, &net_data) == 0); check_not_attached(rev, ob0, ob1); assert(xornsch_set_line_data(rev, ob1, &line_data) == 0); check_not_attached(rev, ob0, ob1); assert(xornsch_set_net_data(rev, ob1, &net_data) == 0); check_not_attached(rev, ob0, ob1); /* objects are re-added at the end */ xorn_delete_object(rev, ob0); assert(xornsch_set_line_data(rev, ob0, &line_data) == 0); check_not_attached(rev, ob1, ob0); xorn_delete_object(rev, ob0); assert(xornsch_set_line_data(rev, ob0, &line_data) == 0); check_not_attached(rev, ob1, ob0); xorn_delete_object(rev, ob1); assert(xornsch_set_line_data(rev, ob1, &line_data) == 0); check_not_attached(rev, ob0, ob1); xorn_delete_object(rev, ob1); assert(xornsch_set_line_data(rev, ob1, &line_data) == 0); check_not_attached(rev, ob0, ob1); xorn_delete_object(rev, ob0); assert(xornsch_set_net_data(rev, ob0, &net_data) == 0); check_not_attached(rev, ob1, ob0); xorn_delete_object(rev, ob0); assert(xornsch_set_net_data(rev, ob0, &net_data) == 0); check_not_attached(rev, ob1, ob0); xorn_delete_object(rev, ob1); assert(xornsch_set_net_data(rev, ob1, &net_data) == 0); check_not_attached(rev, ob0, ob1); xorn_delete_object(rev, ob1); assert(xornsch_set_net_data(rev, ob1, &net_data) == 0); check_not_attached(rev, ob0, ob1); /* can change ob0 to any type while no object is attached */ assert(xornsch_set_line_data(rev, ob0, &line_data) == 0); check_not_attached(rev, ob0, ob1); assert(xornsch_set_component_data(rev, ob0, &component_data) == 0); check_not_attached(rev, ob0, ob1); assert(xornsch_set_text_data(rev, ob0, &text_data) == 0); check_not_attached(rev, ob0, ob1); assert(xornsch_set_net_data(rev, ob0, &net_data) == 0); check_not_attached(rev, ob0, ob1); /* can change type of ob1 while not attached */ assert(xornsch_set_line_data(rev, ob1, &line_data) == 0); check_not_attached(rev, ob0, ob1); assert(xornsch_set_net_data(rev, ob1, &net_data) == 0); check_not_attached(rev, ob0, ob1); assert(xornsch_set_component_data(rev, ob1, &component_data) == 0); check_not_attached(rev, ob0, ob1); assert(xornsch_set_text_data(rev, ob1, &text_data) == 0); check_not_attached(rev, ob0, ob1); assert(xorn_relocate_object(rev, ob1, ob0, NULL) == 0); check_attached(rev, ob0, ob1); /* can't change ob0 to line or text while an object is attached */ assert(xornsch_set_line_data(rev, ob0, &line_data) == -1); check_attached(rev, ob0, ob1); assert(xornsch_set_net_data(rev, ob0, &net_data) == 0); check_attached(rev, ob0, ob1); assert(xornsch_set_component_data(rev, ob0, &component_data) == 0); check_attached(rev, ob0, ob1); assert(xornsch_set_text_data(rev, ob0, &text_data) == -1); check_attached(rev, ob0, ob1); /* can't change type of ob1 while attached */ assert(xornsch_set_line_data(rev, ob1, &line_data) == -1); check_attached(rev, ob0, ob1); assert(xornsch_set_net_data(rev, ob1, &net_data) == -1); check_attached(rev, ob0, ob1); assert(xornsch_set_component_data(rev, ob1, &component_data) == -1); check_attached(rev, ob0, ob1); assert(xornsch_set_text_data(rev, ob1, &text_data) == 0); check_attached(rev, ob0, ob1); xorn_free_revision(rev); return 0; }