xref: /aosp_15_r20/external/selinux/scripts/ci/fedora-test-runner.sh (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
1*2d543d20SAndroid Build Coastguard Worker#!/usr/bin/env bash
2*2d543d20SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
3*2d543d20SAndroid Build Coastguard Workerset -ev
4*2d543d20SAndroid Build Coastguard Worker
5*2d543d20SAndroid Build Coastguard Worker#
6*2d543d20SAndroid Build Coastguard Worker# We expect this to be set in the environment, but if it's not, most selinux projects
7*2d543d20SAndroid Build Coastguard Worker# just have the same name as upstream, so choose that.
8*2d543d20SAndroid Build Coastguard Worker#
9*2d543d20SAndroid Build Coastguard Workerexport SELINUX_DIR="${SELINUX_DIR:-/root/selinux}"
10*2d543d20SAndroid Build Coastguard Worker
11*2d543d20SAndroid Build Coastguard Worker# CI Debug output if things go squirrely.
12*2d543d20SAndroid Build Coastguard Workergetenforce
13*2d543d20SAndroid Build Coastguard Workerid -Z
14*2d543d20SAndroid Build Coastguard Workernproc
15*2d543d20SAndroid Build Coastguard Workerpwd
16*2d543d20SAndroid Build Coastguard Worker
17*2d543d20SAndroid Build Coastguard Worker# Turn off enforcing for the setup to prevent any weirdness from breaking
18*2d543d20SAndroid Build Coastguard Worker# the CI.
19*2d543d20SAndroid Build Coastguard Workersetenforce 0
20*2d543d20SAndroid Build Coastguard Worker
21*2d543d20SAndroid Build Coastguard Workerdnf clean all -y
22*2d543d20SAndroid Build Coastguard Workerdnf install -y \
23*2d543d20SAndroid Build Coastguard Worker    --allowerasing \
24*2d543d20SAndroid Build Coastguard Worker    --skip-broken \
25*2d543d20SAndroid Build Coastguard Worker    git \
26*2d543d20SAndroid Build Coastguard Worker    audit-libs-devel \
27*2d543d20SAndroid Build Coastguard Worker    bison \
28*2d543d20SAndroid Build Coastguard Worker    bzip2-devel \
29*2d543d20SAndroid Build Coastguard Worker    CUnit-devel \
30*2d543d20SAndroid Build Coastguard Worker    diffutils \
31*2d543d20SAndroid Build Coastguard Worker    flex \
32*2d543d20SAndroid Build Coastguard Worker    gcc \
33*2d543d20SAndroid Build Coastguard Worker    gettext \
34*2d543d20SAndroid Build Coastguard Worker    glib2-devel \
35*2d543d20SAndroid Build Coastguard Worker    make \
36*2d543d20SAndroid Build Coastguard Worker    libcap-devel \
37*2d543d20SAndroid Build Coastguard Worker    libcap-ng-devel \
38*2d543d20SAndroid Build Coastguard Worker    pam-devel \
39*2d543d20SAndroid Build Coastguard Worker    pcre2-devel \
40*2d543d20SAndroid Build Coastguard Worker    xmlto \
41*2d543d20SAndroid Build Coastguard Worker    python3-devel \
42*2d543d20SAndroid Build Coastguard Worker    ruby-devel \
43*2d543d20SAndroid Build Coastguard Worker    swig \
44*2d543d20SAndroid Build Coastguard Worker    perl-Test \
45*2d543d20SAndroid Build Coastguard Worker    perl-Test-Harness \
46*2d543d20SAndroid Build Coastguard Worker    perl-Test-Simple \
47*2d543d20SAndroid Build Coastguard Worker    selinux-policy-devel \
48*2d543d20SAndroid Build Coastguard Worker    gcc \
49*2d543d20SAndroid Build Coastguard Worker    libselinux-devel \
50*2d543d20SAndroid Build Coastguard Worker    net-tools \
51*2d543d20SAndroid Build Coastguard Worker    netlabel_tools \
52*2d543d20SAndroid Build Coastguard Worker    iptables \
53*2d543d20SAndroid Build Coastguard Worker    lksctp-tools-devel \
54*2d543d20SAndroid Build Coastguard Worker    attr \
55*2d543d20SAndroid Build Coastguard Worker    libbpf-devel \
56*2d543d20SAndroid Build Coastguard Worker    keyutils-libs-devel \
57*2d543d20SAndroid Build Coastguard Worker    kernel-devel \
58*2d543d20SAndroid Build Coastguard Worker    quota \
59*2d543d20SAndroid Build Coastguard Worker    xfsprogs-devel \
60*2d543d20SAndroid Build Coastguard Worker    libuuid-devel \
61*2d543d20SAndroid Build Coastguard Worker    e2fsprogs \
62*2d543d20SAndroid Build Coastguard Worker    jfsutils \
63*2d543d20SAndroid Build Coastguard Worker    dosfstools \
64*2d543d20SAndroid Build Coastguard Worker    rdma-core-devel \
65*2d543d20SAndroid Build Coastguard Worker    kernel-devel-"$(uname -r)" \
66*2d543d20SAndroid Build Coastguard Worker    kernel-modules-"$(uname -r)"
67*2d543d20SAndroid Build Coastguard Worker
68*2d543d20SAndroid Build Coastguard Worker#
69*2d543d20SAndroid Build Coastguard Worker# Move to selinux code and build
70*2d543d20SAndroid Build Coastguard Worker#
71*2d543d20SAndroid Build Coastguard Workercd "$SELINUX_DIR"
72*2d543d20SAndroid Build Coastguard Worker
73*2d543d20SAndroid Build Coastguard Worker# Show HEAD commit for sanity checking
74*2d543d20SAndroid Build Coastguard Workergit config --global --add safe.directory "$SELINUX_DIR"
75*2d543d20SAndroid Build Coastguard Workergit log --oneline -1
76*2d543d20SAndroid Build Coastguard Worker
77*2d543d20SAndroid Build Coastguard Worker#
78*2d543d20SAndroid Build Coastguard Worker# Build and replace userspace components
79*2d543d20SAndroid Build Coastguard Worker#
80*2d543d20SAndroid Build Coastguard Workermake clean distclean
81*2d543d20SAndroid Build Coastguard Workermake -j"$(nproc)" LIBDIR=/usr/lib64 SHLIBDIR=/lib64 install
82*2d543d20SAndroid Build Coastguard Workermake -j"$(nproc)" LIBDIR=/usr/lib64 SHLIBDIR=/lib64 install-pywrap
83*2d543d20SAndroid Build Coastguard Workermake -j"$(nproc)" LIBDIR=/usr/lib64 SHLIBDIR=/lib64 relabel
84*2d543d20SAndroid Build Coastguard Worker
85*2d543d20SAndroid Build Coastguard Worker#
86*2d543d20SAndroid Build Coastguard Worker# Get the selinux testsuite, but don't clone it in selinux git directory, move to $HOME
87*2d543d20SAndroid Build Coastguard Worker# first.
88*2d543d20SAndroid Build Coastguard Worker#
89*2d543d20SAndroid Build Coastguard Workercd "$HOME"
90*2d543d20SAndroid Build Coastguard Workerrm -rf selinux-testsuite
91*2d543d20SAndroid Build Coastguard Workergit clone --depth=1 https://github.com/SELinuxProject/selinux-testsuite.git
92*2d543d20SAndroid Build Coastguard Workercd selinux-testsuite
93*2d543d20SAndroid Build Coastguard Worker
94*2d543d20SAndroid Build Coastguard Worker# The testsuite must be run in enforcing mode
95*2d543d20SAndroid Build Coastguard Workersetenforce 1
96*2d543d20SAndroid Build Coastguard Worker
97*2d543d20SAndroid Build Coastguard Worker#
98*2d543d20SAndroid Build Coastguard Worker# Run the test suite
99*2d543d20SAndroid Build Coastguard Worker#
100*2d543d20SAndroid Build Coastguard Workermake test
101