xref: /aosp_15_r20/external/selinux/checkpolicy/tests/test_roundtrip.sh (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1#!/bin/sh
2
3set -eu
4
5BASEDIR=$(dirname "$0")
6CHECKPOLICY="${BASEDIR}/../checkpolicy"
7
8check_policy() {
9	POLICY=$1
10	EXPECTED=$2
11	OPTS=$3
12
13	echo "==== Testing ${1}"
14
15	${CHECKPOLICY} ${OPTS} "${BASEDIR}/${POLICY}" -o "${BASEDIR}/testpol.bin"
16	${CHECKPOLICY} ${OPTS} -b -F "${BASEDIR}/testpol.bin" -o "${BASEDIR}/testpol.conf"
17	diff -u "${BASEDIR}/${EXPECTED}" "${BASEDIR}/testpol.conf"
18
19	${CHECKPOLICY} ${OPTS} "${BASEDIR}/${EXPECTED}" -o "${BASEDIR}/testpol.bin"
20	${CHECKPOLICY} ${OPTS} -b -F "${BASEDIR}/testpol.bin" -o "${BASEDIR}/testpol.conf"
21	diff -u "${BASEDIR}/${EXPECTED}" "${BASEDIR}/testpol.conf"
22
23	echo "==== ${1} success"
24	echo ""
25}
26
27
28check_policy  policy_minimal.conf      policy_minimal.conf                   '-E'
29check_policy  policy_minimal.conf      policy_minimal.conf                   '-E -S -O'
30
31check_policy  policy_minimal_mls.conf  policy_minimal_mls.conf               '-M -E'
32check_policy  policy_minimal_mls.conf  policy_minimal_mls.conf               '-M -E -S -O'
33
34check_policy  policy_allonce.conf      policy_allonce.expected.conf          ''
35check_policy  policy_allonce.conf      policy_allonce.expected_opt.conf      '-S -O'
36
37check_policy  policy_allonce_mls.conf  policy_allonce_mls.expected.conf      '-M'
38check_policy  policy_allonce_mls.conf  policy_allonce_mls.expected_opt.conf  '-M -S -O'
39
40check_policy  policy_allonce_xen.conf  policy_allonce_xen.expected.conf      '--target xen -c 30 -E'
41check_policy  policy_allonce_xen.conf  policy_allonce_xen.expected_opt.conf  '--target xen -c 30 -E -S -O'
42