41 lines
1.3 KiB
Bash
41 lines
1.3 KiB
Bash
#!/bin/sh
|
|
|
|
# Checks that annocheck works
|
|
|
|
. /usr/share/beakerlib/beakerlib.sh
|
|
|
|
# Set the full test name
|
|
TEST="/AppStream/annobin/Sanity/annocheck"
|
|
|
|
# Package being tested
|
|
PACKAGE="annobin"
|
|
|
|
rlJournalStart
|
|
# Setup phase: Prepare test directory
|
|
rlPhaseStartSetup
|
|
rlAssertRpm $PACKAGE
|
|
rlRun 'TmpDir=$(mktemp -d)' 0 'Creating tmp directory' # no-reboot
|
|
rlRun "pushd $TmpDir"
|
|
rlPhaseEnd
|
|
|
|
# Test phase: Test the annobin plugin
|
|
rlPhaseStartTest
|
|
rlRun 'echo "int main (void) { return 0; }" >main.c' 0 "Create a C test source file"
|
|
rlAssertExists "main.c"
|
|
rlRun "gcc -O2 -fstack-protector-strong -fPIE -fplugin=annobin -pie -Wl,-z,now main.c -o a.exe" 0 "Compile the test file"
|
|
rlAssertExists "a.exe"
|
|
rlRun "annocheck a.exe --skip-cf-protection --skip-stack-clash --skip-glibcxx-assertions --skip-fortify --skip-warnings >annocheck.out" 0 "Examine the executable with annocheck"
|
|
rlAssertExists "annocheck.out"
|
|
# FIXME: Parse the output and make sure that the checks pass
|
|
rlPhaseEnd
|
|
|
|
# Cleanup phase: Remove test directory
|
|
rlPhaseStartCleanup
|
|
rlRun "popd"
|
|
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
rlPhaseEnd
|
|
rlJournalEnd
|
|
|
|
# Print the test report
|
|
rlJournalPrintText
|