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