xref: /aosp_15_r20/external/selinux/secilc/test/in_test.cil (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1*2d543d20SAndroid Build Coastguard Worker;; Minimum stuff
2*2d543d20SAndroid Build Coastguard Worker(class CLASS (PERM))
3*2d543d20SAndroid Build Coastguard Worker(classorder (CLASS))
4*2d543d20SAndroid Build Coastguard Worker(sid SID)
5*2d543d20SAndroid Build Coastguard Worker(sidorder (SID))
6*2d543d20SAndroid Build Coastguard Worker(user USER)
7*2d543d20SAndroid Build Coastguard Worker(role ROLE)
8*2d543d20SAndroid Build Coastguard Worker(type TYPE)
9*2d543d20SAndroid Build Coastguard Worker(category CAT)
10*2d543d20SAndroid Build Coastguard Worker(categoryorder (CAT))
11*2d543d20SAndroid Build Coastguard Worker(sensitivity SENS)
12*2d543d20SAndroid Build Coastguard Worker(sensitivityorder (SENS))
13*2d543d20SAndroid Build Coastguard Worker(sensitivitycategory SENS (CAT))
14*2d543d20SAndroid Build Coastguard Worker(allow TYPE self (CLASS (PERM)))
15*2d543d20SAndroid Build Coastguard Worker(roletype ROLE TYPE)
16*2d543d20SAndroid Build Coastguard Worker(userrole USER ROLE)
17*2d543d20SAndroid Build Coastguard Worker(userlevel USER (SENS))
18*2d543d20SAndroid Build Coastguard Worker(userrange USER ((SENS)(SENS (CAT))))
19*2d543d20SAndroid Build Coastguard Worker(sidcontext SID (USER ROLE TYPE ((SENS)(SENS))))
20*2d543d20SAndroid Build Coastguard Worker;; Extra stuff
21*2d543d20SAndroid Build Coastguard Worker(common COMMON (PERM1 PERM2 PERM3 PERM4))
22*2d543d20SAndroid Build Coastguard Worker(classcommon CLASS COMMON)
23*2d543d20SAndroid Build Coastguard Worker
24*2d543d20SAndroid Build Coastguard Worker
25*2d543d20SAndroid Build Coastguard Worker;; Check that "in" statements work in blocks
26*2d543d20SAndroid Build Coastguard Worker(block b1
27*2d543d20SAndroid Build Coastguard Worker  (type t1a)
28*2d543d20SAndroid Build Coastguard Worker  (allow t1b self (CLASS (PERM1)))
29*2d543d20SAndroid Build Coastguard Worker)
30*2d543d20SAndroid Build Coastguard Worker
31*2d543d20SAndroid Build Coastguard Worker(in b1
32*2d543d20SAndroid Build Coastguard Worker  (type t1b)
33*2d543d20SAndroid Build Coastguard Worker  (allow t1a self (CLASS (PERM1)))
34*2d543d20SAndroid Build Coastguard Worker)
35*2d543d20SAndroid Build Coastguard Worker
36*2d543d20SAndroid Build Coastguard Worker(in b1
37*2d543d20SAndroid Build Coastguard Worker  (allow t1a self (CLASS (PERM2)))
38*2d543d20SAndroid Build Coastguard Worker  (allow b1.t1a self (CLASS (PERM3)))
39*2d543d20SAndroid Build Coastguard Worker  (allow .b1.t1a self (CLASS (PERM4)))
40*2d543d20SAndroid Build Coastguard Worker
41*2d543d20SAndroid Build Coastguard Worker  (allow t1b self (CLASS (PERM2)))
42*2d543d20SAndroid Build Coastguard Worker  (allow b1.t1b self (CLASS (PERM3)))
43*2d543d20SAndroid Build Coastguard Worker  (allow .b1.t1b self (CLASS (PERM4)))
44*2d543d20SAndroid Build Coastguard Worker)
45*2d543d20SAndroid Build Coastguard Worker
46*2d543d20SAndroid Build Coastguard Worker
47*2d543d20SAndroid Build Coastguard Worker;; Check that "in" statements work in optionals
48*2d543d20SAndroid Build Coastguard Worker(optional option2
49*2d543d20SAndroid Build Coastguard Worker  (type t2a)
50*2d543d20SAndroid Build Coastguard Worker  (allow t2b self (CLASS (PERM1)))
51*2d543d20SAndroid Build Coastguard Worker)
52*2d543d20SAndroid Build Coastguard Worker
53*2d543d20SAndroid Build Coastguard Worker(in option2
54*2d543d20SAndroid Build Coastguard Worker  (type t2b)
55*2d543d20SAndroid Build Coastguard Worker  (allow t2a self (CLASS (PERM1)))
56*2d543d20SAndroid Build Coastguard Worker)
57*2d543d20SAndroid Build Coastguard Worker
58*2d543d20SAndroid Build Coastguard Worker(in option2
59*2d543d20SAndroid Build Coastguard Worker  (allow t2a self (CLASS (PERM2)))
60*2d543d20SAndroid Build Coastguard Worker  (allow t2b self (CLASS (PERM2)))
61*2d543d20SAndroid Build Coastguard Worker)
62*2d543d20SAndroid Build Coastguard Worker
63*2d543d20SAndroid Build Coastguard Worker(allow t2a self (CLASS (PERM3)))
64*2d543d20SAndroid Build Coastguard Worker(allow t2b self (CLASS (PERM3)))
65*2d543d20SAndroid Build Coastguard Worker
66*2d543d20SAndroid Build Coastguard Worker
67*2d543d20SAndroid Build Coastguard Worker;; Check that "in" statements work in macros
68*2d543d20SAndroid Build Coastguard Worker(type t3a)
69*2d543d20SAndroid Build Coastguard Worker(type t3b)
70*2d543d20SAndroid Build Coastguard Worker(macro m3 ((type t))
71*2d543d20SAndroid Build Coastguard Worker  (allow t3a self (CLASS (PERM1)))
72*2d543d20SAndroid Build Coastguard Worker  (allow t self (CLASS (PERM1)))
73*2d543d20SAndroid Build Coastguard Worker)
74*2d543d20SAndroid Build Coastguard Worker
75*2d543d20SAndroid Build Coastguard Worker(call m3 (t3b))
76*2d543d20SAndroid Build Coastguard Worker
77*2d543d20SAndroid Build Coastguard Worker(in m3
78*2d543d20SAndroid Build Coastguard Worker  (allow t3a self (CLASS (PERM2)))
79*2d543d20SAndroid Build Coastguard Worker)
80*2d543d20SAndroid Build Coastguard Worker
81*2d543d20SAndroid Build Coastguard Worker(in m3
82*2d543d20SAndroid Build Coastguard Worker  (allow t self (CLASS (PERM3)))
83*2d543d20SAndroid Build Coastguard Worker)
84*2d543d20SAndroid Build Coastguard Worker
85*2d543d20SAndroid Build Coastguard Worker
86*2d543d20SAndroid Build Coastguard Worker;; Check "in" statements work for nested optionals
87*2d543d20SAndroid Build Coastguard Worker(optional o4a
88*2d543d20SAndroid Build Coastguard Worker  (optional o4b
89*2d543d20SAndroid Build Coastguard Worker    (type t4b)
90*2d543d20SAndroid Build Coastguard Worker    (allow t4b self (CLASS (PERM1)))
91*2d543d20SAndroid Build Coastguard Worker  )
92*2d543d20SAndroid Build Coastguard Worker)
93*2d543d20SAndroid Build Coastguard Worker
94*2d543d20SAndroid Build Coastguard Worker(in o4a.o4b
95*2d543d20SAndroid Build Coastguard Worker  (allow t4b self (CLASS (PERM2)))
96*2d543d20SAndroid Build Coastguard Worker)
97*2d543d20SAndroid Build Coastguard Worker
98*2d543d20SAndroid Build Coastguard Worker
99*2d543d20SAndroid Build Coastguard Worker;; Check "in: statements work for nested optionals and macros
100*2d543d20SAndroid Build Coastguard Worker(macro m5 ()
101*2d543d20SAndroid Build Coastguard Worker  (type t5a)
102*2d543d20SAndroid Build Coastguard Worker  (type t5b)
103*2d543d20SAndroid Build Coastguard Worker  (optional o5a
104*2d543d20SAndroid Build Coastguard Worker    (allow t5a self (CLASS (PERM1)))
105*2d543d20SAndroid Build Coastguard Worker    (optional o5b
106*2d543d20SAndroid Build Coastguard Worker      (allow t5b self (CLASS (PERM1)))
107*2d543d20SAndroid Build Coastguard Worker    )
108*2d543d20SAndroid Build Coastguard Worker  )
109*2d543d20SAndroid Build Coastguard Worker)
110*2d543d20SAndroid Build Coastguard Worker
111*2d543d20SAndroid Build Coastguard Worker(call m5)
112*2d543d20SAndroid Build Coastguard Worker
113*2d543d20SAndroid Build Coastguard Worker(in m5.o5a
114*2d543d20SAndroid Build Coastguard Worker  (allow t5a self (CLASS (PERM2)))
115*2d543d20SAndroid Build Coastguard Worker)
116*2d543d20SAndroid Build Coastguard Worker
117*2d543d20SAndroid Build Coastguard Worker(in m5.o5a.o5b
118*2d543d20SAndroid Build Coastguard Worker  (allow t5b self (CLASS (PERM2)))
119*2d543d20SAndroid Build Coastguard Worker)
120*2d543d20SAndroid Build Coastguard Worker
121*2d543d20SAndroid Build Coastguard Worker
122*2d543d20SAndroid Build Coastguard Worker;;
123*2d543d20SAndroid Build Coastguard Worker;; Expected:
124*2d543d20SAndroid Build Coastguard Worker;;
125*2d543d20SAndroid Build Coastguard Worker;; Types:
126*2d543d20SAndroid Build Coastguard Worker;;   b1.t1a, b1.t1b
127*2d543d20SAndroid Build Coastguard Worker;;   t2a, t2b
128*2d543d20SAndroid Build Coastguard Worker;;   t3a, t3b
129*2d543d20SAndroid Build Coastguard Worker;;   t4b
130*2d543d20SAndroid Build Coastguard Worker;;   t5a, t5b
131*2d543d20SAndroid Build Coastguard Worker;;
132*2d543d20SAndroid Build Coastguard Worker;; Allow rules:
133*2d543d20SAndroid Build Coastguard Worker;;   allow b1.t1a b1.t1a : CLASS { PERM1 PERM2 PERM3 PERM4 };
134*2d543d20SAndroid Build Coastguard Worker;;   allow b1.t1b b1.t1b : CLASS { PERM1 PERM2 PERM3 PERM4 };
135*2d543d20SAndroid Build Coastguard Worker;;   allow t2a t2a : CLASS { PERM1 PERM2 PERM3 };
136*2d543d20SAndroid Build Coastguard Worker;;   allow t2b t2b : CLASS { PERM1 PERM2 PERM3 };
137*2d543d20SAndroid Build Coastguard Worker;;   allow t3a t3a : CLASS { PERM1 PERM2 };
138*2d543d20SAndroid Build Coastguard Worker;;   allow t3b t3b : CLASS { PERM1 PERM3 };
139*2d543d20SAndroid Build Coastguard Worker;;   allow t4b t4b : CLASS { PERM1 PERM2 };
140*2d543d20SAndroid Build Coastguard Worker;;   allow t5a t5a : CLASS { PERM1 PERM2 };
141*2d543d20SAndroid Build Coastguard Worker;;   allow t5b t5b : CLASS { PERM1 PERM2 };
142*2d543d20SAndroid Build Coastguard Worker
143