diff --git a/annobin.spec b/annobin.spec index d5d66f4..c408142 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,9 +1,9 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.08 +Version: 12.28 Release: 1.0.riscv64%{?dist} -License: GPLv3+ +License: GPL-3.0-or-later AND LGPL-2.0-or-later AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (LGPL-2.0-or-later WITH GCC-exception-2.0) AND GFDL-1.3-or-later URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -75,7 +75,7 @@ Source: https://nickc.fedorapeople.org/%{annobin_sources} %global annobin_source_dir %{_usrsrc}/annobin # Insert patches here, if needed. Eg: -# Patch01: annobin-foo.patch +# Patch01: annobin-plugin-default-string-notes.patch #--------------------------------------------------------------------------------- @@ -147,17 +147,15 @@ Provides the documentation files and example shell scripts for use with annobin. %package tests Summary: Test scripts and binaries for checking the behaviour and output of the annobin plugin Requires: %{name}-docs = %{version}-%{release} +BuildRequires: make sharutils +%if %{with debuginfod} +BuildRequires: elfutils-debuginfod-client-devel +%endif %description tests Provides a means to test the generation of annotated binaries and the parsing of the resulting files. -BuildRequires: make - -%if %{with debuginfod} -BuildRequires: elfutils-debuginfod-client-devel -%endif - %endif #---------------------------------------------------------------------------- @@ -166,7 +164,7 @@ BuildRequires: elfutils-debuginfod-client-devel %package annocheck Summary: A tool for checking the security hardening status of binaries -BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel make +BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel make %if %{with debuginfod} BuildRequires: elfutils-debuginfod-client-devel @@ -183,14 +181,13 @@ hardening options. %package libannocheck Summary: A library for checking the security hardening status of binaries -BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel make +BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel make %if %{with debuginfod} BuildRequires: elfutils-debuginfod-client-devel %endif Requires: %{name}-docs = %{version}-%{release} -Requires: binutils-devel %description libannocheck Installs the libannocheck library which uses the notes generated by the @@ -413,8 +410,8 @@ make -C gcc-plugin clean BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so" # Disable the standard annobin plugin so that we do get conflicts. -# Note - Fedora's rpm uses a different way of evaluating macros. -%if 0%{?fedora} == 0 +# Note - rpm-4.10 uses a different way of evaluating macros. +%if 0%{?rhel} && 0%{?rhel} < 7 OPTS="$(rpm --eval '%undefine _annotated_build %build_cflags %build_ldflags')" %else OPTS="$(rpm --undefine=_annotated_build --eval '%build_cflags %build_ldflags')" @@ -472,12 +469,17 @@ rm -f %{buildroot}%{_infodir}/dir %if %{with tests} %check -# Change the following line to "make check || :" on RHEL7 or if you need to see the -# test suite logs in order to diagnose a test failure. -make check +# The first "make check" is run with "|| :" so that we can capture any logs +# from failed tests. The second "make check" is there so that the build +# will fail if any of the tests fail. +make check || : if [ -f tests/test-suite.log ]; then cat tests/test-suite.log fi +# If necessary use uuencode to preserve test binaries here. For example: +# uuencode tests/tmp_atexit/atexit.strip atexit.strip + +make check %endif #--------------------------------------------------------------------------------- @@ -530,9 +532,136 @@ fi #--------------------------------------------------------------------------------- %changelog -* Wed Feb 01 2023 David Abdurachmanov - 11.08-1.0.riscv64 +* Thu Oct 12 2023 David Abdurachmanov - 12.28-1.0.riscv64 - Disable Clang and LLVM plugins on riscv64 +* Fri Oct 06 2023 Nick Clifron - 12.28-1 +- GCC Plugin: Record settings of -Wstrict-flex-arrays and -fstrict-flex-arrays +- Annobin: Add future test of these options. + +* Tue Sep 26 2023 Nick Clifron - 12.27-1 +- GCC Plugin: Record settings of -Wimplicit-int and -Wimplicit-function-declaration. +- Annobin: Add test for these warnings. + +* Wed Sep 06 2023 Nick Clifron - 12.26-1 +- LLVM Plugin: Fix building with LLVM version 17. + +* Wed Aug 30 2023 Nick Clifron - 12.25-1 +- GCC Plugin: Enable string note format by default. + +* Fri Aug 04 2023 Nick Clifron - 12.24-1 +- Annocheck: Change GO FIPS test to look for CGO_ENABLED markers. + +* Mon Jul 31 2023 Nick Clifron - 12.23-1 +- Annocheck: Add test for FIPS compliant GO binaries. + +* Wed Jul 26 2023 Nick Clifron - 12.22-1 +- Annocheck: Fix double free. (#2226749) + +* Wed Jul 19 2023 Fedora Release Engineering - 12.21-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jul 18 2023 Nick Clifton - 12.21-1 +- Spec File: migrated to SPDX license. (#2222112) + +* Mon Jul 17 2023 Nick Clifton - 12.20-2 +- Spec File: Change License field to use SPDX notation. (#2222112) + +* Mon Jul 17 2023 Nick Clifton - 12.20-1 +- Annocheck: Ignore AArch64 $x and $d symbols. (#2221192) + +* Wed Jul 05 2023 Nick Clifton - 12.19-1 +- GCC Plugin: Suppress active checks for fortran sources. Improve scanning of COLLECT_GCC_OPTIONS. + +* Thu Jun 29 2023 Nick Clifton - 12.18-1 +- Annocheck: Remove dependency upon binutils-devel. + +* Thu Jun 29 2023 Nick Clifton - 12.17-1 +- Annocheck: Add detection of known parts of libstdc++-nonshared.a that contain gaps. (#2217864) + +* Tue Jun 27 2023 Nick Clifton - 12.16-1 +- Annocheck: Ignore weak/undef function symbols when checking to see if a binary contains code. (#2217840) + +* Mon Jun 26 2023 Nick Clifton - 12.15-1 +- Annocheck: Add --suppress-version-warnings option. + +* Thu Jun 22 2023 Nick Clifton - 12.14-1 +- Annocheck: Do not ignore separate debuginfo files that do not contain any DWARF. (#2144553) + +* Tue Jun 20 2023 Nick Clifton - 12.13-1 +- Annocheck: Ignore /dev/null filename in string notes. +- Annocheck: More tweaks to glibc detection heuristics. (#2215968) + +* Thu Jun 01 2023 Nick Clifton - 12.12-1 +- Annocheck: Check for string notes in separate debug info files. (#2211694) + +* Fri May 26 2023 Petr Pisar - 12.11-1 +- Annocheck: Add support for el10 and rhel-10 profiles. (RHEL-526) + +* Mon May 22 2023 Petr Pisar - 12.10-3 +- Rebuild against rpm-4.19 (https://fedoraproject.org/wiki/Changes/RPM-4.19) + +* Fri May 05 2023 Nick Clifton - 12.10-2 +- GCC Plugin: Default to generating string format notes. (Experimental) + +* Fri Apr 28 2023 Nick Clifton - 12.10-1 +- Annocheck: Suppress more tests for Rust binaries. + +* Tue Apr 25 2023 Nick Clifton - 12.09-1 +- Annocheck: Fix detection of missing plugin options. (#2189492) + +* Tue Apr 25 2023 Nick Clifton - 12.08-1 +- Fix generation of auto-generated files. +- Fix covscan reported errors. + +* Fri Apr 21 2023 Nick Clifton - 12.07-1 +- gcc-plugin: generate warnings about misspelt -D_FORTIFY_SOURCE and/or -D_GLIBCXX_ASSERTIONS options. + +* Thu Apr 20 2023 Nick Clifton - 12.06-1 +- gcc-plugin: use a bigger buffer for constructing notes. + +* Wed Apr 19 2023 Nick Clifton - 12.05-1 +- llvm-plugin: Fix detection of optimization level. Improve test. +- clang-plugin: Improve test. + +* Mon Apr 17 2023 Nick Clifton - 12.04-1 +- configure: More improvements. +- annocheck: Fix seg-fault when checking for glibc components in string format notes. + +* Thu Apr 13 2023 Nick Clifton - 12.03-1 +- configure: Simplify. + +* Tue Apr 11 2023 Nick Clifton - 12.02-1 +- gcc plugin: Add filenames to string notes. Allow use of ANNOBIN environment variable. +- llvm plugin: Add workaround for building with LLVM-16. +- clang plugin: Fix for building with Clang-16. + +* Thu Mar 30 2023 Nick Clifton - 12.01-1 +- gcc plugin: Keep ELF notes at protocol version 3. + +* Tue Mar 28 2023 Nick Clifton - 12.00-1 +- Protocol Version 4: String format notes. + +* Mon Mar 13 2023 Nick Clifton - 11.14-1 +- Annocheck: Update message for LTO tests. (#2177140) + +* Wed Mar 08 2023 Nick Clifton - 11.13-1 +- Annocheck: Add even more code to handle another glibc function built without LTO. + +* Fri Mar 03 2023 Nick Clifton - 11.12-1 +- Annocheck: Add code to handle another glibc function built without LTO. + +* Tue Feb 28 2023 Nick Clifton - 11.11-1 +- GCC Plugin: Do not run if other plugins are active. (#2162746) + +* Thu Feb 23 2023 Nick Clifton - 11.10-1 +- Annocheck: Add code to handle glibc functions built without LTO. + +* Thu Feb 02 2023 Nick Clifton - 11.09-1 +- Libannocheck: Fix thinko in debugging code. +- Annocheck: Fix LTO test. +- Notes: Display notes held in separate dbeuginfo files. + * Tue Jan 31 2023 Nick Clifton - 11.08-1 - Annocheck: Fix atexit test. Fix recording of version numbers. (#2165528) diff --git a/plans/ci.fmf b/plans/ci.fmf index 85710d6..6ae9ce7 100644 --- a/plans/ci.fmf +++ b/plans/ci.fmf @@ -1,6 +1,6 @@ summary: CI Gating Plan discover: how: fmf - directory: tests + url: https://src.fedoraproject.org/tests/annobin.git execute: how: tmt diff --git a/sources b/sources index 98d9553..46c32fe 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.08.tar.xz) = 233e0314648b3577bd3e8f977b7da523e3c1770664dd0ade10e97fa251aa00fe1e02fb3104973bf5f6a30b1acb21772a3d9ba05c89bf1edf2feb665f88000fee +SHA512 (annobin-12.28.tar.xz) = 624373d1eba36bc7a0804e0b33dfcb9a8c2415047329c5b96fd6cc2d88cbc9a355bd36ecb00214c4928f6fb4968ec910d76c8ca361b1c13584d4a06f3ee97b05 diff --git a/tests/README b/tests/README deleted file mode 100644 index 9ad59d4..0000000 --- a/tests/README +++ /dev/null @@ -1,2 +0,0 @@ -The test's Makefiles are not used in Fedora CI infrastructure. But are kept here -for backward compatibility with traditional beakerlib test harness in RHEL. diff --git a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf b/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf deleted file mode 100644 index e0cbc5d..0000000 --- a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf +++ /dev/null @@ -1,18 +0,0 @@ -summary: Test for BZ#1958954 (annobin fails to skip endbr64 entry point check) -description: | - Bug summary: annobin fails to skip endbr64 entry point check for shared objects - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1958954 -contact: -- Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-annocheck -- annobin-plugin-gcc -- gcc -- redhat-rpm-config -duration: 48h -extra-summary: /tools/annobin/Regression/annobin-fails-to-skip-endbr64-entry-point-check -extra-task: /tools/annobin/Regression/annobin-fails-to-skip-endbr64-entry-point-check diff --git a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh b/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh deleted file mode 100755 index 91fa544..0000000 --- a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/annobin-fails-to-skip-endbr64-entry-point-check -# Description: Test for BZ#1958954 (annobin fails to skip endbr64 entry point check) -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 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/share/beakerlib/beakerlib.sh || exit 1 - -rlJournalStart - rlPhaseStartSetup - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - rlRun "echo 'void f1(void) {}' > f1.c" - rlRun "echo 'void f2(void) {}' > f2.c" - rlRun "gcc `rpm --eval %build_cflags` -fpic -c f1.c" - rlRun "gcc `rpm --eval %build_cflags` -fpic -c f2.c" - rlRun "gcc `rpm --eval %build_ldflags` -shared f1.o f2.o" - rlRun "annocheck -v --skip-lto a.out" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/identify/main.fmf b/tests/Regression/identify/main.fmf deleted file mode 100644 index 674544e..0000000 --- a/tests/Regression/identify/main.fmf +++ /dev/null @@ -1,14 +0,0 @@ -summary: identify -description: '' -contact: -- Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -recommend: -- annobin-plugin-gcc -- annobin-annocheck -duration: 48h -extra-summary: /tools/annobin/Regression/identify -extra-task: /tools/annobin/Regression/identify diff --git a/tests/Regression/identify/runtest.sh b/tests/Regression/identify/runtest.sh deleted file mode 100755 index 7907036..0000000 --- a/tests/Regression/identify/runtest.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/identify -# Description: identify -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 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/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="annobin" - -rlJournalStart - rlPhaseStartTest - rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" - rlRun "tool_v=$(annocheck --version | awk '/^annocheck: Version/ {print $3}')" - rlRun "__RPM=$(rpm --queryformat='%{name}\n' -qf $(man -w annobin))" - rlRun "rpm_v=$(rpm -q --queryformat='%{version}\n' $__RPM)" - # Following fails for annobin-8.89-2.el8 - rlRun "[[ "x${tool_v}" == "x${rpm_v}." ]]" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/lto-preprocessor-options/main.fmf b/tests/Regression/lto-preprocessor-options/main.fmf deleted file mode 100644 index 2a3e56a..0000000 --- a/tests/Regression/lto-preprocessor-options/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: lto-preprocessor-options -description: '' -contact: -- Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-plugin-gcc -- annobin-annocheck -- redhat-rpm-config -- gcc -- redhat-rpm-config -duration: 48h -extra-summary: /tools/annobin/Regression/lto-preprocessor-options -extra-task: /tools/annobin/Regression/lto-preprocessor-options diff --git a/tests/Regression/lto-preprocessor-options/runtest.sh b/tests/Regression/lto-preprocessor-options/runtest.sh deleted file mode 100755 index 430d830..0000000 --- a/tests/Regression/lto-preprocessor-options/runtest.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/lto-preprocessor-options -# Description: lto-preprocessor-options -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2020 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/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="annobin" - -rlJournalStart - rlPhaseStartTest - b=`mktemp` - rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" - rlRun "cflags=\"$(rpm --eval '%build_cflags')\"" - rlRun "ldflags=\"$(rpm --eval '%build_ldflags')\"" - rlRun "echo 'int main (void) { return 0; }' | gcc -xc -o $b $cflags $ldflags -flto - " - rlRun "annocheck -v $b" - rm $b - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/missing-check-for-x86-property-note-content/main b/tests/Regression/missing-check-for-x86-property-note-content/main deleted file mode 100644 index b7f4983..0000000 Binary files a/tests/Regression/missing-check-for-x86-property-note-content/main and /dev/null differ diff --git a/tests/Regression/missing-check-for-x86-property-note-content/main.fmf b/tests/Regression/missing-check-for-x86-property-note-content/main.fmf deleted file mode 100644 index b4ab7fd..0000000 --- a/tests/Regression/missing-check-for-x86-property-note-content/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: missing-check-for-x86-property-note-content -description: | - Bug summary: annobin: Missing check for contents of x86 property note - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1991931 -contact: Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-annocheck -duration: 48h -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1991931 -extra-summary: /tools/annobin/Regression/missing-check-for-x86-property-note-content -extra-task: /tools/annobin/Regression/missing-check-for-x86-property-note-content diff --git a/tests/Regression/missing-check-for-x86-property-note-content/runtest.sh b/tests/Regression/missing-check-for-x86-property-note-content/runtest.sh deleted file mode 100755 index 14392c0..0000000 --- a/tests/Regression/missing-check-for-x86-property-note-content/runtest.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/missing-check-for-x86-property-note-content -# Description: missing-check-for-x86-property-note-content -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 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/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="annobin" - -rlJournalStart - rlPhaseStartTest - rlRun "annocheck main" 1 - rlRun "annocheck --fixed-format-messages main | \ - grep '^Hardened: FAIL: test: cf-protection file: main.$'" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/processing-params-in-reverse-order/main.fmf b/tests/Regression/processing-params-in-reverse-order/main.fmf deleted file mode 100644 index 99adc08..0000000 --- a/tests/Regression/processing-params-in-reverse-order/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: processing-params-in-reverse-order -description: | - Bug summary: annocheck processes (reports) parameters in reverse order - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1988714 -contact: Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-annocheck -duration: 48h -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1988714 -extra-summary: /tools/annobin/Regression/processing-params-in-reverse-order -extra-task: /tools/annobin/Regression/processing-params-in-reverse-order diff --git a/tests/Regression/processing-params-in-reverse-order/runtest.sh b/tests/Regression/processing-params-in-reverse-order/runtest.sh deleted file mode 100755 index 75b357e..0000000 --- a/tests/Regression/processing-params-in-reverse-order/runtest.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/processing-params-in-reverse-order -# Description: processing-params-in-reverse-order -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 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/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="annobin" - -rlJournalStart - rlPhaseStartTest - rlRun "TMP=$(mktemp)" - rlRun "annocheck --verbose --skip-all --test-stack-prot /bin/bash /bin/cat |& tee $TMP" - rlRun "fgrep -i /bin/ $TMP | head -1 | fgrep /bash" - rlRun "fgrep -i /bin/ $TMP | tail -1 | fgrep /cat" - rlRun "rm -f $TMP" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf deleted file mode 100644 index 07395fa..0000000 --- a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf +++ /dev/null @@ -1,18 +0,0 @@ -summary: segv-when-processing-multiple-params-incl-symlink -description: | - Bug summary: annocheck segfaults sometimes when processing multiple parameters and symlink is involved - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1988715 -contact: Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-plugin-gcc -- annobin-annocheck -- libstdc++ -duration: 48h -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1988715 -extra-summary: /tools/annobin/Regression/segv-when-processing-multiple-params-incl-symlink -extra-task: /tools/annobin/Regression/segv-when-processing-multiple-params-incl-symlink diff --git a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh deleted file mode 100755 index 6603c3c..0000000 --- a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/segv-when-processing-multiple-params-incl-symlink -# Description: segv-when-processing-multiple-params-incl-symlink -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 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/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="annobin" - -rlJournalStart - rlPhaseStartTest - # This tries to test https://bugzilla.redhat.com/show_bug.cgi?id=1988715#c0 - # keeping in mind that annocheck will evolve in the future, along its - # rules / policies, and the surrounding OS will evolve too. This test - # shouldn't report false positives though. - rlRun "rpm -qf /usr/lib64/libstdc++.so*" - rlRun "annocheck --follow-links --skip-all /usr/lib64/libstdc++.so*" - rlRun "annocheck --ignore-links --skip-all /usr/lib64/libstdc++.so*" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/testsuite/main.fmf b/tests/Regression/testsuite/main.fmf deleted file mode 100644 index f117f62..0000000 --- a/tests/Regression/testsuite/main.fmf +++ /dev/null @@ -1,24 +0,0 @@ -summary: testsuite -description: '' -contact: -- Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-plugin-gcc -- annobin-annocheck -- binutils-devel -- bzip2-devel -- dnf -- elfutils -- elfutils-devel -- gcc-c++ -- gcc-plugin-devel -- make -- rpm-build -- rpm-devel -duration: 48h -extra-summary: /tools/annobin/Regression/testsuite -extra-task: /tools/annobin/Regression/testsuite diff --git a/tests/Regression/testsuite/runtest.sh b/tests/Regression/testsuite/runtest.sh deleted file mode 100755 index 1507c45..0000000 --- a/tests/Regression/testsuite/runtest.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/testsuite -# Description: testsuite -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2018 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/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="${PACKAGE:-$(rpm -qf --queryformat=%{name} $(man -w annobin))}" -export PACKAGE - -GCC="${GCC:-$(which gcc)}" - - -rlJournalStart - rlPhaseStartSetup - rlLogInfo "PACKAGES=$PACKAGES" - rlLogInfo "REQUIRES=$REQUIRES" - rlLogInfo "COLLECTIONS=$COLLECTIONS" - rlLogInfo "X_SCLS=$X_SCLS" - rlLogInfo "GCC=$GCC" - - rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" - - # In case more than one devtoolset- or gcc-toolset -build package is - # installed (they can co-exist from the packaging persp, but their - # coexistence causes unexpected results with rpm macros), then we have - # a mess of defined rpm macros coming e.g. from - # /etc/rpm/macros.gcc-toolset-10-config - # /etc/rpm/macros.gcc-toolset-9-config etc. To have just the needed - # macros (respective to given SCL under test) defined without - # uninstalling unneeded RPMs, we'll need an override mechanism. The - # following assumes just one SCL *enabled* (more than one installed), - # and doesn't care of a (useless) revert: - echo ${X_SCLS} | fgrep toolset && \ - rlRun "cat /etc/rpm/*${X_SCLS%\ }* > ~/.rpmmacros" - - rlAssertRpm $PACKAGE - rlRun "TMP=\$(mktemp -d)" - rlRun "pushd $TMP" - - rlFetchSrcForInstalled $PACKAGE - rlRun "dnf builddep -y *src.rpm" - rlRun "rpm --define='_topdir $TMP' -Uvh *src.rpm" - rlRun "rpmbuild --define='_topdir $TMP' -bc SPECS/annobin.spec" - rlPhaseEnd - - rlPhaseStartTest - rlRun "pushd BUILD/annobin-*" - set -o pipefail - rlRun "make check |& tee $TMP/check.log" - rlRun -l "grep '^PASS:' $TMP/check.log" 0 - rlRun -l "grep '^FAIL:' $TMP/check.log" 1 - PASSCOUNT=$(grep '^PASS:' $TMP/check.log | wc -l) - rlRun "[[ $PASSCOUNT -ge 7 ]]" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TMP" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf b/tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf deleted file mode 100644 index 9ece622..0000000 --- a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: Test for BZ#1973981 (annocheck silently ignores any file parameter) -description: | - Bug summary: annocheck silently ignores any file parameter beyond 256 - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1973981 -contact: Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-plugin-gcc -- annobin-annocheck -duration: 48h -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1973981 -extra-summary: /tools/annobin/Sanity/annocheck-silently-ignores-any-file-parameter -extra-task: /tools/annobin/Sanity/annocheck-silently-ignores-any-file-parameter diff --git a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh b/tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh deleted file mode 100755 index bb1a436..0000000 --- a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Sanity/annocheck-silently-ignores-any-file-parameter -# Description: Test for BZ#1973981 (annocheck silently ignores any file parameter) -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 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/share/beakerlib/beakerlib.sh || exit 1 - -rlJournalStart - rlPhaseStartSetup - rlRun "TMP=$(mktemp -d)" - rlRun "pushd $TMP" - rlPhaseEnd - - rlPhaseStartTest - for i in `seq 0 299`; do touch ${i}.sample; done - samplecnt=$(ls *.sample | wc -l) - testcnt=$(ls *.sample | \ - xargs annocheck |& \ - grep -F \ - -e '.sample: unable to read magic number' \ - -e '.sample: is not an ELF format file' \ - | wc -l) - rlRun "test $samplecnt -eq 300" - rlRun "test $testcnt -eq 300" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TMP" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/gcc-fedora-flags/hello.c b/tests/Sanity/gcc-fedora-flags/hello.c deleted file mode 100644 index 51b259b..0000000 --- a/tests/Sanity/gcc-fedora-flags/hello.c +++ /dev/null @@ -1,5 +0,0 @@ -#include - -void hello() { - printf("Hello World\n"); -} diff --git a/tests/Sanity/gcc-fedora-flags/hello.cpp b/tests/Sanity/gcc-fedora-flags/hello.cpp deleted file mode 100644 index 400612b..0000000 --- a/tests/Sanity/gcc-fedora-flags/hello.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include - -void hello() { - std::cout << "Hello World\n"; -} diff --git a/tests/Sanity/gcc-fedora-flags/main.c b/tests/Sanity/gcc-fedora-flags/main.c deleted file mode 100644 index 1a3455d..0000000 --- a/tests/Sanity/gcc-fedora-flags/main.c +++ /dev/null @@ -1,6 +0,0 @@ -void hello(); - -int main(int argc, char **argv) { - hello(); - return 0; -} diff --git a/tests/Sanity/gcc-fedora-flags/main.cpp b/tests/Sanity/gcc-fedora-flags/main.cpp deleted file mode 100644 index 1a3455d..0000000 --- a/tests/Sanity/gcc-fedora-flags/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -void hello(); - -int main(int argc, char **argv) { - hello(); - return 0; -} diff --git a/tests/Sanity/gcc-fedora-flags/main.fmf b/tests/Sanity/gcc-fedora-flags/main.fmf deleted file mode 100644 index f053025..0000000 --- a/tests/Sanity/gcc-fedora-flags/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: gcc-fedora-flags -description: '' -contact: -- Tom Stellard -component: -- annobin -test: ./runtest.sh -framework: beakerlib -recommend: -- gcc -- gcc-c++ -- annobin -- annobin-annocheck -- redhat-rpm-config -duration: 1h -extra-summary: /tools/annobin/Sanity/gcc-fedora-flags -extra-task: /tools/annobin/Sanity/gcc-fedora-flags diff --git a/tests/Sanity/gcc-fedora-flags/runtest.sh b/tests/Sanity/gcc-fedora-flags/runtest.sh deleted file mode 100755 index 8ef829f..0000000 --- a/tests/Sanity/gcc-fedora-flags/runtest.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -set -x - -default_cflags=`rpm -E %{build_cflags}` -default_cxxflags=`rpm -E %{build_cxxflags}` -default_ldflags=`rpm -E %{build_ldflags}` - -cflags=`rpm -D '%toolchain gcc' -E %{build_cflags}` -cxxflags=`rpm -D '%toolchain gcc' -E %{build_cxxflags}` -ldflags=`rpm -D '%toolchain gcc' -E %{build_ldflags}` - -set +x - -rlJournalStart -rlPhaseStartTest - rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" - - rlRun "test \"$default_cflags\" = \"$cflags\"" - rlRun "test \"$default_cxxflags\" = \"$cxxflags\"" - rlRun "test \"$default_ldflags\" = \"$ldflags\"" - - rlRun "gcc $cflags -o hello.o -c hello.c" - rlRun "annocheck hello.o" - rlRun "gcc $cflags -o main.o -c main.c" - rlRun "gcc $ldflags -o hello main.o hello.o" - rlRun "annocheck hello" - rlRun "./hello | grep \"Hello World\"" - - rlRun "g++ $cxxflags -o hello-cpp.o -c hello.cpp" - rlRun "annocheck hello-cpp.o" - rlRun "g++ $cxxflags -o main-cpp.o -c main.cpp" - rlRun "g++ $ldflags -o hello-cpp main-cpp.o hello-cpp.o" - rlRun "annocheck hello-cpp" - rlRun "./hello-cpp | grep \"Hello World\"" -rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/smoke/main.fmf b/tests/Sanity/smoke/main.fmf deleted file mode 100644 index fca8ae4..0000000 --- a/tests/Sanity/smoke/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: smoke test for annobin plugin -description: '' -contact: -- Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-plugin-gcc -- annobin-annocheck -- man-db -- gcc -duration: 48h -extra-summary: /tools/annobin/Sanity/smoke -extra-task: /tools/annobin/Sanity/smoke diff --git a/tests/Sanity/smoke/runtest.sh b/tests/Sanity/smoke/runtest.sh deleted file mode 100755 index 566e571..0000000 --- a/tests/Sanity/smoke/runtest.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Sanity/smoke -# Description: smoke test for annobin plugin -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 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/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="annobin" - -rlJournalStart - rlPhaseStartSetup - rlRun "which gcc" - rlRun "man -w annobin" - rlRun "echo $X_SCLS" - rlPhaseEnd - - rlPhaseStartTest - rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" - rlRun "echo 'int main() {return 0;}' | gcc -xc -fplugin=annobin -o /dev/null -" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd