Add gating tests
This commit is contained in:
parent
645b3837f9
commit
7d5bd21e09
7
gating.yaml
Normal file
7
gating.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- rhel-9
|
||||||
|
decision_context: osci_compose_gate
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
||||||
|
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.other.functional}
|
40
tests/test_annobin
Normal file
40
tests/test_annobin
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Checks that annobin works
|
||||||
|
|
||||||
|
. /usr/share/beakerlib/beakerlib.sh
|
||||||
|
|
||||||
|
# Set the full test name
|
||||||
|
TEST="/AppStream/annobin/Sanity/annobin"
|
||||||
|
|
||||||
|
# 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 -fplugin=annobin main.c -o a.exe" 0 "Compile the test file"
|
||||||
|
rlAssertExists "a.exe"
|
||||||
|
rlRun "readelf --wide --notes a.exe >readelf.out" 0 "Examine the executable with readelf"
|
||||||
|
rlAssertExists "readelf.out"
|
||||||
|
# FIXME: Parse the output and make sure that there are is valid annobin data there
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
# Cleanup phase: Remove test directory
|
||||||
|
rlPhaseStartCleanup
|
||||||
|
rlRun "popd"
|
||||||
|
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
||||||
|
rlPhaseEnd
|
||||||
|
rlJournalEnd
|
||||||
|
|
||||||
|
# Print the test report
|
||||||
|
rlJournalPrintText
|
40
tests/test_annocheck
Normal file
40
tests/test_annocheck
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#!/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
|
15
tests/tests.yml
Normal file
15
tests/tests.yml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
- hosts: localhost
|
||||||
|
roles:
|
||||||
|
- role: standard-test-beakerlib
|
||||||
|
tags:
|
||||||
|
- atomic
|
||||||
|
- classic
|
||||||
|
- container
|
||||||
|
tests:
|
||||||
|
- test_annobin
|
||||||
|
- test_annocheck
|
||||||
|
required_packages:
|
||||||
|
- findutils # beakerlib needs find command
|
||||||
|
- annobin # So that we can test it...
|
||||||
|
- annobin-annocheck # We need the annocheck command
|
||||||
|
- gcc # To build some test cases
|
Loading…
Reference in New Issue
Block a user