netlist: Fix component refdes mangling
[geda-gaf.git] / tests / storage / copy_objects.c
blobcb6cea3b48a51750bc224d4cd6361a17f44cad84
1 /* Copyright (C) 2013-2020 Roland Lutz
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 2 of the License, or
6 (at your option) any later version.
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, write to the Free Software Foundation,
15 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
17 #include "Setup.h"
18 #include <stdlib.h>
21 int main(void)
23 xorn_revision_t rev0, rev1, rev2, rev3;
24 xorn_object_t ob0, ob1a, ob1b;
26 xorn_selection_t sel0, sel1;
27 xorn_revision_t rev4;
29 xorn_object_t *objects;
30 size_t count;
32 setup(&rev0, &rev1, &rev2, &rev3, &ob0, &ob1a, &ob1b);
34 rev4 = xorn_new_revision(rev2);
35 assert(rev4 != NULL);
37 sel0 = xorn_select_all(rev3);
38 assert(sel0 != NULL);
40 sel1 = xorn_copy_objects(rev4, rev2, sel0, NULL);
41 assert(sel1 != NULL);
43 xorn_finalize_revision(rev4);
45 assert(xorn_object_is_selected(rev4, sel0, ob0));
46 assert(!xorn_object_is_selected(rev4, sel0, ob1a));
47 assert(xorn_object_is_selected(rev4, sel0, ob1b));
49 assert(!xorn_object_is_selected(rev4, sel1, ob0));
50 assert(!xorn_object_is_selected(rev4, sel1, ob1a));
51 assert(!xorn_object_is_selected(rev4, sel1, ob1b));
53 assert(xorn_get_objects(rev4, &objects, &count) == 0);
54 assert(objects != NULL);
55 assert(count == 5);
57 assert(objects[0] == ob0);
58 assert(objects[1] == ob1a);
59 assert(objects[2] == ob1b);
61 assert(!xorn_object_is_selected(rev4, sel0, objects[3]));
62 assert(!xorn_object_is_selected(rev4, sel0, objects[4]));
64 assert(xorn_object_is_selected(rev4, sel1, objects[3]));
65 assert(xorn_object_is_selected(rev4, sel1, objects[4]));
67 free(objects);
69 xorn_free_selection(sel1);
70 xorn_free_selection(sel0);
72 xorn_free_revision(rev4);
73 xorn_free_revision(rev3);
74 xorn_free_revision(rev2);
75 xorn_free_revision(rev1);
76 xorn_free_revision(rev0);
77 return 0;