diff --git a/Regression/bz1024162-valgrind-causes-crashes-in-signal-handlers-on/main.fmf b/Regression/bz1024162-valgrind-causes-crashes-in-signal-handlers-on/main.fmf index c5f747c..ffb39c1 100644 --- a/Regression/bz1024162-valgrind-causes-crashes-in-signal-handlers-on/main.fmf +++ b/Regression/bz1024162-valgrind-causes-crashes-in-signal-handlers-on/main.fmf @@ -2,7 +2,7 @@ summary: Test for BZ#1024162 (valgrind causes crashes in signal handlers on) description: | Bug summary: valgrind causes crashes in signal handlers on x86_64 Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1024162 -contact: Jesus Checa Hidalgo +contact: Jesus Checa Hidalgo component: - valgrind test: ./runtest.sh diff --git a/Regression/bz1305962-Valgrind-reports-uninitialised-byte-s-in-futex/main.fmf b/Regression/bz1305962-Valgrind-reports-uninitialised-byte-s-in-futex/main.fmf index 244b400..835efee 100644 --- a/Regression/bz1305962-Valgrind-reports-uninitialised-byte-s-in-futex/main.fmf +++ b/Regression/bz1305962-Valgrind-reports-uninitialised-byte-s-in-futex/main.fmf @@ -2,7 +2,7 @@ summary: Test for BZ#1305962 (Valgrind reports uninitialised byte(s) in futex) description: | Bug summary: Valgrind reports uninitialised byte(s) in futex Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1305962 -contact: Jesus Checa Hidalgo +contact: Jesus Checa Hidalgo component: - valgrind test: ./runtest.sh diff --git a/Regression/bz1584654-valgrind-utimensat-should-ignore-timespec-tv-sec/main.fmf b/Regression/bz1584654-valgrind-utimensat-should-ignore-timespec-tv-sec/main.fmf index d0217bc..97b4e3b 100644 --- a/Regression/bz1584654-valgrind-utimensat-should-ignore-timespec-tv-sec/main.fmf +++ b/Regression/bz1584654-valgrind-utimensat-should-ignore-timespec-tv-sec/main.fmf @@ -2,7 +2,7 @@ summary: Test for BZ#1584654 (valgrind utimensat should ignore timespec tv_sec) description: | valgrind utimensat should ignore timespec tv_sec when tv_nsec is UTIME_NOW or UTIME_OMIT -contact: Jesus Checa Hidalgo +contact: Jesus Checa Hidalgo component: - valgrind test: ./runtest.sh diff --git a/Regression/bz2067187-vex-temporary-storage-exhausted-by-ppc64le-vector-insns/main.fmf b/Regression/bz2067187-vex-temporary-storage-exhausted-by-ppc64le-vector-insns/main.fmf new file mode 100644 index 0000000..dd97459 --- /dev/null +++ b/Regression/bz2067187-vex-temporary-storage-exhausted-by-ppc64le-vector-insns/main.fmf @@ -0,0 +1,27 @@ +summary: ppc64le vpermq insn vex temp storage exhausted +description: Test that ppc64le vector instructions don't exhaust vex temp storage +contact: Jesus Checa Hidalgo +component: + - valgrind +test: ./runtest.sh +framework: beakerlib +require: + - gcc +link: + - verifies: https://bugzilla.redhat.com/show_bug.cgi?id=2067187 +duration: 5m +tier: 1 +tag: + - CI-Tier-1 +adjust: + - enabled: false + when: arch != ppc64le + continue: false + - test: scl enable $COLLECTIONS -- ./runtest.sh + when: collection is defined + - require+: + - valgrind + when: collection is not defined +extra-nitrate: TC#0613214 +extra-summary: /tools/valgrind/Regression/bz2067187-vex-temporary-storage-exhausted-by-ppc64le-vector-insns +extra-task: /tools/valgrind/Regression/bz2067187-vex-temporary-storage-exhausted-by-ppc64le-vector-insns diff --git a/Regression/bz2067187-vex-temporary-storage-exhausted-by-ppc64le-vector-insns/runtest.sh b/Regression/bz2067187-vex-temporary-storage-exhausted-by-ppc64le-vector-insns/runtest.sh new file mode 100755 index 0000000..e167c2b --- /dev/null +++ b/Regression/bz2067187-vex-temporary-storage-exhausted-by-ppc64le-vector-insns/runtest.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +rlJournalStart + rlPhaseStartSetup + rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory" + rlRun "cp vbpermq_test.c $tmp" + rlRun "pushd $tmp" + rlRun "set -o pipefail" + rlPhaseEnd + + rlPhaseStartTest + rlRun "gcc vbpermq_test.c -o vbpermq_test" 0 "Building reproducer" + rlRun "valgrind --log-file=valgrind.out ./vbpermq_test" + rlLog "$(cat valgrind.out)" + rlAssertNotGrep "VEX temporary storage exhausted." valgrind.out + rlAssertNotGrep "impossible' happened" valgrind.out + # Ensure valgrind finished clean + rlAssertGrep "ERROR SUMMARY: 0 errors from 0 contexts" valgrind.out + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $tmp" 0 "Remove tmp directory" + rlPhaseEnd +rlJournalEnd diff --git a/Regression/bz2067187-vex-temporary-storage-exhausted-by-ppc64le-vector-insns/vbpermq_test.c b/Regression/bz2067187-vex-temporary-storage-exhausted-by-ppc64le-vector-insns/vbpermq_test.c new file mode 100644 index 0000000..0e044f5 --- /dev/null +++ b/Regression/bz2067187-vex-temporary-storage-exhausted-by-ppc64le-vector-insns/vbpermq_test.c @@ -0,0 +1,8 @@ +int main(){ + asm("vbpermq 6,6,10"); + asm("vbpermq 7,7,10"); + asm("vbpermq 8,8,10"); + asm("vbpermq 9,9,10"); + asm("vbpermq 10,10,10"); + return 0; +} diff --git a/Regression/bz2081583-missing-strncmp-intercept-for-ld-so/iconv_test.c b/Regression/bz2081583-missing-strncmp-intercept-for-ld-so/iconv_test.c new file mode 100644 index 0000000..20d5418 --- /dev/null +++ b/Regression/bz2081583-missing-strncmp-intercept-for-ld-so/iconv_test.c @@ -0,0 +1,8 @@ +#include + +int main(void) +{ + iconv_t fd = iconv_open("UTF-8", "EUC-JP"); + iconv_close(fd); + return 0; +} diff --git a/Regression/bz2081583-missing-strncmp-intercept-for-ld-so/main.fmf b/Regression/bz2081583-missing-strncmp-intercept-for-ld-so/main.fmf new file mode 100644 index 0000000..f5e1328 --- /dev/null +++ b/Regression/bz2081583-missing-strncmp-intercept-for-ld-so/main.fmf @@ -0,0 +1,27 @@ +summary: Test strncmp intercept for ld.so +contact: Jesus Checa Hidalgo +component: + - valgrind +test: ./runtest.sh +framework: beakerlib +require: + - gcc +link: + - verifies: https://bugzilla.redhat.com/show_bug.cgi?id=2086540 + - verifies: https://bugzilla.redhat.com/show_bug.cgi?id=2081583 +duration: 5m +tier: 1 +tag: + - CI-Tier-1 +adjust: + - enabled: false + when: distro < rhel-9 + continue: false + - test: scl enable $COLLECTIONS -- ./runtest.sh + when: collection is defined + - require+: + - valgrind + when: collection is not defined +extra-nitrate: TC#0613680 +extra-summary: /tools/valgrind/Regression/bz2081583-missing-strncmp-intercept-for-ld-so +extra-task: /tools/valgrind/Regression/bz2081583-missing-strncmp-intercept-for-ld-so diff --git a/Regression/bz2081583-missing-strncmp-intercept-for-ld-so/runtest.sh b/Regression/bz2081583-missing-strncmp-intercept-for-ld-so/runtest.sh new file mode 100755 index 0000000..9d5dedb --- /dev/null +++ b/Regression/bz2081583-missing-strncmp-intercept-for-ld-so/runtest.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +rlJournalStart + rlPhaseStartSetup + rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory" + rlRun "cp iconv_test.c $tmp/" + rlRun "pushd $tmp" + rlRun "set -o pipefail" + rlPhaseEnd + + rlPhaseStartTest + rlRun "gcc -o iconv_test iconv_test.c" + rlRun "valgrind --log-file=valgrind.out ./iconv_test" + rlAssertNotGrep "Invalid read of size" valgrind.out + rlAssertNotGrep "strncmp" valgrind.out + # Ensure valgrind finished clean + if ! rlAssertGrep "ERROR SUMMARY: 0 errors from 0 contexts" valgrind.out; + then + rlLog "`cat valgrind.out`" + fi + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $tmp" 0 "Remove tmp directory" + rlPhaseEnd +rlJournalEnd diff --git a/Regression/bz2214375-memmove_chk-seen-as-memcpy_chk/main.fmf b/Regression/bz2214375-memmove_chk-seen-as-memcpy_chk/main.fmf new file mode 100644 index 0000000..25833cd --- /dev/null +++ b/Regression/bz2214375-memmove_chk-seen-as-memcpy_chk/main.fmf @@ -0,0 +1,13 @@ +summary: Test that valgrind does not do overlap checks for memmove +contact: Jesus Checa Hidalgo +component: + - valgrind +test: ./runtest.sh +framework: beakerlib +require: + - valgrind + - gcc +duration: 5m +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2214375 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2214374 \ No newline at end of file diff --git a/Regression/bz2214375-memmove_chk-seen-as-memcpy_chk/reproducer.c b/Regression/bz2214375-memmove_chk-seen-as-memcpy_chk/reproducer.c new file mode 100644 index 0000000..80d4b4c --- /dev/null +++ b/Regression/bz2214375-memmove_chk-seen-as-memcpy_chk/reproducer.c @@ -0,0 +1,18 @@ +#include +#include + +volatile char *s; + +char * +__memcpy_chk(char *d, const char *s, size_t n, size_t dn); + +char * +__memmove_chk(char *d, const char *s, size_t n, size_t dn); + +int main(int argc,const char *argv[]) +{ + char buffer[100]; + __memcpy_chk(buffer, &buffer[20], 9, 100); + __memmove_chk(buffer, &buffer[1], 99, 100); + return 0; +} \ No newline at end of file diff --git a/Regression/bz2214375-memmove_chk-seen-as-memcpy_chk/runtest.sh b/Regression/bz2214375-memmove_chk-seen-as-memcpy_chk/runtest.sh new file mode 100755 index 0000000..0b4e42b --- /dev/null +++ b/Regression/bz2214375-memmove_chk-seen-as-memcpy_chk/runtest.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +rlJournalStart + rlPhaseStartSetup + rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory" + rlRun "cp reproducer.c $tmp" + rlRun "pushd $tmp" + rlRun "set -o pipefail" + rlPhaseEnd + + rlPhaseStartTest + rlRun "gcc -Wno-builtin-declaration-mismatch -g -o reproducer reproducer.c" + + rlRun "valgrind ./reproducer 2> output.log" 0 "Running reproducer" + rlAssertNotGrep "overlap in memcpy_chk" output.log + rlAssertGrep "ERROR SUMMARY: 0 errors from 0 contexts " output.log + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $tmp" 0 "Remove tmp directory" + rlPhaseEnd +rlJournalEnd diff --git a/Regression/bz549333-valgrind-reports-errors-on-adjtimex-ADJ_OFFSET_SS_READ/main.fmf b/Regression/bz549333-valgrind-reports-errors-on-adjtimex-ADJ_OFFSET_SS_READ/main.fmf index 65a5997..8602bfb 100644 --- a/Regression/bz549333-valgrind-reports-errors-on-adjtimex-ADJ_OFFSET_SS_READ/main.fmf +++ b/Regression/bz549333-valgrind-reports-errors-on-adjtimex-ADJ_OFFSET_SS_READ/main.fmf @@ -1,6 +1,6 @@ summary: Test adjtimex syscall support description: Ensure adjtimex wrapper works in readonly adjtime mode -contact: Jesus Checa Hidalgo +contact: Jesus Checa Hidalgo component: - valgrind test: ./runtest.sh diff --git a/Regression/bz580078-valgrind-aborts-with-vex-x86-IR-unhandled-instruction-bytes/case1.c b/Regression/bz580078-valgrind-aborts-with-vex-x86-IR-unhandled-instruction-bytes/case1.c index 525db32..95b5e2b 100644 --- a/Regression/bz580078-valgrind-aborts-with-vex-x86-IR-unhandled-instruction-bytes/case1.c +++ b/Regression/bz580078-valgrind-aborts-with-vex-x86-IR-unhandled-instruction-bytes/case1.c @@ -1,6 +1,8 @@ #include #include +extern int NSS_NoDB_Init(void*); + int main() { NSS_NoDB_Init(NULL); diff --git a/Regression/bz580078-valgrind-aborts-with-vex-x86-IR-unhandled-instruction-bytes/main.fmf b/Regression/bz580078-valgrind-aborts-with-vex-x86-IR-unhandled-instruction-bytes/main.fmf index d938426..e488ec0 100644 --- a/Regression/bz580078-valgrind-aborts-with-vex-x86-IR-unhandled-instruction-bytes/main.fmf +++ b/Regression/bz580078-valgrind-aborts-with-vex-x86-IR-unhandled-instruction-bytes/main.fmf @@ -1,6 +1,6 @@ summary: makes sure valgrind does not abort with unhandled instruction bytes description: '' -contact: Jesus Checa Hidalgo +contact: Jesus Checa Hidalgo component: - valgrind test: ./runtest.sh @@ -45,6 +45,15 @@ adjust: - enabled: false when: arch != x86_64 + # No i686 in RHEL-10+ + - enabled: false + when: distro >= rhel-10 + + # Testing farm does not support installing i686 packages in bodhi update testing, + # so we disable this test there until that capacity is implemented. + - enabled: false + when: distro == fedora and trigger == build + extra-nitrate: TC#0063646 extra-summary: /tools/valgrind/Regression/bz580078-valgrind-aborts-with-vex-x86-IR-unhandled-instruction-bytes extra-task: /tools/valgrind/Regression/bz580078-valgrind-aborts-with-vex-x86-IR-unhandled-instruction-bytes diff --git a/Regression/bz584804-missing-config-h-header/main.fmf b/Regression/bz584804-missing-config-h-header/main.fmf index c52f4fa..22b7219 100644 --- a/Regression/bz584804-missing-config-h-header/main.fmf +++ b/Regression/bz584804-missing-config-h-header/main.fmf @@ -1,6 +1,6 @@ summary: tests missing config.h header description: '' -contact: Jesus Checa Hidalgo +contact: Jesus Checa Hidalgo component: - valgrind test: ./runtest.sh diff --git a/Regression/kde470978-ioctl-kvm_create_vm-s390x-pgste/main.fmf b/Regression/kde470978-ioctl-kvm_create_vm-s390x-pgste/main.fmf new file mode 100644 index 0000000..7e64471 --- /dev/null +++ b/Regression/kde470978-ioctl-kvm_create_vm-s390x-pgste/main.fmf @@ -0,0 +1,21 @@ +summary: Test ioctl(KVM_CREATE_VM) in s390x +description: > + KVM guests on s390x need PGSTE enabled to be created. If valgrind runs a + binary that creates a guest, it also need PGSTE enabled or the VM creation + would fail. +contact: Jesus Checa Hidalgo +component: + - valgrind +test: ./runtest.sh +framework: beakerlib +require: + - valgrind + - gcc +duration: 5m +link: + - relates: https://bugs.kde.org/show_bug.cgi?id=470978 + +adjust: + - because: "Test applicable to s390x only" + enabled: false + when: arch != s390x diff --git a/Regression/kde470978-ioctl-kvm_create_vm-s390x-pgste/reproducer.c b/Regression/kde470978-ioctl-kvm_create_vm-s390x-pgste/reproducer.c new file mode 100644 index 0000000..607a527 --- /dev/null +++ b/Regression/kde470978-ioctl-kvm_create_vm-s390x-pgste/reproducer.c @@ -0,0 +1,31 @@ +#include +#include +#include +#include +#include +#include + +int main(){ + int result = 0; + + int kvm_fd = open("/dev/kvm", O_RDWR); + if (kvm_fd < 0) { + perror("open /dev/kvm failed"); + result = -1; + } + + int vm_fd; + do { + vm_fd = ioctl(kvm_fd, KVM_CREATE_VM, 0); + } while( vm_fd == -1 && errno == EINTR); + + if( vm_fd < 0){ + perror ("ioctl KVM_CREATE_VM failed"); + result = -1; + } + + if (kvm_fd >= 0) close(kvm_fd); + if (vm_fd >=0) close(vm_fd); + + return result; +} diff --git a/Regression/kde470978-ioctl-kvm_create_vm-s390x-pgste/runtest.sh b/Regression/kde470978-ioctl-kvm_create_vm-s390x-pgste/runtest.sh new file mode 100755 index 0000000..8af54f6 --- /dev/null +++ b/Regression/kde470978-ioctl-kvm_create_vm-s390x-pgste/runtest.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +rlJournalStart + rlPhaseStartSetup + rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory" + rlRun "cp reproducer.c $tmp" + rlRun "pushd $tmp" + rlRun "set -o pipefail" + rlPhaseEnd + + rlPhaseStartTest + rlRun "gcc -g -o reproducer reproducer.c -Wl,--s390-pgste" + + rlRun "./reproducer 2> output.log" 0 "Running reproducer" + rlAssertNotGrep "ioctl KVM_CREATE_VM failed" output.log + + rlRun "valgrind ./reproducer 2> output.log" 0 "Running with valgrind" + rlAssertNotGrep "ioctl KVM_CREATE_VM failed" output.log + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $tmp" 0 "Remove tmp directory" + rlPhaseEnd +rlJournalEnd diff --git a/Regression/kde476548-contiguous-rodata-sections/hello.c b/Regression/kde476548-contiguous-rodata-sections/hello.c new file mode 100644 index 0000000..eed907c --- /dev/null +++ b/Regression/kde476548-contiguous-rodata-sections/hello.c @@ -0,0 +1,11 @@ +#include + +__attribute__((section(".rodatac"))) +const char * const constchars = "abcde"; +__attribute__((section(".rodatan"))) +const char * const constnums = "123"; + +int main () { + const char * const constmain = "mainmainmain"; + char *leak = (char*) malloc(16); +} diff --git a/Regression/kde476548-contiguous-rodata-sections/main.fmf b/Regression/kde476548-contiguous-rodata-sections/main.fmf new file mode 100644 index 0000000..9b83693 --- /dev/null +++ b/Regression/kde476548-contiguous-rodata-sections/main.fmf @@ -0,0 +1,16 @@ +summary: Test contiguous rodata sections are processed correctly +description: | + "Valgrind should process contiguous rodata segments as different sections + instead of merging them together" +contact: Jesus Checa Hidalgo +test: ./test.sh +framework: beakerlib +duration: 5m +require: + - valgrind + - elfutils + - gcc +tier: 1 +link: + - verifies: https://issues.redhat.com/browse/RHEL-18086 + - relates: https://bugs.kde.org/show_bug.cgi?id=476548 diff --git a/Regression/kde476548-contiguous-rodata-sections/test.sh b/Regression/kde476548-contiguous-rodata-sections/test.sh new file mode 100755 index 0000000..a344b88 --- /dev/null +++ b/Regression/kde476548-contiguous-rodata-sections/test.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +rlJournalStart + rlPhaseStartSetup + rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory" + rlRun "cp hello.c $tmp" + rlRun "pushd $tmp" + rlRun "set -o pipefail" + rlPhaseEnd + + rlPhaseStartTest + rlRun "gcc -g -o test hello.c" + rlRun "eu-strip -o t.exec -f t.debug test" + rlRun "valgrind --log-file=valgrind.output ./t.exec" + rlAssertNotGrep "Assertion 'di->rodata_size == a_shdr.sh_size' failed" valgrind.output + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $tmp" 0 "Remove tmp directory" + rlPhaseEnd +rlJournalEnd diff --git a/Sanity/32bit-on-64bit-os/main.fmf b/Sanity/32bit-on-64bit-os/main.fmf index 0f30efb..af58f83 100644 --- a/Sanity/32bit-on-64bit-os/main.fmf +++ b/Sanity/32bit-on-64bit-os/main.fmf @@ -1,5 +1,5 @@ summary: Try to run 32bit binary under valgrind on 64bit arch -contact: Jesus Checa Hidalgo +contact: Jesus Checa Hidalgo component: - valgrind test: ./runtest.sh @@ -26,6 +26,15 @@ adjust: - enabled: false when: arch != x86_64 + # No i686 in RHEL-10+ + - enabled: false + when: distro >= rhel-10 + + # Testing farm does not support installing i686 packages in bodhi update testing, + # so we disable this test there until that capacity is implemented. + - enabled: false + when: distro == fedora and trigger == build + # system-version/collection adjustments - require+: - valgrind diff --git a/Sanity/bz672959-RFE-Integrate-valgrind-with-gdb-possibly-through/main.fmf b/Sanity/bz672959-RFE-Integrate-valgrind-with-gdb-possibly-through/main.fmf index 015fec7..e22435e 100644 --- a/Sanity/bz672959-RFE-Integrate-valgrind-with-gdb-possibly-through/main.fmf +++ b/Sanity/bz672959-RFE-Integrate-valgrind-with-gdb-possibly-through/main.fmf @@ -2,7 +2,7 @@ summary: Valgrind/gdb integration sanity test. description: | This is small sanity test to make sure gdb works with valgrind gdb server. Also tests dwz if dwz is available. -contact: Jesus Checa Hidalgo +contact: Jesus Checa Hidalgo component: - valgrind test: ./runtest.sh diff --git a/Sanity/does-Image-Magick-works-under-valgrind/main.fmf b/Sanity/does-Image-Magick-works-under-valgrind/main.fmf index 6af2ffd..af58865 100644 --- a/Sanity/does-Image-Magick-works-under-valgrind/main.fmf +++ b/Sanity/does-Image-Magick-works-under-valgrind/main.fmf @@ -4,7 +4,7 @@ description: Testing sanity of valgrind by comparing outputs of ImageMagick util https://en.wikipedia.org/wiki/File:Frauenkirche_and_Neues_Rathaus_Munich_March_2013.JPG. munich.jpg file is distributed under the Creative Commons Attribution-Share Alike 3.0 Unported license -contact: Jesus Checa Hidalgo +contact: Jesus Checa Hidalgo component: - valgrind test: ./runtest.sh @@ -23,7 +23,8 @@ tag: - tools-tip-on adjust: - enabled: false - when: distro < rhel-6 + # ImageMagick is not distributed with RHEL from RHEL8 onwards + when: distro < rhel-6 or distro >= rhel-8 continue: false # system-version/collection adjustments diff --git a/Sanity/does-Image-Magick-works-under-valgrind/runtest.sh b/Sanity/does-Image-Magick-works-under-valgrind/runtest.sh index 0227f5b..a1bc424 100755 --- a/Sanity/does-Image-Magick-works-under-valgrind/runtest.sh +++ b/Sanity/does-Image-Magick-works-under-valgrind/runtest.sh @@ -31,7 +31,6 @@ Options=(-flop -equalize -motion-blur\ 20x5 -paint\ 3x3 - -radial-blur\ 5 -posterize\ 10 ) diff --git a/Sanity/does-aspell-works-under-valgrind/main.fmf b/Sanity/does-aspell-works-under-valgrind/main.fmf index 21dce7b..8e313c8 100644 --- a/Sanity/does-aspell-works-under-valgrind/main.fmf +++ b/Sanity/does-aspell-works-under-valgrind/main.fmf @@ -2,7 +2,7 @@ summary: Sanity test using hunspell. description: | The test runs hunspell with and without valgrind and checks that the outputs do not differ. -contact: Jesus Checa Hidalgo +contact: Jesus Checa Hidalgo component: - valgrind test: ./runtest.sh diff --git a/Sanity/install-weak-deps/main.fmf b/Sanity/install-weak-deps/main.fmf new file mode 100644 index 0000000..9e4aa46 --- /dev/null +++ b/Sanity/install-weak-deps/main.fmf @@ -0,0 +1,6 @@ +summary: Make sure dnf installs weak dep packages (such as valgrind + valgrind-scripts) +test: ./runtest.sh +framework: beakerlib +require: + - rpm-build + - createrepo diff --git a/Sanity/install-weak-deps/runtest.sh b/Sanity/install-weak-deps/runtest.sh new file mode 100755 index 0000000..b952e10 --- /dev/null +++ b/Sanity/install-weak-deps/runtest.sh @@ -0,0 +1,50 @@ +#!/bin/bash +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +DNFSWITCHES="--disablerepo=\* --enablerepo=mytestingrepo" + +rlJournalStart + rlPhaseStartSetup + rlRun "dnf -y remove trivial-empty\* ||:" + rlRun "rm /etc/yum.repos.d/mytestingrepo.repo ||:" + rlPhaseEnd + + rlPhaseStartTest + rlRun "rpmbuild -ba trivial-empty-v1.spec" + rlRun "rpmbuild -ba trivial-empty-v2.spec" + rlRun "a=$(rpm -E '%_arch')" + rlRun "pushd $HOME/rpmbuild/RPMS/$a" + rlRun "createrepo ." + rlRun "popd" + rlRun "rpm -Uvh --nosignature $HOME/rpmbuild/RPMS/$a/trivial-empty-1.0-1*" + rlRun "rpm -qa | grep -F trivial-empty-sub" 1 + rlRun "rpm -qa | grep -F trivial-empty-1.0-1" + rlRun "rpm -qa | grep -F trivial-empty-1.0-2" 1 + cat > /etc/yum.repos.d/mytestingrepo.repo < - 1.0-1 +- Initial creation of a trivial RPM with no payload diff --git a/Sanity/install-weak-deps/trivial-empty-v2.spec b/Sanity/install-weak-deps/trivial-empty-v2.spec new file mode 100644 index 0000000..155b79c --- /dev/null +++ b/Sanity/install-weak-deps/trivial-empty-v2.spec @@ -0,0 +1,52 @@ +Name: trivial-empty +Version: 1.0 +Release: 2%{?dist} +Epoch: 1 +Summary: A trivial RPM package with an empty payload + +License: MIT +BuildArch: %_arch + +# Set weak dependency on trivial-empty-sub which is a new subpackage +# introduced within this update +Recommends: trivial-empty-sub = %{epoch}:%{version}-%{release} +# Requires: trivial-empty-sub = %{epoch}:%{version}-%{release} + +# Description of the package +%description +This is a trivial RPM package with no payload. It serves as an example +of how to create an RPM specfile with minimal content. + +%package sub +Summary: A trivial RPM subpackage with an empty payload +# Description for the subpackage +%description sub +This is a subpackage of trivial-empty, with an empty payload. + +# Prep stage: nothing to prepare +%prep +# Empty section + +# Build stage: nothing to build +%build +# Empty section + +# Install stage: nothing to install +%install +# Empty section + +# Files: no files to include +%files +# Empty section + +# Subpackage files: no files to include +%files sub +# Empty section + +# Changelog for the RPM package +%changelog +* Thu Jan 16 2025 Example Maintainer - 1.0-2 +- Initial creation of the trivial RPM with no payload + +* Thu Jan 16 2025 Example Maintainer - 1.0-1 +- Initial creation of a trivial RPM with no payload diff --git a/Sanity/quick-valgrind-sanity/main.fmf b/Sanity/quick-valgrind-sanity/main.fmf index e72e658..a194843 100644 --- a/Sanity/quick-valgrind-sanity/main.fmf +++ b/Sanity/quick-valgrind-sanity/main.fmf @@ -1,6 +1,6 @@ summary: Basic smoke test. description: Very fast check that valgrind is working. -contact: Jesus Checa Hidalgo +contact: Jesus Checa Hidalgo component: - valgrind test: ./runtest.sh diff --git a/Sanity/valgrind-scripts-smoke/main.fmf b/Sanity/valgrind-scripts-smoke/main.fmf new file mode 100644 index 0000000..9b05b94 --- /dev/null +++ b/Sanity/valgrind-scripts-smoke/main.fmf @@ -0,0 +1,10 @@ +summary: Smoke test for valgrind scripts +contact: Jesus Checa Hidalgo +component: + - valgrind +test: ./runtest.sh +framework: beakerlib +require: + - valgrind +tier: 1 +duration: 5m \ No newline at end of file diff --git a/Sanity/valgrind-scripts-smoke/runtest.sh b/Sanity/valgrind-scripts-smoke/runtest.sh new file mode 100755 index 0000000..461dc56 --- /dev/null +++ b/Sanity/valgrind-scripts-smoke/runtest.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +VERSION=$(rpm -q --queryformat="%{version}" valgrind.$(uname -m)) +rlJournalStart + rlPhaseStartSetup + rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory" + rlRun "pushd $tmp" + rlRun "set -o pipefail" + rlPhaseEnd + + rlPhaseStartTest + for prog in $(rpm -ql valgrind | grep ^/usr/bin); do + if file $prog | grep -q ELF; then + rlLogDebug "Skipping ELF executable ${prog}" + continue + fi + + LOGFILE="$(basename $prog).log" + if ${prog} --version &> $LOGFILE; then + rlPass "[ok] $prog" + continue + fi + + # Perl scripts might return other than 0 but still be correct. + # This is because some of them print the version/help message with + # die() instead doing a print() and exit. die() always set the + # return code to 255. Hence we rely on grepping the version string, + # and make sure that the log contains only one line. + if grep -q "$(basename $prog)-${VERSION}" $LOGFILE \ + && [[ $(wc -l < $LOGFILE) -eq "1" ]]; + then + rlPass "[ok] $prog" + continue + fi + + # Anything else is a failure + rlFail "[fail] $prog" + rlLog "$(cat $LOGFILE)" + done + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $tmp" 0 "Remove tmp directory" + rlPhaseEnd +rlJournalEnd diff --git a/main.fmf b/main.fmf index 7eb3165..6f178b8 100644 --- a/main.fmf +++ b/main.fmf @@ -1,2 +1,2 @@ # QE owner -contact: Jesus Checa Hidalgo +contact: Jesus Checa Hidalgo