16cd6a6acSopenharmony_cimodule linker_test_2 1.0; 26cd6a6acSopenharmony_ci 36cd6a6acSopenharmony_cirequire { 46cd6a6acSopenharmony_ci class file { read write }; 56cd6a6acSopenharmony_ci class lnk_file { unlink }; 66cd6a6acSopenharmony_ci attribute g_b_attr_5; 76cd6a6acSopenharmony_ci attribute g_b_attr_6; 86cd6a6acSopenharmony_ci attribute g_m1_attr_3; 96cd6a6acSopenharmony_ci attribute o3_m1_attr_2; 106cd6a6acSopenharmony_ci} 116cd6a6acSopenharmony_ci 126cd6a6acSopenharmony_citype tag_g_m2; 136cd6a6acSopenharmony_ci 146cd6a6acSopenharmony_citype g_m2_type_1; 156cd6a6acSopenharmony_cirole g_m2_role_1; 166cd6a6acSopenharmony_cirole g_m2_role_1 types g_m2_type_1; 176cd6a6acSopenharmony_ci 186cd6a6acSopenharmony_citype g_m2_type_4, g_b_attr_5; 196cd6a6acSopenharmony_citype g_m2_type_5, g_b_attr_6; 206cd6a6acSopenharmony_ci 216cd6a6acSopenharmony_ci#add types to role declared in base test 226cd6a6acSopenharmony_citype g_m2_type_2; 236cd6a6acSopenharmony_cirole g_b_role_3; 246cd6a6acSopenharmony_cirole g_b_role_3 types g_m2_type_2; 256cd6a6acSopenharmony_ci 266cd6a6acSopenharmony_ci#optional base role w/ adds in 2 modules 276cd6a6acSopenharmony_cirole o4_b_role_1; 286cd6a6acSopenharmony_cirole o4_b_role_1 types g_m2_type_1; 296cd6a6acSopenharmony_ci 306cd6a6acSopenharmony_ci# attr a added to in base optional, declared/added to in module, added to in other module 316cd6a6acSopenharmony_citype g_m2_type_3, g_m1_attr_3; 326cd6a6acSopenharmony_ci 336cd6a6acSopenharmony_ci# attr a added to in base optional, declared/added in module optional, added to in other module 346cd6a6acSopenharmony_citype g_m2_type_6, o3_m1_attr_2; 356cd6a6acSopenharmony_ci 366cd6a6acSopenharmony_ci# cond mapping tests 376cd6a6acSopenharmony_cibool g_m2_bool_1 true; 386cd6a6acSopenharmony_cibool g_m2_bool_2 false; 396cd6a6acSopenharmony_ciif (g_m2_bool_1 && g_m2_bool_2) { 406cd6a6acSopenharmony_ci allow g_m2_type_1 g_m2_type_2 : lnk_file unlink; 416cd6a6acSopenharmony_ci} 426cd6a6acSopenharmony_ci 436cd6a6acSopenharmony_cioptional { 446cd6a6acSopenharmony_ci require { 456cd6a6acSopenharmony_ci type optional_type; 466cd6a6acSopenharmony_ci } 476cd6a6acSopenharmony_ci 486cd6a6acSopenharmony_ci type tag_o1_m2; 496cd6a6acSopenharmony_ci 506cd6a6acSopenharmony_ci type o1_m2_type_1; 516cd6a6acSopenharmony_ci role o1_m2_role_1; 526cd6a6acSopenharmony_ci role o1_m2_role_1 types o1_m2_type_1; 536cd6a6acSopenharmony_ci} 546cd6a6acSopenharmony_ci 556cd6a6acSopenharmony_ci 566cd6a6acSopenharmony_cioptional { 576cd6a6acSopenharmony_ci require { 586cd6a6acSopenharmony_ci attribute g_m1_attr_4; 596cd6a6acSopenharmony_ci attribute o4_m1_attr_1; 606cd6a6acSopenharmony_ci } 616cd6a6acSopenharmony_ci type tag_o2_m2; 626cd6a6acSopenharmony_ci 636cd6a6acSopenharmony_ci type o2_m2_type_1, g_m1_attr_4; 646cd6a6acSopenharmony_ci type o2_m2_type_2, o4_m1_attr_1; 656cd6a6acSopenharmony_ci 666cd6a6acSopenharmony_ci} 67