summaryrefslogtreecommitdiffstats
path: root/tests/testsuite/runtest.sh
blob: b45984ae8933e99856ef2c79ee380365ddcb4dab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
#   runtest.sh of /tools/m4/Regression/testsuite
#   Description: testsuite
#   Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
#   Copyright (c) 2015 Red Hat, Inc.
#
#   This program is free software: you can redistribute it and/or
#   modify it under the terms of the GNU General Public License as
#   published by the Free Software Foundation, either version 2 of
#   the License, or (at your option) any later version.
#
#   This program is distributed in the hope that it will be
#   useful, but WITHOUT ANY WARRANTY; without even the implied
#   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
#   PURPOSE.  See the GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# Include Beaker environment
. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1

PACKAGE="m4"

rlJournalStart
    rlPhaseStartSetup
        rlAssertRpm $PACKAGE
        rlRun "TMPD=$(mktemp -d)"
        rlRun "pushd $TMPD"
        rlFetchSrcForInstalled $PACKAGE
        rlRun "rpm --define='_topdir $TMPD' -Uvh m4-*src.rpm"
    rlPhaseEnd

    rlPhaseStart FAIL "Build the source"
        rlRun "rpmbuild --define='_topdir $TMPD' -bc SPECS/m4.spec > stdout.log 2> stderr.log"
        rlRun "test -f stderr.log && cat stderr.log || true"
        rlFileSubmit stdout.log
        rlFileSubmit stderr.log
    rlPhaseEnd

    rlPhaseStart FAIL "Run tests"
        rlRun "pushd $TMPD/BUILD/m4-*"
        # el7 package creates couple tests/*log files (per testcase)
        # el6 package doesn't, so we'll create some explicitly
        rlRun "make check > tests/testout.log 2> tests/testerr.log"
        rlFileSubmit testout.log
        rlFileSubmit testerr.log
    rlPhaseEnd

    rlPhaseStart FAIL "Check for at least one PASSed test"
        rlRun "[[ $(grep ^PASS tests/*log | wc -l) -ge 1 ]]"
    rlPhaseEnd

    rlPhaseStart FAIL "Check for no FAILed test"
        rlRun "[[ $(cat tests/*log | grep -i FAIL | grep -P -v '^#' | wc -l) -eq 0 ]]"
    rlPhaseEnd

    rlPhaseStart FAIL "Show test results summary"
        test -f tests/test-suite.log && \
            rlRun "cat tests/test-suite.log" || \
            rlLogInfo "No summary available."
    rlPhaseEnd

    rlPhaseStartCleanup
        rlRun "popd -2"
        rlRun "rm -r $TMPD"
    rlPhaseEnd
rlJournalPrintText
rlJournalEnd