Index: tests/conf/tests/Makefile =================================================================== --- tests/conf/tests/Makefile (revision 2269) +++ tests/conf/tests/Makefile (revision 2270) @@ -1,6 +1,7 @@ TESTS = \ list_merge.diff \ list_set.diff \ + arr_merge.diff \ arr_set.diff \ scalar.diff Index: tests/conf/tests/arr_merge.ref =================================================================== --- tests/conf/tests/arr_merge.ref (nonexistent) +++ tests/conf/tests/arr_merge.ref (revision 2270) @@ -0,0 +1,31 @@ +=== initial state: empty === + I design/default_layer_name[] = +=== import 3 levels === +Result: 0 + I design/default_layer_name[0] = sys1 <> conf_rev=1 + I design/default_layer_name[1] = sys2 <> conf_rev=1 +Result: 0 + I design/default_layer_name[0] = user1 <> conf_rev=2 + I design/default_layer_name[1] = user2 <> conf_rev=2 +Result: 0 + I design/default_layer_name[0] = design1 <> conf_rev=3 + I design/default_layer_name[1] = design2 <> conf_rev=3 +=== change policy: design->prepend (design, user) === + I design/default_layer_name[0] = design1 <> conf_rev=4 + I design/default_layer_name[1] = design2 <> conf_rev=4 + I design/default_layer_name[2] = user1 <> conf_rev=4 + I design/default_layer_name[3] = user2 <> conf_rev=4 +=== change policy: user->append (design, sys, user) === + I design/default_layer_name[0] = design1 <> conf_rev=5 + I design/default_layer_name[1] = design2 <> conf_rev=5 + I design/default_layer_name[2] = sys1 <> conf_rev=5 + I design/default_layer_name[3] = sys2 <> conf_rev=5 + I design/default_layer_name[4] = user1 <> conf_rev=5 + I design/default_layer_name[5] = user2 <> conf_rev=5 +=== change policy: design->append (sys, user, design) === + I design/default_layer_name[0] = sys1 <> conf_rev=6 + I design/default_layer_name[1] = sys2 <> conf_rev=6 + I design/default_layer_name[2] = user1 <> conf_rev=6 + I design/default_layer_name[3] = user2 <> conf_rev=6 + I design/default_layer_name[4] = design1 <> conf_rev=6 + I design/default_layer_name[5] = design2 <> conf_rev=6 Index: tests/conf/tests/arr_merge.test =================================================================== --- tests/conf/tests/arr_merge.test (nonexistent) +++ tests/conf/tests/arr_merge.test (revision 2270) @@ -0,0 +1,49 @@ +echo === initial state: empty === +reset * +dump native design/default_layer_name + +echo === import 3 levels === +paste system \ + li:pcb-rnd-conf-v1 { \ + ha:overwrite { \ + ha:design { \ + li:default_layer_name = { sys1; sys2 } \ + } \ + } \ + } +dump native design/default_layer_name + +paste user \ + li:pcb-rnd-conf-v1 { \ + ha:overwrite { \ + ha:design { \ + li:default_layer_name = { user1; user2 } \ + } \ + } \ + } +dump native design/default_layer_name + +paste design \ + li:pcb-rnd-conf-v1 { \ + ha:overwrite { \ + ha:design { \ + li:default_layer_name = { design1; design2 } \ + } \ + } \ + } +dump native design/default_layer_name + +echo === change policy: design->prepend (design, user) === +role design +chpolicy prepend +dump native design/default_layer_name + +echo === change policy: user->append (design, sys, user) === +role user +chpolicy append +dump native design/default_layer_name + +echo === change policy: design->append (sys, user, design) === +role design +chpolicy append +dump native design/default_layer_name