984 amxc_var_t* ptr_a = NULL;
985 amxc_var_t* ptr_b = NULL;
989 amxd_trans_init(&trans);
990 amxd_trans_set_attr(&trans, amxd_tattr_change_ro,
true);
992 amxc_var_init(&data_a);
993 amxc_var_init(&data_b);
997 assert_int_equal(amxb_get(
bus_ctx,
"A.A_template_sub.1.A_sub.", 0, &data_a, 5), 0);
998 assert_int_not_equal(amxb_get(
bus_ctx,
"B.B_template_sub.1.B_sub.", 0, &data_b, 5), 0);
1001 assert_int_equal(amxo_parser_start_synchronize(
test_get_parser()), 0);
1003 assert_int_equal(amxb_get(
bus_ctx,
"A.A_template_sub.1.A_sub.", 0, &data_a, 5), 0);
1004 assert_int_equal(amxb_get(
bus_ctx,
"B.B_template_sub.1.B_sub.", 0, &data_b, 5), 0);
1005 ptr_a = GETP_ARG(&data_a,
"0.'A.A_template_sub.1.A_sub.'.text_A");
1006 ptr_b = GETP_ARG(&data_b,
"0.'B.B_template_sub.1.B_sub.'.text_B");
1007 assert_string_equal(GET_CHAR(ptr_b, NULL),
"I am A sub");
1008 assert_int_equal(amxc_var_compare(ptr_a, ptr_b, &ret), 0);
1009 assert_int_equal(ret, 0);
1013 assert_int_equal(amxb_get(
bus_ctx,
"A.A_template_sub.1.A_sub.", 0, &data_a, 5), 0);
1014 assert_int_equal(amxb_get(
bus_ctx,
"B.B_template_sub.1.B_sub.", 0, &data_b, 5), 0);
1015 ptr_a = GETP_ARG(&data_a,
"0.'A.A_template_sub.1.A_sub.'.text_A");
1016 ptr_b = GETP_ARG(&data_b,
"0.'B.B_template_sub.1.B_sub.'.text_B");
1017 assert_string_equal(GET_CHAR(ptr_b, NULL),
"I am A sub");
1018 assert_int_equal(amxc_var_compare(ptr_a, ptr_b, &ret), 0);
1019 assert_int_equal(ret, 0);
1021 amxd_trans_select_pathf(&trans,
"A.A_template_sub.");
1022 amxd_trans_add_inst(&trans, 2, NULL);
1023 amxd_trans_set_value(cstring_t, &trans,
"A_sub.text_A",
"Changed text");
1024 assert_int_equal(amxd_trans_apply(&trans,
test_get_dm()), 0);
1025 amxd_trans_clean(&trans);
1028 assert_int_equal(amxb_get(
bus_ctx,
"A.A_template_sub.2.A_sub.", 0, &data_a, 5), 0);
1029 assert_int_equal(amxb_get(
bus_ctx,
"B.B_template_sub.2.B_sub.", 0, &data_b, 5), 0);
1030 ptr_a = GETP_ARG(&data_a,
"0.'A.A_template_sub.2.A_sub.'.text_A");
1031 ptr_b = GETP_ARG(&data_b,
"0.'B.B_template_sub.2.B_sub.'.text_B");
1032 assert_string_equal(GET_CHAR(ptr_b, NULL),
"Changed text");
1033 assert_int_equal(amxc_var_compare(ptr_a, ptr_b, &ret), 0);
1034 assert_int_equal(ret, 0);
1036 amxd_trans_select_pathf(&trans,
"A.A_template_sub.");
1037 amxd_trans_add_inst(&trans, 3, NULL);
1038 assert_int_equal(amxd_trans_apply(&trans,
test_get_dm()), 0);
1039 amxd_trans_clean(&trans);
1042 assert_int_equal(amxb_get(
bus_ctx,
"A.A_template_sub.3.A_sub.", 0, &data_a, 5), 0);
1043 assert_int_equal(amxb_get(
bus_ctx,
"B.B_template_sub.3.B_sub.", 0, &data_b, 5), 0);
1044 ptr_a = GETP_ARG(&data_a,
"0.'A.A_template_sub.3.A_sub.'.text_A");
1045 ptr_b = GETP_ARG(&data_b,
"0.'B.B_template_sub.3.B_sub.'.text_B");
1046 assert_string_equal(GET_CHAR(ptr_b, NULL),
"I am A sub");
1047 assert_int_equal(amxc_var_compare(ptr_a, ptr_b, &ret), 0);
1048 assert_int_equal(ret, 0);
1050 amxd_trans_select_pathf(&trans,
"B.B_template_sub.");
1051 amxd_trans_add_inst(&trans, 4, NULL);
1052 assert_int_equal(amxd_trans_apply(&trans,
test_get_dm()), 0);
1053 amxd_trans_clean(&trans);
1056 assert_int_equal(amxb_get(
bus_ctx,
"A.A_template_sub.4.A_sub.", 0, &data_a, 5), 0);
1057 assert_int_equal(amxb_get(
bus_ctx,
"B.B_template_sub.4.B_sub.", 0, &data_b, 5), 0);
1058 ptr_a = GETP_ARG(&data_a,
"0.'A.A_template_sub.4.A_sub.'.text_A");
1059 ptr_b = GETP_ARG(&data_b,
"0.'B.B_template_sub.4.B_sub.'.text_B");
1060 assert_string_equal(GET_CHAR(ptr_b, NULL),
"I am B sub");
1061 assert_int_equal(amxc_var_compare(ptr_a, ptr_b, &ret), 0);
1062 assert_int_equal(ret, 0);
1064 amxc_var_clean(&data_a);
1065 amxc_var_clean(&data_b);
1066 amxd_trans_clean(&trans);