#!/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