;; Minimum stuff
(class CLASS (PERM))
(classorder (CLASS))
(sid SID)
(sidorder (SID))
(user USER)
(role ROLE)
(type TYPE)
(category CAT)
(categoryorder (CAT))
(sensitivity SENS)
(sensitivityorder (SENS))
(sensitivitycategory SENS (CAT))
(allow TYPE self (CLASS (PERM)))
(roletype ROLE TYPE)
(userrole USER ROLE)
(userlevel USER (SENS))
(userrange USER ((SENS)(SENS (CAT))))
(sidcontext SID (USER ROLE TYPE ((SENS)(SENS))))
;; Extra stuff
(common COMMON (PERM1 PERM2 PERM3 PERM4))
(classcommon CLASS COMMON)


;; Check resolution failure handling for optionals
(type t1)
(optional o1
  (allow t1 self (CLASS (PERM))) ;; Should not appear in policy
  (allow UNKNOWN self (CLASS (PERM)))
)


;; These should not cause an error
(block b2a
  (type t2)
  (allow t2 self (CLASS (PERM1)))
)

(block b2b
  (optional o2b
    (type t2)
    (allow t2 DNE (CLASS (PERM)))
  )
  (blockinherit b2a)
)

(block b2c
  (optional o2c
    (type t2)
    (allow t2 self (CLASS (PERM)))
  )
  (blockinherit b2a)
)


;; This is not allowed
;;(block b3
;;  (optional o3
;;    (type t3)
;;    (allow t3 DNE (CLASS (PERM)))
;;  )
;;  (type t3)
;;  (allow t3 self (CLASS (PERM1)))
;;)


;;
;; Expected:
;;
;; Types:
;;   t1
;;   b2a.t2, b2b.t2, b2c.t2
;;
;; Allow rules:
;;  allow b2a.t2 b2a.t2 : CLASS { PERM1 };
;;  allow b2b.t2 b2b.t2 : CLASS { PERM1 };
;;  allow b2c.t2 b2c.t2 : CLASS { PERM PERM1 };

