I would like to contribute stress-ng. Also present in Debian, Fedora, FreeBSD, Ubuntu, ...

https://github.com/ColinIanKing/stress-ng

SUMMARY="Tool to load and stress a computer"

DESCRIPTION="\
The stress-ng tool can stress various subsystems of a computer.  It can
stress load CPU, cache, disk, memory, socket and pipe I/O, scheduling
and much more.  It is a re-write of the original 'stress' tool but has
many additional features and considerably more stress mechanisms."

stress-ng-0.18.04-1.tar.gz:
usr/bin/stress-ng.exe
usr/share/bash-completion/completions/stress-ng
usr/share/doc/stress-ng/COPYING.gz
usr/share/doc/stress-ng/README.md
usr/share/doc/stress-ng/TODO
usr/share/doc/stress-ng/syscalls.txt
usr/share/man/man1/stress-ng.1.gz
usr/share/stress-ng/example-jobs/cpu-cache.job
usr/share/stress-ng/example-jobs/cpu.job
usr/share/stress-ng/example-jobs/device.job
usr/share/stress-ng/example-jobs/example.job
usr/share/stress-ng/example-jobs/filesystem.job
usr/share/stress-ng/example-jobs/hot-cpu.job
usr/share/stress-ng/example-jobs/interrupt.job
usr/share/stress-ng/example-jobs/io.job
usr/share/stress-ng/example-jobs/matrix-methods.job
usr/share/stress-ng/example-jobs/memory.job
usr/share/stress-ng/example-jobs/network.job
usr/share/stress-ng/example-jobs/pipe.job
usr/share/stress-ng/example-jobs/scheduler.job
usr/share/stress-ng/example-jobs/security.job
usr/share/stress-ng/example-jobs/vm.job

--
Regards,
Christian

# cygport script for stress-ng
NAME=stress-ng
VERSION=0.18.04
GIT_REV=77bb7ae
RELEASE=1
SOURCE_DATE="2024-09-13 17:00:00 UTC"

SUMMARY="Tool to load and stress a computer"

DESCRIPTION="\
The stress-ng tool can stress various subsystems of a computer.  It can
stress load CPU, cache, disk, memory, socket and pipe I/O, scheduling
and much more.  It is a re-write of the original 'stress' tool but has
many additional features and considerably more stress mechanisms."

LICENSE="GPL-2.0-or-later"
CATEGORY="Utils"

REQUIRES="" # libbsd0 libcrypt2 libgcc1 libgmp10 libjpeg8 libmpfr6
            # libstdc++6 zlib0
BUILD_REQUIRES="cygwin-devel eigen3 libbsd-devel libcrypt-devel
                libgmp-devel libjpeg-devel libmpfr-devel zlib-devel"
              # binutils gcc-g++ gzip make

HOMEPAGE="https://github.com/ColinIanKing/stress-ng";
SRC_URI="https://github.com/ColinIanKing/stress-ng/tarball/V${PV}#/${P}.tar.gz";
SRC_DIR="ColinIanKing-stress-ng-${GIT_REV}"

SOURCE_DATE_EPOCH=$(date -d "$SOURCE_DATE" +%s) # 'export' not needed

src_compile() {
        cd ${B}

        # Makefile does not support builds outside of srcdir
        lndirs

        # Create config and configs/HAVE_*
        cygmake config

        # Ensure that all BUILD_REQUIRES were detected
        local d
        for d in \
          ATOMIC EIGEN LIB_ACL LIB_BSD LIB_CRYPT LIB_GMP LIB_JPEG LIB_MPFR \
          LIB_PTHREAD LIB_Z
        do
                grep " HAVE_$d\$" "configs/HAVE_$d" >/dev/null 2>&1 \
                || error "'HAVE_$d' not set because the required library is 
missing"
        done

        # __USE_GNU fixes misdetection of musl libc
        # PRESERVE_CFLAGS prevents that _FORTIFY_SOURCE=3 is downgraded to 2
        cygmake CFLAGS="${CFLAGS} -D__USE_GNU" PRESERVE_CFLAGS=1 VERBOSE=1
}

src_test() {
        cd ${B}

        # Run supported subset from debian/tests/lite-test
        local e=0 n=0 s t
        for t in \
          atomic branch cache cpu funccall funcret get heapsort hsearch \
          icache lsearch matrix matrix-3d memcpy mergesort nop null pthread \
          qsort radixsort rdrand shellsort skiplist sleep str stream switch \
          sysinfo tree tsearch vecmath wait
        do
                echo "*** Stress test $((++n)): $t ***"
                s=0
                ./stress-ng -v -M -t 1 --$t 4 --timestamp --verify || s=$?
                if [ $s != 0 ]; then
                        warning "Stress test '$t' failed with status=$s"
                        : $((++e))
                fi
        done

        test $e = 0 || error "$e of $n stress test(s) failed"
        inform "All $n stress tests succeeded"
}

src_install() {
        cd ${B}
        cyginstall

        cd ${S}
        dodoc COPYING syscalls.txt
        gzip -9nv ${D}/usr/share/doc/${PN}/COPYING
}

Reply via email to