psss / rpms / libsemanage

Forked from rpms/libsemanage 5 years ago
Clone
cefaa03
#!/bin/bash
cefaa03
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
cefaa03
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cefaa03
#
cefaa03
#   runtest.sh of /CoreOS/libsemanage/Sanity/semanage-handle-functions
cefaa03
#   Description: Test functions from handle.h
cefaa03
#   Author: Jan Zarsky <jzarsky@redhat.com>
cefaa03
#
cefaa03
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cefaa03
#
cefaa03
#   Copyright (c) 2017 Red Hat, Inc.
cefaa03
#
cefaa03
#   This program is free software: you can redistribute it and/or
cefaa03
#   modify it under the terms of the GNU General Public License as
cefaa03
#   published by the Free Software Foundation, either version 2 of
cefaa03
#   the License, or (at your option) any later version.
cefaa03
#
cefaa03
#   This program is distributed in the hope that it will be
cefaa03
#   useful, but WITHOUT ANY WARRANTY; without even the implied
cefaa03
#   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
cefaa03
#   PURPOSE.  See the GNU General Public License for more details.
cefaa03
#
cefaa03
#   You should have received a copy of the GNU General Public License
cefaa03
#   along with this program. If not, see http://www.gnu.org/licenses/.
cefaa03
#
cefaa03
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cefaa03
cefaa03
# Include Beaker environment
cefaa03
. /usr/bin/rhts-environment.sh || exit 1
cefaa03
. /usr/share/beakerlib/beakerlib.sh || exit 1
cefaa03
cefaa03
PACKAGE="libsemanage"
cefaa03
cefaa03
rlJournalStart
cefaa03
    rlPhaseStartSetup
cefaa03
        rlAssertRpm ${PACKAGE}
cefaa03
        rlAssertRpm ${PACKAGE}-devel
cefaa03
        rlAssertRpm "glibc"
cefaa03
        rlAssertRpm "gcc"
cefaa03
cefaa03
        if rlIsRHEL ">=7" || rlIsFedora; then
cefaa03
            rlRun -l "gcc test_root.c           -o test_root            -lsemanage -Wall -Wextra -std=c99"
cefaa03
        fi
cefaa03
cefaa03
        rlRun -l "gcc test_handle_create.c  -o test_handle_create   -lsemanage -Wall -Wextra -Wno-unused-parameter -std=c99"
cefaa03
        rlRun -l "gcc test_access_check.c   -o test_access_check    -lsemanage -Wall -Wextra -std=c99"
cefaa03
        rlRun -l "gcc test_is_managed.c     -o test_is_managed      -lsemanage -Wall -Wextra -std=c99"
cefaa03
        rlRun -l "gcc test_connect.c        -o test_connect         -lsemanage -Wall -Wextra -std=c99"
cefaa03
        rlRun -l "gcc test_is_connected.c   -o test_is_connected    -lsemanage -Wall -Wextra -std=c99"
cefaa03
        rlRun -l "gcc test_mls_enabled.c    -o test_mls_enabled     -lsemanage -Wall -Wextra -std=c99"
cefaa03
        rlRun -l "gcc test_transaction.c    -o test_transaction     -lsemanage -Wall -Wextra -std=c99"
cefaa03
cefaa03
        ERR_FAIL=1
cefaa03
        ERR_ABORT=134
cefaa03
    rlPhaseEnd
cefaa03
cefaa03
    if rlIsRHEL ">=7" || rlIsFedora; then
cefaa03
    rlPhaseStartTest "semanage_root, semanage_test_root"
cefaa03
        rlRun "./test_root init"
cefaa03
        rlRun "./test_root handle"
cefaa03
        rlRun "./test_root conn"
cefaa03
        rlRun "./test_root init /somepath"
cefaa03
        rlRun "./test_root handle /somepath"
cefaa03
        rlRun "./test_root conn /somepath"
cefaa03
    rlPhaseEnd
cefaa03
    fi
cefaa03
cefaa03
    rlPhaseStartTest "semanage_handle_create, semanage_handle_destroy"
cefaa03
        rlRun "./test_handle_create init"
cefaa03
    rlPhaseEnd
cefaa03
cefaa03
    rlPhaseStartTest "semanage_access_check"
cefaa03
        rlRun "./test_access_check init" $ERR_ABORT
cefaa03
        rlRun "./test_access_check handle 2"
cefaa03
        rlRun "./test_access_check conn 2"
cefaa03
    rlPhaseEnd
cefaa03
cefaa03
    rlPhaseStartTest "semanage_is_managed"
cefaa03
        rlRun "./test_is_managed init" $ERR_ABORT
cefaa03
        rlRun "./test_is_managed handle 1"
cefaa03
        rlRun "./test_is_managed conn" $ERR_FAIL
cefaa03
    rlPhaseEnd
cefaa03
cefaa03
    rlPhaseStartTest "semanage_connect, semanage_disconnect"
cefaa03
        rlRun "./test_connect init" $ERR_ABORT
cefaa03
        rlRun "./test_connect init reversed" $ERR_ABORT
cefaa03
        rlRun "./test_connect handle"
cefaa03
        rlRun "./test_connect handle twice"
cefaa03
        rlRun "./test_connect handle reversed" $ERR_ABORT
cefaa03
        # why does it work??
cefaa03
        rlRun "./test_connect conn"
cefaa03
    rlPhaseEnd
cefaa03
cefaa03
    rlPhaseStartTest "semanage_is_connected"
cefaa03
        rlRun "./test_is_connected init" $ERR_ABORT
cefaa03
        rlRun "./test_is_connected handle 0"
cefaa03
        rlRun "./test_is_connected conn 1"
cefaa03
    rlPhaseEnd
cefaa03
cefaa03
    rlPhaseStartTest "semanage_mls_enabled"
cefaa03
        rlRun "./test_mls_enabled init" $ERR_ABORT
cefaa03
        rlRun "./test_mls_enabled handle" $ERR_ABORT
cefaa03
        rlRun "./test_mls_enabled conn 1"
cefaa03
    rlPhaseEnd
cefaa03
cefaa03
    rlPhaseStartTest "semanage_begin_transaction, semanage_commit"
cefaa03
        rlRun "./test_transaction init" $ERR_ABORT
cefaa03
        rlRun "./test_transaction init reversed" $ERR_ABORT
cefaa03
        rlRun "./test_transaction handle" $ERR_ABORT
cefaa03
        rlRun "./test_transaction handle reversed" $ERR_ABORT
cefaa03
        rlRun "./test_transaction conn"
cefaa03
        rlRun "./test_transaction conn twice"
cefaa03
        rlRun "./test_transaction conn reversed" $ERR_FAIL
cefaa03
    rlPhaseEnd
cefaa03
cefaa03
    rlPhaseStartCleanup
cefaa03
        rlRun "rm -f output test_root test_handle_create test_access_check \
cefaa03
               test_is_managed test_connect test_is_connected \
cefaa03
               test_mls_enabled test_transaction"
cefaa03
    rlPhaseEnd
cefaa03
rlJournalPrintText
cefaa03
rlJournalEnd