1module linker_test_2 1.0; 2 3require { 4 class file { read write }; 5 class lnk_file { unlink }; 6 attribute g_b_attr_5; 7 attribute g_b_attr_6; 8 attribute g_m1_attr_3; 9 attribute o3_m1_attr_2; 10} 11 12type tag_g_m2; 13 14type g_m2_type_1; 15role g_m2_role_1; 16role g_m2_role_1 types g_m2_type_1; 17 18type g_m2_type_4, g_b_attr_5; 19type g_m2_type_5, g_b_attr_6; 20 21#add types to role declared in base test 22type g_m2_type_2; 23role g_b_role_3; 24role g_b_role_3 types g_m2_type_2; 25 26#optional base role w/ adds in 2 modules 27role o4_b_role_1; 28role o4_b_role_1 types g_m2_type_1; 29 30# attr a added to in base optional, declared/added to in module, added to in other module 31type g_m2_type_3, g_m1_attr_3; 32 33# attr a added to in base optional, declared/added in module optional, added to in other module 34type g_m2_type_6, o3_m1_attr_2; 35 36# cond mapping tests 37bool g_m2_bool_1 true; 38bool g_m2_bool_2 false; 39if (g_m2_bool_1 && g_m2_bool_2) { 40 allow g_m2_type_1 g_m2_type_2 : lnk_file unlink; 41} 42 43optional { 44 require { 45 type optional_type; 46 } 47 48 type tag_o1_m2; 49 50 type o1_m2_type_1; 51 role o1_m2_role_1; 52 role o1_m2_role_1 types o1_m2_type_1; 53} 54 55 56optional { 57 require { 58 attribute g_m1_attr_4; 59 attribute o4_m1_attr_1; 60 } 61 type tag_o2_m2; 62 63 type o2_m2_type_1, g_m1_attr_4; 64 type o2_m2_type_2, o4_m1_attr_1; 65 66} 67