diff --git a/.gitignore b/.gitignore index 1442bfe..702599e 100644 --- a/.gitignore +++ b/.gitignore @@ -78,3 +78,38 @@ /systemtap-4.7~pre16433134g7d871ab5.tar.gz /systemtap-4.7~pre16468670g9f253544.tar.gz /systemtap-4.7.tar.gz +/systemtap-4.8~pre16557277g2882dcc9.tar.gz +/systemtap-4.8~pre16578235g069e109c.tar.gz +/systemtap-4.8~pre16594727g09f1b7bb.tar.gz +/systemtap-4.8~pre16594741g5bdc37b9.tar.gz +/systemtap-4.8~pre16650659g6a096a7d.tar.gz +/systemtap-4.8.tar.gz +/systemtap-4.9.tar.gz +/systemtap-5.0~pre16885197g6b17715f.tar.gz +/systemtap-5.0~pre16885234gd98d6c2d.tar.gz +/systemtap-5.0~pre16890184ge891a37e.tar.gz +/systemtap-5.0~pre16891249ge891a37e.tar.gz +/systemtap-5.0~pre16958465gca71442b.tar.gz +/systemtap-5.0.tar.gz +/systemtap-5.1~pre17056120g2ccc0c4c.tar.gz +/systemtap-5.1~pre17056139g6c0b92b3.tar.gz +/systemtap-5.1~pre17059382g67086c54.tar.gz +/systemtap-5.1~pre17060399gb6abf4bd.tar.gz +/systemtap-5.1~pre17062114g2604d135.tar.gz +/systemtap-5.1~pre17062192g5fd8daba.tar.gz +/systemtap-5.1.tar.gz +/systemtap-5.1~pre17206206ge48abca5.tar.gz +/systemtap-5.2~pre17206355g1a07290a.tar.gz +/systemtap-5.2~pre17224323g98d1ea34.tar.gz +/systemtap-5.2~pre17250223gd07e4284.tar.gz +/systemtap-5.2~pre17277956g0b7f6722.tar.gz +/systemtap-5.2~pre17283218gc5774e18.tar.gz +/systemtap-5.2.tar.gz +/systemtap-5.2~pre17373420g1e894ff0.tar.gz +/systemtap-5.3~pre17373422g9a48fbea.tar.gz +/systemtap-5.3~pre17373794g3efe129d.tar.gz +/systemtap-5.3~pre17373816g7a71d34b.tar.gz +/systemtap-5.3.tar.gz +/systemtap-5.4~pre17585473g1fe4178d.tar.gz +/systemtap-5.4~pre17585496g86ab88eb.tar.gz +/systemtap-5.4.tar.gz diff --git a/gating.yaml b/gating.yaml index ff1fcc6..a2c8282 100644 --- a/gating.yaml +++ b/gating.yaml @@ -1,7 +1,15 @@ --- !Policy product_versions: - fedora-* -decision_context: bodhi_update_push_stable +decision_contexts: [bodhi_update_push_testing] +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} + - !PassingTestCaseRule {test_case_name: baseos-qe.koji-build.scratch-build.validation} +--- !Policy +product_versions: + - fedora-* +decision_contexts: [bodhi_update_push_stable] subject_type: koji_build rules: - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} diff --git a/plans/ci.fmf b/plans/ci.fmf index e1aad9b..7009e4e 100644 --- a/plans/ci.fmf +++ b/plans/ci.fmf @@ -1,11 +1,12 @@ summary: CI Gating Plan discover: - how: fmf - directory: tests + how: fmf + url: https://src.fedoraproject.org/tests/systemtap-gating.git + ref: main + directory: tests prepare: - how: install - exclude: - - glibc-headers-x86 - - glibc-headers-s390 + - name: prepare + how: shell + script: ./plans/prepare.sh execute: - how: beakerlib + how: tmt diff --git a/plans/ci/prepare/prepare.fmf b/plans/ci/prepare/prepare.fmf deleted file mode 100755 index 23e61d1..0000000 --- a/plans/ci/prepare/prepare.fmf +++ /dev/null @@ -1,7 +0,0 @@ -summary: Setup task -prepare: - script: ./plans/ci/prepare/prepare.sh -recommend: -- koji -- bind-utils -- avahi-tools diff --git a/plans/ci/prepare/prepare.sh b/plans/prepare.sh similarity index 82% rename from plans/ci/prepare/prepare.sh rename to plans/prepare.sh index 368ea84..dfce543 100755 --- a/plans/ci/prepare/prepare.sh +++ b/plans/prepare.sh @@ -1,12 +1,9 @@ #!/bin/bash -export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS" -export DEBUGINFOD_TIMEOUT=300 - # On Rawhide, the running kernel packages won't probably be avail in # configured repos. Debuginfo isn't a problem, we access that using # the debuginfod. -__install_deps () +__fedora_install_deps () { TMPD=$(mktemp -d) pushd $TMPD @@ -20,8 +17,12 @@ __install_deps () set -xe +source /etc/os-release + # Install needed packages -stap-prep || __install_deps +if [ "$ID" == "fedora" ]; then + stap-prep || __fedora_install_deps +fi stap-prep # Report installed packages diff --git a/sources b/sources index b708a2e..a210820 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (systemtap-4.7.tar.gz) = 7d7c213dc4f7c5430f81763668da21403fbc351d1701b1096eb1ad233e3f0325e35f01dfd0a33e75f277b26fdde88c46d42dd32e32e4d4f27a45d53e2dd0f831 +SHA512 (systemtap-5.4.tar.gz) = 5869fe3735e44be65ba7895a46b4ea66fcdcc21ed2ab0673c62d822730553837f816d82fd78eeca4bfe6f17fdeaa12eb2f94c0b0b7ebb8c495c961f0b6935785 diff --git a/systemtap-gcc16.patch b/systemtap-gcc16.patch new file mode 100644 index 0000000..c336ce6 --- /dev/null +++ b/systemtap-gcc16.patch @@ -0,0 +1,13 @@ +--- systemtap-5.4/configure~ 2025-10-30 14:47:35.000000000 +0000 ++++ systemtap-5.4/configure 2026-01-13 18:53:20.466037572 +0000 +@@ -3121,8 +3121,8 @@ + } + { + // Unicode literals +- char const *utf8 = u8"UTF-8 string \u2500"; +- char16_t const *utf16 = u"UTF-8 string \u2500"; ++ auto const *utf8 = u8"UTF-8 string \u2500"; ++ char16_t const *utf16 = u"UTF-16 string \u2500"; + char32_t const *utf32 = U"UTF-32 string \u2500"; + } + ' diff --git a/systemtap.spec b/systemtap.spec index 63ff7cc..577dc67 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -1,3 +1,5 @@ +# work around flakey gcc warnings +%{!?with_Werror: %global with_Werror 0} %{!?with_sqlite: %global with_sqlite 0%{?fedora} >= 17 || 0%{?rhel} >= 7} # prefer prebuilt docs %{!?with_docs: %global with_docs 0} @@ -11,8 +13,8 @@ %endif %{!?with_rpm: %global with_rpm 1} %{!?elfutils_version: %global elfutils_version 0.179} -%{!?with_boost: %global with_boost 0} -%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64 +%{!?with_boost: %global with_boost 1} +%ifarch x86_64 ppc ppc64 ppc64le aarch64 %{!?with_dyninst: %global with_dyninst 0%{?fedora} >= 18 || 0%{?rhel} >= 7} %else %{!?with_dyninst: %global with_dyninst 0} @@ -20,7 +22,11 @@ %{!?with_bpf: %global with_bpf 0%{?fedora} >= 22 || 0%{?rhel} >= 8} %{!?with_systemd: %global with_systemd 0%{?fedora} >= 19 || 0%{?rhel} >= 7} %{!?with_emacsvim: %global with_emacsvim 0%{?fedora} >= 19 || 0%{?rhel} >= 7} +%ifarch %{ix86} +%{!?with_java: %global with_java 0} +%else %{!?with_java: %global with_java 0%{?fedora} >= 19 || 0%{?rhel} >= 7} +%endif %{!?with_debuginfod: %global with_debuginfod 0%{?fedora} >= 25 || 0%{?rhel} >= 7} %{!?with_virthost: %global with_virthost 0%{?fedora} >= 19 || 0%{?rhel} >= 7} %{!?with_virtguest: %global with_virtguest 1} @@ -39,9 +45,13 @@ %{!?with_httpd: %global with_httpd 0} %{!?with_specific_python: %global with_specific_python 0%{?fedora} >= 31} %{!?with_sysusers: %global with_sysusers 0%{?fedora} >= 32 || 0%{?rhel} >= 9} +# NB: can't turn this on by default on any distro version whose builder system +# may run kernels different than the distro version itself. +%{!?with_check: %global with_check 0} + # Virt is supported on these arches, even on el7, but it's not in core EL7 -%if 0%{?rhel} <= 7 +%if 0%{?rhel} && 0%{?rhel} <= 7 %ifarch ppc64le aarch64 %global with_virthost 0 %endif @@ -60,9 +70,6 @@ %else %if 0%{?rhel} >= 6 %define udevrulesdir /lib/udev/rules.d - %else - # RHEL5 - %define udevrulesdir /etc/udev/rules.d %endif %endif %endif @@ -79,11 +86,7 @@ %define dracutbindir %{_bindir} %endif -%if 0%{?rhel} == 6 - %{!?_rpmmacrodir: %define _rpmmacrodir /etc/rpm/} -%else - %{!?_rpmmacrodir: %define _rpmmacrodir %{_rpmconfigdir}/macros.d} -%endif +%{!?_rpmmacrodir: %define _rpmmacrodir %{_rpmconfigdir}/macros.d} # To avoid testsuite/*/*.stp has shebang which doesn't start with '/' %define __brp_mangle_shebangs_exclude_from .stp$ @@ -93,7 +96,10 @@ \ g stapusr 156\ g stapsys 157\ -g stapdev 158 +g stapdev 158\ +g stapunpriv 159\ +u stapunpriv 159 "systemtap unprivileged user" /var/lib/stapunpriv /sbin/nologin\ +m stapunpriv stapunpriv %define _systemtap_server_preinstall \ # See systemd-sysusers(8) sysusers.d(5)\ @@ -115,10 +121,17 @@ m stapsys stapsys\ m stapdev stapusr\ m stapdev stapdev +%define _systemtap_server_preinstall_tmpfiles \ +# See systemd-tmpfiles(8) tmpfiles.d(5)\ +d /var/lib/stap-server 0750 stap-server stap-server -\ +d /var/lib/stap-server/.systemtap 0700 stap-server stap-server -\ +d /var/log/stap-server 0755 stap-server stap-server -\ +f /var/log/stap-server/log 0644 stap-server stap-server - Name: systemtap -Version: 4.7 -Release: 1%{?release_override}%{?dist} +# PRERELEASE +Version: 5.4 +Release: 2%{?release_override}%{?dist} # for version, see also configure.ac @@ -130,13 +143,15 @@ Release: 1%{?release_override}%{?dist} # systemtap-runtime /usr/bin/staprun, /usr/bin/stapsh, /usr/bin/stapdyn # systemtap-client /usr/bin/stap, samples, docs, tapset(bonus), req:-runtime # systemtap-initscript /etc/init.d/systemtap, dracut module, req:systemtap -# systemtap-sdt-devel /usr/include/sys/sdt.h /usr/bin/dtrace +# systemtap-sdt-devel /usr/include/sys/sdt.h +# systemtap-sdt-dtrace /usr/bin/dtrace # systemtap-testsuite /usr/share/systemtap/testsuite*, req:systemtap, req:sdt-devel # systemtap-runtime-java libHelperSDT.so, HelperSDT.jar, stapbm, req:-runtime # systemtap-runtime-virthost /usr/bin/stapvirt, req:libvirt req:libxml2 # systemtap-runtime-virtguest udev rules, init scripts/systemd service, req:-runtime # systemtap-runtime-python2 HelperSDT python2 module, req:-runtime # systemtap-runtime-python3 HelperSDT python3 module, req:-runtime +# systemtap-jupyter /usr/bin/stap-jupyter-* interactive-notebook req:systemtap # # Typical scenarios: # @@ -150,9 +165,10 @@ Release: 1%{?release_override}%{?dist} # intermediary stap-server for --use-server: systemtap-server (-devel unused) Summary: Programmable system-wide instrumentation system -License: GPLv2+ -URL: http://sourceware.org/systemtap/ +License: GPL-2.0-or-later +URL: https://sourceware.org/systemtap/ Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz +Patch0: systemtap-gcc16.patch # Build* BuildRequires: make @@ -163,6 +179,7 @@ BuildRequires: pkgconfig(nss) BuildRequires: pkgconfig(avahi-client) %if %{with_debuginfod} BuildRequires: pkgconfig(libdebuginfod) +BuildRequires: pkgconfig(json-c) %endif %if %{with_dyninst} BuildRequires: dyninst-devel >= 10.0 @@ -179,9 +196,7 @@ BuildRequires: pkgconfig(ncurses) BuildRequires: systemd %endif # Needed for libstd++ < 4.0, without -%if %{with_boost} BuildRequires: boost-devel -%endif %if %{with_crash} BuildRequires: crash-devel zlib-devel %endif @@ -203,7 +218,7 @@ BuildRequires: xmlto /usr/share/xmlto/format/fo/pdf %endif %if %{with_emacsvim} # for _emacs_sitelispdir macros etc. -BuildRequires: emacs +BuildRequires: emacs-common %endif %if %{with_java} BuildRequires: java-devel @@ -214,9 +229,6 @@ BuildRequires: pkgconfig(libvirt) BuildRequires: pkgconfig(libxml-2.0) %endif BuildRequires: readline-devel -%if 0%{?rhel} <= 5 -BuildRequires: pkgconfig(ncurses) -%endif %if %{with_python2_probes} BuildRequires: python2-devel %if 0%{?fedora} >= 1 @@ -232,17 +244,20 @@ BuildRequires: python3 BuildRequires: python3-devel BuildRequires: python3-setuptools %endif -%if %{with_specific_python} -BuildRequires: /usr/bin/pathfix.py -%endif %if %{with_httpd} BuildRequires: libmicrohttpd-devel BuildRequires: libuuid-devel %endif %if %{with_sysusers} -BuildRequires: systemd-rpm-macros +BuildRequires: systemd-rpm-macros %endif +%if %{with_check} +BuildRequires: kernel-devel +# and some of the same Requires: as below +BuildRequires: dejagnu gcc make +%endif + # Install requirements @@ -259,8 +274,8 @@ the components needed to locally develop and execute systemtap scripts. %package server Summary: Instrumentation System Server -License: GPLv2+ -URL: http://sourceware.org/systemtap/ +License: GPL-2.0-or-later +URL: https://sourceware.org/systemtap/ Requires: systemtap-devel = %{version}-%{release} Conflicts: systemtap-devel < %{version}-%{release} Conflicts: systemtap-runtime < %{version}-%{release} @@ -289,8 +304,8 @@ compiles systemtap scripts to kernel objects on their demand. %package devel Summary: Programmable system-wide instrumentation system - development headers, tools -License: GPLv2+ -URL: http://sourceware.org/systemtap/ +License: GPL-2.0-or-later AND GPL-2.0-only AND BSD-3-Clause AND LGPL-2.1-only AND BSD-2-Clause +URL: https://sourceware.org/systemtap/ %if 0%{?rhel} >= 8 || 0%{?fedora} >= 20 Recommends: (kernel-debug-devel if kernel-debug) @@ -319,8 +334,8 @@ a copy of the standard tapset library and the runtime library C files. %package runtime Summary: Programmable system-wide instrumentation system - runtime -License: GPLv2+ -URL: http://sourceware.org/systemtap/ +License: GPL-2.0-or-later +URL: https://sourceware.org/systemtap/ Requires(pre): shadow-utils Conflicts: systemtap-devel < %{version}-%{release} Conflicts: systemtap-server < %{version}-%{release} @@ -334,8 +349,8 @@ using a local or remote systemtap-devel installation. %package client Summary: Programmable system-wide instrumentation system - client -License: GPLv2+ -URL: http://sourceware.org/systemtap/ +License: GPL-2.0-or-later AND GPL-2.0-only AND BSD-3-Clause AND LGPL-2.1-only AND GFDL-1.2-or-later AND BSD-2-Clause +URL: https://sourceware.org/systemtap/ Requires: zip unzip Requires: systemtap-runtime = %{version}-%{release} Requires: coreutils grep sed unzip zip @@ -348,17 +363,19 @@ Requires: mokutil %endif %description client -This package contains/requires the components needed to develop -systemtap scripts, and compile them using a local systemtap-devel -or a remote systemtap-server installation, then run them using a -local or remote systemtap-runtime. It includes script samples and +This package contains/requires only the components needed to +use systemtap scripts by compiling them using a local or a remote +systemtap-server service, then run them using a local or +remote systemtap-runtime. It includes script samples and documentation, and a copy of the tapset library for reference. - +It does NOT include all the components for running a systemtap +script in a self-contained fashion; for that, use the -devel +subpackage instead. %package initscript Summary: Systemtap Initscripts -License: GPLv2+ -URL: http://sourceware.org/systemtap/ +License: GPL-2.0-or-later +URL: https://sourceware.org/systemtap/ Requires: systemtap = %{version}-%{release} %if %{with_systemd} Requires: systemd @@ -376,9 +393,24 @@ boot-time probing if supported. %package sdt-devel -Summary: Static probe support tools -License: GPLv2+ and Public Domain -URL: http://sourceware.org/systemtap/ +Summary: Static probe support header files +License: GPL-2.0-or-later AND CC0-1.0 +URL: https://sourceware.org/systemtap/ +%if 0%{?rhel} && 0%{?rhel} <= 10 +# for RHEL buildability compatibility, pull in sdt-dtrace at all times +Requires: systemtap-sdt-dtrace = %{version}-%{release} +%endif + +%description sdt-devel +This package includes the header file used for static +instrumentation compiled into userspace programs. + + +%package sdt-dtrace +Summary: Static probe support dtrace tool +License: GPL-2.0-or-later AND CC0-1.0 +URL: https://sourceware.org/systemtap/ +Provides: dtrace = %{version}-%{release} %if %{with_pyparsing} %if %{with_python3} Requires: python3-pyparsing @@ -391,21 +423,19 @@ Requires: python2-pyparsing %endif %endif -%description sdt-devel -This package includes the header file used for static -instrumentation compiled into userspace programs and libraries, along -with the optional dtrace-compatibility preprocessor to process related -.d files into tracing-macro-laden .h headers. +%description sdt-dtrace +This package includes the dtrace-compatibility preprocessor +to process related .d files into tracing-macro-laden .h headers. %package testsuite Summary: Instrumentation System Testsuite -License: GPLv2+ -URL: http://sourceware.org/systemtap/ +License: GPL-2.0-or-later AND GPL-2.0-only AND GPL-3.0-or-later AND MIT +URL: https://sourceware.org/systemtap/ Requires: systemtap = %{version}-%{release} Requires: systemtap-sdt-devel = %{version}-%{release} Requires: systemtap-server = %{version}-%{release} -Requires: dejagnu which elfutils grep nc +Requires: dejagnu which elfutils grep nc wget %if %{with_debuginfod} Requires: elfutils-debuginfod %endif @@ -472,8 +502,8 @@ systemtap on the current system. %if %{with_java} %package runtime-java Summary: Systemtap Java Runtime Support -License: GPLv2+ -URL: http://sourceware.org/systemtap/ +License: GPL-2.0-or-later +URL: https://sourceware.org/systemtap/ Requires: systemtap-runtime = %{version}-%{release} # work around fedora ci gating kvetching about i686<->x86-64 conflicts %ifarch x86_64 @@ -494,8 +524,8 @@ that probe Java processes running on the OpenJDK runtimes using Byteman. %if %{with_python2_probes} %package runtime-python2 Summary: Systemtap Python 2 Runtime Support -License: GPLv2+ -URL: http://sourceware.org/systemtap/ +License: GPL-2.0-or-later +URL: https://sourceware.org/systemtap/ Requires: systemtap-runtime = %{version}-%{release} %description runtime-python2 @@ -506,8 +536,8 @@ that probe python 2 processes. %if %{with_python3_probes} %package runtime-python3 Summary: Systemtap Python 3 Runtime Support -License: GPLv2+ -URL: http://sourceware.org/systemtap/ +License: GPL-2.0-or-later +URL: https://sourceware.org/systemtap/ Requires: systemtap-runtime = %{version}-%{release} %if ! (%{with_python2_probes}) @@ -523,8 +553,8 @@ that probe python 3 processes. %if %{with_python3_probes} %package exporter Summary: Systemtap-prometheus interoperation mechanism -License: GPLv2+ -URL: http://sourceware.org/systemtap/ +License: GPL-2.0-or-later +URL: https://sourceware.org/systemtap/ Requires: systemtap-runtime = %{version}-%{release} %description exporter @@ -536,8 +566,8 @@ to remote requesters on demand. %if %{with_virthost} %package runtime-virthost Summary: Systemtap Cross-VM Instrumentation - host -License: GPLv2+ -URL: http://sourceware.org/systemtap/ +License: GPL-2.0-or-later +URL: https://sourceware.org/systemtap/ # only require libvirt-libs really #Requires: libvirt >= 1.0.2 Requires: libxml2 @@ -551,8 +581,8 @@ connection. %if %{with_virtguest} %package runtime-virtguest Summary: Systemtap Cross-VM Instrumentation - guest -License: GPLv2+ -URL: http://sourceware.org/systemtap/ +License: GPL-2.0-or-later +URL: https://sourceware.org/systemtap/ Requires: systemtap-runtime = %{version}-%{release} %if %{with_systemd} Requires(post): findutils coreutils @@ -569,10 +599,22 @@ This package installs the services necessary on a virtual machine for a systemtap-runtime-virthost machine to execute systemtap scripts. %endif +%package jupyter +Summary: ISystemtap jupyter kernel and examples +License: GPL-2.0-or-later +URL: https://sourceware.org/systemtap/ +Requires: systemtap = %{version}-%{release} + +%description jupyter +This package includes files needed to build and run +the interactive systemtap Jupyter kernel, either locally +or within a container. + # ------------------------------------------------------------------------ %prep %setup -q +%patch 0 -p1 %build @@ -583,6 +625,13 @@ systemtap-runtime-virthost machine to execute systemtap scripts. %global dyninst_config --without-dyninst %endif +# Enable/disable the dyninst pure-userspace backend +%if %{with_Werror} +%global Werror_config --enable-Werror +%else +%global Werror_config --disable-Werror +%endif + # Enable/disable the sqlite coverage testing support %if %{with_sqlite} %global sqlite_config --enable-sqlite @@ -670,12 +719,17 @@ systemtap-runtime-virthost machine to execute systemtap scripts. # We don't ship compileworthy python code, just oddball samples %global py_auto_byte_compile 0 -%configure %{dyninst_config} %{sqlite_config} %{crash_config} %{docs_config} %{rpm_config} %{java_config} %{virt_config} %{dracut_config} %{python3_config} %{python2_probes_config} %{python3_probes_config} %{httpd_config} %{bpf_config} %{debuginfod_config} --disable-silent-rules --with-extra-version="rpm %{version}-%{release}" +%configure %{Werror_config} %{dyninst_config} %{sqlite_config} %{crash_config} %{docs_config} %{rpm_config} %{java_config} %{virt_config} %{dracut_config} %{python3_config} %{python2_probes_config} %{python3_probes_config} %{httpd_config} %{bpf_config} %{debuginfod_config} --disable-silent-rules --with-extra-version="rpm %{version}-%{release}" make %{?_smp_mflags} V=1 %install make DESTDIR=$RPM_BUILD_ROOT install + +%if ! (%{with_python3}) +rm -v $RPM_BUILD_ROOT%{_bindir}/stap-profile-annotate +%endif + %find_lang %{name} for dir in $(ls -1d $RPM_BUILD_ROOT%{_mandir}/{??,??_??}) ; do dir=$(echo $dir | sed -e "s|^$RPM_BUILD_ROOT||") @@ -688,6 +742,8 @@ mkdir -p %{buildroot}%{_sysusersdir} echo '%_systemtap_runtime_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-runtime.conf echo '%_systemtap_server_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-server.conf echo '%_systemtap_testsuite_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-testsuite.conf +mkdir -p %{buildroot}%{_tmpfilesdir} +echo '%_systemtap_server_preinstall_tmpfiles' > %{buildroot}%{_tmpfilesdir}/systemtap-server.conf %endif @@ -705,9 +761,6 @@ find testsuite -type f -name '.gitignore' -print0 | xargs -0 rm -f # permissions back to 04110 in the %files section below. chmod 755 $RPM_BUILD_ROOT%{_bindir}/staprun -#install the useful stap-prep script -install -c -m 755 stap-prep $RPM_BUILD_ROOT%{_bindir}/stap-prep - # Copy over the testsuite cp -rp testsuite $RPM_BUILD_ROOT%{_datadir}/systemtap @@ -813,33 +866,52 @@ done %if %{with_specific_python} # Some files got ambiguous python shebangs, we fix them after everything else is done -pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{python3_sitearch} %{buildroot}%{_bindir}/* +%py3_shebang_fix %{buildroot}%{python3_sitearch} %{buildroot}%{_bindir}/* %endif +%check +%if %{with_check} +make check RUNTESTFLAGS=environment_sanity.exp +%endif + + %pre runtime %if %{with_sysusers} +%if (0%{?fedora} && 0%{?fedora} < 42) || (0%{?rhel} && 0%{?rhel} < 11) echo '%_systemtap_runtime_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-runtime.conf - +exit 0 +%endif %else getent group stapusr >/dev/null || groupadd -f -g 156 -r stapusr getent group stapsys >/dev/null || groupadd -f -g 157 -r stapsys getent group stapdev >/dev/null || groupadd -f -g 158 -r stapdev -%endif +getent passwd stapunpriv >/dev/null || \ + useradd -c "Systemtap Unprivileged User" -u 159 -g stapunpriv -d %{_localstatedir}/lib/stapunpriv -r -s /sbin/nologin stapunpriv 2>/dev/null || \ + useradd -c "Systemtap Unprivileged User" -g stapunpriv -d %{_localstatedir}/lib/stapunpriv -r -s /sbin/nologin stapunpriv exit 0 +%endif %pre server %if %{with_sysusers} +%if (0%{?fedora} && 0%{?fedora} < 42) || (0%{?rhel} && 0%{?rhel} < 11) echo '%_systemtap_server_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-server.conf - +echo '%_systemtap_server_preinstall_tmpfiles' | systemd-tmpfiles --replace=%{_tmpfilesdir}/systemtap-server.conf - +exit 0 +%endif %else getent group stap-server >/dev/null || groupadd -f -g 155 -r stap-server getent passwd stap-server >/dev/null || \ useradd -c "Systemtap Compile Server" -u 155 -g stap-server -d %{_localstatedir}/lib/stap-server -r -s /sbin/nologin stap-server 2>/dev/null || \ useradd -c "Systemtap Compile Server" -g stap-server -d %{_localstatedir}/lib/stap-server -r -s /sbin/nologin stap-server -%endif exit 0 +%endif %pre testsuite %if %{with_sysusers} +%if (0%{?fedora} && 0%{?fedora} < 42) || (0%{?rhel} && 0%{?rhel} < 11) echo '%_systemtap_testsuite_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-testsuite.conf - +exit 0 +%endif %else getent passwd stapusr >/dev/null || \ useradd -c "Systemtap 'stapusr' User" -g stapusr -r -s /sbin/nologin stapusr @@ -847,8 +919,8 @@ getent passwd stapsys >/dev/null || \ useradd -c "Systemtap 'stapsys' User" -g stapsys -G stapusr -r -s /sbin/nologin stapsys getent passwd stapdev >/dev/null || \ useradd -c "Systemtap 'stapdev' User" -g stapdev -G stapusr -r -s /sbin/nologin stapdev -%endif exit 0 +%endif %post server @@ -868,7 +940,8 @@ if [ ! -f ~stap-server/.systemtap/rc ]; then numcpu=`/usr/bin/getconf _NPROCESSORS_ONLN` if [ -z "$numcpu" -o "$numcpu" -lt 1 ]; then numcpu=1; fi nproc=`expr $numcpu \* 30` - echo "--rlimit-as=614400000 --rlimit-cpu=60 --rlimit-nproc=$nproc --rlimit-stack=1024000 --rlimit-fsize=51200000" > ~stap-server/.systemtap/rc + # PR29661 -> 4G + echo "--rlimit-as=4294967296 --rlimit-cpu=60 --rlimit-nproc=$nproc --rlimit-stack=1024000 --rlimit-fsize=51200000" > ~stap-server/.systemtap/rc chown stap-server:stap-server ~stap-server/.systemtap/rc fi @@ -1055,6 +1128,7 @@ exit 0 %if %{with_systemd} %{_unitdir}/stap-server.service %{_tmpfilesdir}/stap-server.conf +%{_tmpfilesdir}/systemtap-server.conf %else %{initdir}/stap-server %dir %{_sysconfdir}/stap-server/conf.d @@ -1078,7 +1152,9 @@ exit 0 %files devel -f systemtap.lang %{_bindir}/stap %{_bindir}/stap-prep +%if %{with_python3} %{_bindir}/stap-profile-annotate +%endif %{_bindir}/stap-report %dir %{_datadir}/systemtap %{_datadir}/systemtap/runtime @@ -1099,13 +1175,14 @@ exit 0 %if %{with_emacsvim} %{_emacs_sitelispdir}/*.el* %{_emacs_sitestartdir}/systemtap-init.el -%{_datadir}/vim/vimfiles/*/*.vim +%{_datadir}/vim/vimfiles %endif # Notice that the stap-resolve-module-function.py file is used by # *both* the python2 and python3 subrpms. Both subrpms use that same # python script to help list python probes. %if %{with_python3_probes} || %{with_python2_probes} %{_libexecdir}/systemtap/python/stap-resolve-module-function.py +%dir %{_libexecdir}/systemtap/python %exclude %{_libexecdir}/systemtap/python/stap-resolve-module-function.py? %endif @@ -1200,16 +1277,22 @@ exit 0 %files sdt-devel -%{_bindir}/dtrace %{_includedir}/sys/sdt.h %{_includedir}/sys/sdt-config.h -%{_mandir}/man1/dtrace.1* %{_rpmmacrodir}/macros.systemtap %doc README AUTHORS NEWS %{!?_licensedir:%global license %%doc} %license COPYING +%files sdt-dtrace +%{_bindir}/dtrace +%doc README AUTHORS NEWS +%{!?_licensedir:%global license %%doc} +%license COPYING +%{_mandir}/man1/dtrace.1* + + %files testsuite %dir %{_datadir}/systemtap %{_datadir}/systemtap/testsuite @@ -1266,28 +1349,118 @@ exit 0 %{_sbindir}/stap-exporter %endif +%files jupyter +%{_bindir}/stap-jupyter-container +%{_bindir}/stap-jupyter-install +%{_mandir}/man1/stap-jupyter.1* +%dir %{_datadir}/systemtap +%{_datadir}/systemtap/interactive-notebook + # ------------------------------------------------------------------------ # Future new-release entries should be of the form # * DDD MMM DD YYYY YOURNAME - V-R # - Upstream release, see wiki page below for detailed notes. -# http://sourceware.org/systemtap/wiki/SystemTapReleases +# https://sourceware.org/systemtap/wiki/SystemTapReleases # PRERELEASE %changelog -* Mon May 02 2022 Frank Ch. Eigler - 4.7-1 +* Tue Jan 13 2026 Jonathan Wakely - 5.4-2 +- Patched to workaround Autoconf 2.72 incompatiblity with GCC 16 + +* Fri Oct 31 2025 Frank Ch. Eigler - 5.4-1 - Upstream release, see wiki page below for detailed notes. https://sourceware.org/systemtap/wiki/SystemTapReleases -* Tue Dec 07 2021 Frank Ch. Eigler - 4.6-4 -- rhbz2029929 - reset sys/sdt.h asm operand constraints +* Mon Sep 22 2025 Frank Ch. Eigler - 5.4-17585496g86ab88eb +- Automated weekly rawhide release +- Applied spec changes from upstream git -* Thu Dec 02 2021 Frank Ch. Eigler - 4.6-3 -- rhbz2026858 - arm32 sdt fixes -- sdt.h fixes for glibc s390 ftbfs +* Mon Sep 22 2025 Frank Ch. Eigler - 5.4-17585473g1fe4178d +- Automated weekly rawhide release +- Applied spec changes from upstream git -* Thu Nov 25 2021 Martin Cermak - 4.6-2 -- rhbz2012907: Use sysuser.d/* for user/group management +* Fri Sep 19 2025 Python Maint - 5.3-5 +- Rebuilt for Python 3.14.0rc3 bytecode + +* Fri Aug 15 2025 Python Maint - 5.3-4 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Fri Jul 25 2025 Fedora Release Engineering - 5.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Jun 03 2025 Python Maint - 5.3-2 +- Rebuilt for Python 3.14 + +* Fri May 02 2025 Frank Ch. Eigler - 5.3-1 +- Upstream release, see wiki page below for detailed notes. + https://sourceware.org/systemtap/wiki/SystemTapReleases + +* Thu Feb 06 2025 Frank Ch. Eigler - 5.3~pre17373816g7a71d34b.5 +- Respin against dyninst 13 redux + +* Fri Jan 24 2025 Frank Ch. Eigler - 5.3~pre17373816g7a71d34b.3 +- Respin against dyninst 13, sans dyninst on i686. + +* Mon Jan 20 2025 Frank Ch. Eigler - 5.3-17373816g7a71d34b +- Automated weekly rawhide release +- Applied spec changes from upstream git + +* Mon Jan 20 2025 Frank Ch. Eigler - 5.3-17373794g3efe129d +- Automated weekly rawhide release +- Applied spec changes from upstream git + +* Sun Jan 19 2025 Frank Ch. Eigler - 5.3-17373422g9a48fbea +- Automated weekly rawhide release +- Applied spec changes from upstream git + +* Sun Jan 19 2025 Frank Ch. Eigler - 5.2-17373420g1e894ff0 +- Automated weekly rawhide release +- Applied spec changes from upstream git + +* Sun Jan 19 2025 Fedora Release Engineering - 5.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Nov 08 2024 Frank Ch. Eigler - 5.2-1 +- Upstream release, see wiki page below for detailed notes. + https://sourceware.org/systemtap/wiki/SystemTapReleases + +* Mon Oct 07 2024 William Cohen - 5.2-17283218gc5774e18 +- Automated weekly rawhide release +- Applied spec changes from upstream git + +* Tue Oct 01 2024 William Cohen - 5.2-17277956g0b7f6722 +- Automated weekly rawhide release +- Applied spec changes from upstream git + +* Fri Aug 30 2024 Frank Ch. Eigler - 5.2-17250223gd07e4284 +- Automated weekly rawhide release +- Applied spec changes from upstream git + +* Thu Aug 08 2024 Lumír Balhar - 5.2-pre +- Final split of sdt-dtrace and sdt-devel (rhbz#2296275) + https://fedoraproject.org/wiki/Changes/Separate_dtrace_package + +* Fri Apr 26 2024 Frank Ch. Eigler - 5.1-1 +- Upstream release, see wiki page below for detailed notes. + https://sourceware.org/systemtap/wiki/SystemTapReleases + +* Sat Nov 04 2023 Frank Ch. Eigler - 5.0-1 +- Upstream release, see wiki page below for detailed notes. + https://sourceware.org/systemtap/wiki/SystemTapReleases +- migrated to SPDX license + +* Fri Apr 28 2023 Frank Ch. Eigler - 4.9-1 +- Upstream release, see wiki page below for detailed notes. + https://sourceware.org/systemtap/wiki/SystemTapReleases + +* Thu Nov 03 2022 Serhei Makarov - 4.8-1 +- Upstream release, see wiki page below for detailed notes. + https://sourceware.org/systemtap/wiki/SystemTapReleases + +* Mon May 02 2022 Frank Ch. Eigler - 4.7-1 +- Upstream release, see wiki page below for detailed notes. + https://sourceware.org/systemtap/wiki/SystemTapReleases * Mon Nov 15 2021 Serhei Makarov - 4.6-1 - Upstream release, see wiki page below for detailed notes. diff --git a/tests/Regression/python-probing/list.stp b/tests/Regression/python-probing/list.stp deleted file mode 100755 index 357fef6..0000000 --- a/tests/Regression/python-probing/list.stp +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/stap -v -/* - Example usage of the Python systemtap tapset to show a nested view of all - Python function calls (and returns) across the whole system. - - Run this using - stap systemtap-example.stp - to instrument all Python processes on the system, or (for example) using - stap systemtap-example.stp -c COMMAND - to instrument a specific program (implemented in Python) -*/ -probe python.function.entry -{ - printf("%s => %s in %s:%d\n", thread_indent(1), funcname, filename, lineno); -} - -probe python.function.return -{ - printf("%s <= %s in %s:%d\n", thread_indent(-1), funcname, filename, lineno); -} diff --git a/tests/Regression/python-probing/main.fmf b/tests/Regression/python-probing/main.fmf deleted file mode 100644 index 1a5ec22..0000000 --- a/tests/Regression/python-probing/main.fmf +++ /dev/null @@ -1,23 +0,0 @@ -summary: Systemtap static probes test -description: | - This test checks basic functionality of Python's systemtap static - probes. It runs list & top systemtap scripts (examples from the - python rpm) and then a python script using the "random" module. - Finally it checks that the "random" module is correctly listed in - the output of both systemtap scripts. -contact: Petr Splichal -component: -- python -- systemtap -test: ./runtest.sh -framework: beakerlib -recommend: -- python -- python-debuginfo -- systemtap -- python2 -- python3 -- elfutils -duration: 15m -extra-summary: /CoreOS/python/Sanity/systemtap -extra-task: /CoreOS/python/Sanity/systemtap diff --git a/tests/Regression/python-probing/runtest.sh b/tests/Regression/python-probing/runtest.sh deleted file mode 100755 index 52c7091..0000000 --- a/tests/Regression/python-probing/runtest.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /CoreOS/python/Sanity/systemtap -# Description: Systemtap static probes test -# Author: Petr Splichal -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2011 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# 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, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include rhts environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -# Packages to be tested -PACKAGES="${PACKAGES:-python3}" -# Other required packages -REQUIRES=${REQUIRES:-} -# Binary name parametrized -PYTHON="${PYTHON:-python3}" - -package=$(rpm -qf --queryformat '%{name}\n' $(which $PYTHON)) -collection_path=$(which python | sed 's/\/usr\/bin\/python//') - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm --all - rlAssertRpm "systemtap" - rlLogInfo "Running on kernel: $(uname -r)" - rlRun "rpm -qa 'systemtap*'" 0 "Checking systemtap packages" - rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory" - rlRun "cp list.stp top.stp test.py $TmpDir" 0 "Copying scripts" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest "Verifying ELF file for presence of .probes section" - for lib in ${collection_path}/usr/lib*/libpython*.so.* ; do - rlRun "eu-readelf -x .probes $lib" \ - 0 "Checking for .probes section within $lib" - done - rlPhaseEnd - - # Note that typically you need to be root to run "stap" (or be within - # an appropriate group) - for script in list top; do - rlPhaseStartTest "Test $script" - rlRun "rm -rf ~/.systemtap/cache" 0 "Cleaning cache" - rlRun "stap $script.stp -v -c \"$PYTHON test.py\" > $script" \ - 0 "Testing with $script.stp" - rlRun "tail -100 $script | col -b" 0 "Inspecting output" - if ! rlRun "grep '/usr/lib.*python.*random.py' '$script'" \ - 0 "Checking for random in the $script output"; then - rlRun "stap $script.stp -vvv -c \"$PYTHON test.py\" > $script" \ - 0 "Running $script.stp once more in verbose mode" - fi - rlPhaseEnd - done - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/python-probing/test.py b/tests/Regression/python-probing/test.py deleted file mode 100755 index 65cc0b7..0000000 --- a/tests/Regression/python-probing/test.py +++ /dev/null @@ -1,3 +0,0 @@ -import random, time -print(random.random()) -time.sleep(3) diff --git a/tests/Regression/python-probing/top.stp b/tests/Regression/python-probing/top.stp deleted file mode 100755 index b5645b2..0000000 --- a/tests/Regression/python-probing/top.stp +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/stap -v - -global fn_calls; - -probe python.function.entry -{ - fn_calls[pid(), filename, funcname, lineno] += 1; -} - -probe timer.ms(1000) { - printf("\033[2J\033[1;1H") /* clear screen */ - printf("%6s %80s %6s %30s %6s\n", - "PID", "FILENAME", "LINE", "FUNCTION", "CALLS") - foreach ([pid, filename, funcname, lineno] in fn_calls- limit 1000) { - printf("%6d %80s %6d %30s %6d\n", - pid, filename, lineno, funcname, - fn_calls[pid, filename, funcname, lineno]); - } - - delete fn_calls; -} diff --git a/tests/Regression/small-tests/main.fmf b/tests/Regression/small-tests/main.fmf deleted file mode 100644 index d659ce8..0000000 --- a/tests/Regression/small-tests/main.fmf +++ /dev/null @@ -1,14 +0,0 @@ -summary: suns small tests -description: '' -contact: Martin Cermak -component: -- systemtap -test: ./runtest.sh -framework: beakerlib -recommend: -- systemtap -- systemtap-testsuite -- perf -duration: 10m -extra-summary: /tools/systemtap/Regression/small-tests -extra-task: /tools/systemtap/Regression/small-tests diff --git a/tests/Regression/small-tests/runtest.sh b/tests/Regression/small-tests/runtest.sh deleted file mode 100755 index 6f3e1c2..0000000 --- a/tests/Regression/small-tests/runtest.sh +++ /dev/null @@ -1,183 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/systemtap/Regression/small-tests -# Description: suns small tests -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2014 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="systemtap" - -export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS" -export DEBUGINFOD_TIMEOUT=300 - -_arch=$(arch) - -function perf_probe_failed () -{ - probe=$1 - perf probe -d $probe ||: - perf probe --add $probe - retval=$? - test $retval -eq 0 && \ - rlLogInfo "Running perf probe --add $probe PASSED" || \ - rlLogInfo "Running perf probe --add $probe FAILED" - perf probe -d $probe ||: - if test $retval -eq 0; then - return 1 - else - return 0 - fi -} - -function perf_found_none_of () -{ - ret=0 - for f in "$@"; do - perf_probe_failed $f || ret=1 - done - return $ret -} - -rlJournalStart - # Check the environment --------------------------------------- - rlPhaseStart WARN "Check the environment" - rlRun "rpm -qa | egrep '^(kernel|systemtap|perf)' | sort" - rlRun "uname -r" - rlRun "perf --version" - rlPhaseEnd - - # bz1162939 --------------------------------------------------- - ( - perf_probe_failed "vfs_read" && exit - rlPhaseStart FAIL "test 1 bz1162939" - # At this point a weird problem shows up: sometimes the first - # systemtap invocation fails for some reason, but subsequent - # invocations succeed. Can't reproduce this manually: - rlRun "stap -vvvp4 -e 'probe vfs.read{println(\"hit\")}'" 0,1 - sleep 30 - rlRun "stap -vvvp4 -e 'probe vfs.read{println(\"hit\")}'" 0,1 - sleep 30 - rlRun "stap -e 'probe vfs.read{println(\"hit\")}' -c 'head -1 /etc/hosts'" - rlPhaseEnd - ) - # bz1119335 --------------------------------------------------- - rlPhaseStart FAIL "test 2 bz1119335" - rlRun "man 8 staprun | grep 'STAP_FIPS_OVERRIDE'" - rlPhaseEnd - - # bz1153673 --------------------------------------------------- - rlPhaseStart FAIL "test 3 bz1153673" - _tested=0 - for _pkg in $( rpm -qa | grep systemtap-testsuite ); do - for _tc in $( rpm -ql $_pkg | grep 'alias_suffixes.stp$' ); do - stap -p4 $_tc && p="" || p="-P" - rlRun "stap $p -p4 $_tc" - _tested=1 - done - done - [[ $_tested -eq 0 ]] && rlFail "Not tested" - rlPhaseEnd - - # bz1160837 --------------------------------------------------- - ( - perf_probe_failed "sd_init_command" && exit - rlPhaseStart FAIL "test 4 bz1160837" - _tested=0 - _prologue_search='' - for _pkg in $( rpm -qa | grep systemtap-testsuite ); do - for _tc in $( rpm -ql $_pkg | grep 'iostat-scsi.stp$' ); do - test $_arch = ppc64le && _prologue_search='-P' - rlRun "stap -g $_prologue_search $_tc 1 -c 'sleep 1'" - _tested=1 - done - done - [[ $_tested -eq 0 ]] && rlFail "Not tested" - rlPhaseEnd - ) - - # bz1203808 --------------------------------------------------- - rlPhaseStart FAIL "test 5 bz1203808" - _tested=0 - for _pkg in $( rpm -qa | grep systemtap-testsuite ); do - for _tc in $( rpm -ql $_pkg | grep 'vfs-all-probes.stp$' ); do - stap -wp4 $_tc && p="" || p="-P" - rlRun "stap $p -w -p4 $_tc" - _tested=1 - done - done - [[ $_tested -eq 0 ]] && rlFail "Not tested" - rlPhaseEnd - - # bz1269062 --------------------------------------------------- - rlPhaseStart FAIL "test 6 bz1269062" - rlRun "stap -c sync --suppress-handler-errors -e 'probe ioscheduler.elv_add_request{println(elevator_name) exit()}'" - rlPhaseEnd - - # bz528792 --------------------------------------------------- - ( - # Not relevant on rhel-9 because of kernel commit cad6967ac10843a70842cd39c7b53412901dd21f that removes - # _do_fork() and replaces it with new kernel_clone() - perf_found_none_of "_do_fork" "do_fork" "sys_clone" && exit - - rlPhaseStart FAIL "test 7 bz528792" - if test $_arch = ppc64le; then - # https://bugzilla.redhat.com/show_bug.cgi?id=1652740#c4 - We can not reach any function parameters, namely $clone_flags - rlRun "stap -ve 'probe kernel.function(\"_do_fork\")!, kernel.function(\"do_fork\")!, kernel.function(\"sys_clone\") { println(pp()) exit() }' -c \"bash -c 'while sleep 1; do /bin/true; done'\"" - else - rlRun "stap -ve 'probe kernel.function(\"_do_fork\")!, kernel.function(\"do_fork\")!, kernel.function(\"sys_clone\") { printf(\"%x\n\",\$clone_flags) exit() }' -c \"bash -c 'while sleep 1; do /bin/true; done'\"" - fi - rlPhaseEnd - ) - - # bz1890702 --------------------------------------------------- - ( - perf_probe_failed "vfs_open" && exit - rlPhaseStart FAIL "test 8 bz1890702" - rlRun "stap -g --suppress-time-limits -e 'probe kernel.function(\"vfs_open\") { printf(\"%s(path: %s)\", ppfunc(), \$path\$) ; exit() }' -c 'cat /etc/hosts'" - rlPhaseEnd - ) - - # bz1904216 --------------------------------------------------- - rlPhaseStart FAIL "test 9 bz1904216" - rlRun "stap -p4 -DSTP_NO_OVERLOAD -t -c 'sleep 0.25' -e 'probe kernel.trace(\"bcache:bcache_btree_set_root\") { if (pid() == 0) printf(\"probe hit\n\"); }'" - rlPhaseEnd - - # bz1940804 --------------------------------------------------- - rlPhaseStart FAIL "test 10 bz1940804" - rlRun "stap -e 'probe process(\"/bin/bash\").function(\"main\") {println(pn()) }' -c '/bin/bash --help'" - rlPhaseEnd - - # bz1940945 --------------------------------------------------- - rlPhaseStart FAIL "test 11 bz1940945" - rlRun "stap -c sync --suppress-handler-errors -e 'probe ioscheduler.elv_add_request{println(elevator_name) exit()}'" - rlPhaseEnd - - # bz1940761 --------------------------------------------------- - rlPhaseStart FAIL "test 12 bz1940761" - rlRun "stap -v /usr/share/systemtap/examples/process/strace.stp -w -c \"echo hello world\"" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/byteman-java-methods-probing/ThreadedExample.java b/tests/Sanity/byteman-java-methods-probing/ThreadedExample.java deleted file mode 100644 index 8aa0f83..0000000 --- a/tests/Sanity/byteman-java-methods-probing/ThreadedExample.java +++ /dev/null @@ -1,60 +0,0 @@ -package foo.bar; - -import java.lang.*; -import java.util.*; - -class ThreadedExample -{ - - public static void printMessage(int message) { - System.out.println("message: " + message); - } - - public static void printMessage(long message) { - System.out.println("message: " + message); - } - - public static void main(String[] args) { - - // sleep so that stap can start and byteman agent gets installed - try { - Thread.sleep(30000); - } catch(InterruptedException ex) { - Thread.currentThread().interrupt(); - } - - - try { - String[] inputs = new String[] {"int", "foo", "long"}; - for (String next : inputs) { - - final String arg = next; - final int i = 42; - final long j = 987234864; - Thread thread = new Thread(arg) { - public void run() { - if(arg.equals("int")) - printMessage(i); - else if(arg.equals("long")) - printMessage(j); - else - System.out.println("Neither of the types"); - } - }; - thread.start(); - try { - thread.join(); - } catch (Exception e){} - } - } catch (Exception e){} - - - // sleep so that stap can finish still while probed java program still runs - try { - Thread.sleep(80000); - } catch(InterruptedException ex) { - Thread.currentThread().interrupt(); - } - } -} - diff --git a/tests/Sanity/byteman-java-methods-probing/ThreadedExample.stp b/tests/Sanity/byteman-java-methods-probing/ThreadedExample.stp deleted file mode 100644 index 2aaa08c..0000000 --- a/tests/Sanity/byteman-java-methods-probing/ThreadedExample.stp +++ /dev/null @@ -1,18 +0,0 @@ -probe java("foo.bar.ThreadedExample").class("ThreadedExample").method("printMessage(int)") -{ - printf("Hit printMessage(int): %s\n", arg1) -} - -probe java("foo.bar.ThreadedExample").class("ThreadedExample").method("printMessage(long)") -{ - printf("Hit printMessage(long): %s\n", arg1) - exit() -} - -probe timer.ms(100000) -{ - error("Exit on timeout") - exit() -} - - diff --git a/tests/Sanity/byteman-java-methods-probing/main.fmf b/tests/Sanity/byteman-java-methods-probing/main.fmf deleted file mode 100644 index 607b883..0000000 --- a/tests/Sanity/byteman-java-methods-probing/main.fmf +++ /dev/null @@ -1,12 +0,0 @@ -summary: byteman-java-methods-probing -description: '' -contact: Martin Cermak -test: ./runtest.sh -framework: beakerlib -recommend: -- java-devel -- systemtap -- systemtap-runtime-java -duration: 15m -extra-summary: /tools/systemtap/Sanity/byteman-java-methods-probing -extra-task: /tools/systemtap/Sanity/byteman-java-methods-probing diff --git a/tests/Sanity/byteman-java-methods-probing/runtest.sh b/tests/Sanity/byteman-java-methods-probing/runtest.sh deleted file mode 100755 index f60f287..0000000 --- a/tests/Sanity/byteman-java-methods-probing/runtest.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/systemtap/Sanity/byteman-java-methods-probing -# Description: byteman-java-methods-probing -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2013 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# 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, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS" -export DEBUGINFOD_TIMEOUT=300 - -rlJournalStart - rlPhaseStartSetup - # At this point we simply rely on that the %triggerin scriptlet from - # systemtap-runtime-java did it's job well. There was a hack to force - # trigger it here, but commit respective to this comment removes it. - # https://bugzilla.redhat.com/show_bug.cgi?id=1732514#c11 - - rlRun "rpm -qa | fgrep -e systemtap-runtime-java -e byteman -e openjdk | sort" - - rlRun "stap-prep" - - for BINARY in java javac; do - rlRun "alternatives --display $BINARY | grep -v slave" - rlRun "$BINARY -version" - done - - rlRun "TMPDIR=$( mktemp -d )" - rlRun "mkdir -p $TMPDIR/foo/bar" - rlRun "cp ThreadedExample.java $TMPDIR/foo/bar/" - rlRun "cp ThreadedExample.stp $TMPDIR/" - rlRun "pushd $TMPDIR" - rlPhaseEnd - - rlPhaseStart FAIL 'Prepare bytecode class' - rlRun "javac foo/bar/ThreadedExample.java" - rlPhaseEnd - - rlPhaseStart FAIL 'Prepare the LKML' - rlRun "stap -p4 -m ThreadedExample ThreadedExample.stp" - rlPhaseEnd - - rlPhaseStart FAIL 'Check the Feature' - java foo.bar.ThreadedExample & - rlRun "jps -l | grep 'foo.bar.ThreadedExample'" - export STAPBM_VERBOSE=yes - # rlRun "stap --poison-cache -vv ThreadedExample.stp 2>&1 | tee testout.log" - # Speed the stap startup up by pre-compiling the module within separate - # phase 'Prepare the LKML' above. - rlRun "staprun -v -R ThreadedExample.ko 2>&1 | tee testout.log" - rlRun "grep -q 'Hit printMessage(int): 42' testout.log" - rlRun "grep -q 'Hit printMessage(long): 987234864' testout.log" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TMPDIR" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/kernel-modules/Makefile.template b/tests/Sanity/kernel-modules/Makefile.template deleted file mode 100644 index a8bfffb..0000000 --- a/tests/Sanity/kernel-modules/Makefile.template +++ /dev/null @@ -1,3 +0,0 @@ -obj-m := MODULENAME.o -module: - make -C /lib/modules/$(shell uname -r)/build KBUILD_EXTMOD=DIRECTORY SUBDIRS=DIRECTORY modules diff --git a/tests/Sanity/kernel-modules/main.fmf b/tests/Sanity/kernel-modules/main.fmf deleted file mode 100644 index 88e2d17..0000000 --- a/tests/Sanity/kernel-modules/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: Tests systemtap working with kernel modules -description: '' -contact: Petr Muller -component: -- systemtap -test: ./runtest.sh -framework: beakerlib -recommend: -- systemtap -- kernel-devel -- bison -- flex -- openssl-devel -- elfutils-libelf-devel -duration: 10m -extra-summary: /tools/systemtap/Sanity/kernel-modules -extra-task: /tools/systemtap/Sanity/kernel-modules diff --git a/tests/Sanity/kernel-modules/module.c b/tests/Sanity/kernel-modules/module.c deleted file mode 100644 index 427ddbc..0000000 --- a/tests/Sanity/kernel-modules/module.c +++ /dev/null @@ -1,20 +0,0 @@ -#include /* Needed by all modules */ -#include /* Needed for KERN_INFO */ - -int init_module(void) -{ - printk(KERN_INFO "Hello world 1.\n"); - return 0; -} - -int some_method(void){ - printk(KERN_INFO "Some method called\n"); - return 0; -} - -void cleanup_module(void) -{ - printk(KERN_INFO "Goodbye world 1.\n"); -} - -MODULE_LICENSE("GPL"); diff --git a/tests/Sanity/kernel-modules/runtest.sh b/tests/Sanity/kernel-modules/runtest.sh deleted file mode 100755 index b8d32d8..0000000 --- a/tests/Sanity/kernel-modules/runtest.sh +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/systemtap/Sanity/kernel-modules -# Description: Tests systemtap working with kernel modules -# Author: Petr Muller -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2012 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# 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, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh - -PACKAGE="systemtap" - -check_probes(){ - FAIL="" - rlAssertGrep init_module $1 || FAIL='yes' - rlAssertGrep cleanup_module $1 || FAIL='yes' - rlAssertGrep some_method $1 || FAIL='yes' - - if [ -n "$FAIL" ] - then - rlFileSubmit $1 $2.out - fi -} - -rlJournalStart - -rlPhaseStartSetup "Preparing modules" - rlRun "mkdir -p 'stap-underscore' 'stap-dash' 'stap-none'" - rlRun "cp module.c stap-underscore/test_module.c" - rlRun "cp module.c stap-dash/test-module.c" - rlRun "cp module.c stap-none/testmodule.c" - - cat Makefile.template | sed -e 's/MODULENAME/test_module/g' \ - | sed -e "s|DIRECTORY|$PWD/stap-underscore|g" > stap-underscore/Makefile - rlAssert0 "Creating Makefile for underscore variant" $? - cat Makefile.template | sed -e 's/MODULENAME/test-module/g' \ - | sed -e "s|DIRECTORY|$PWD/stap-dash|g" > stap-dash/Makefile - rlAssert0 "Creating Makefile for dash variant" $? - - cat Makefile.template | sed -e 's/MODULENAME/testmodule/g' \ - | sed -e "s|DIRECTORY|$PWD/stap-none|g" > stap-none/Makefile - rlAssert0 "Creating Makefile for no character variant" $? - - if [ -n "$ARCH" ] - then - rlLog "ARCH is set to: [$ARCH]" - rlLog "This interferes with 'make module', so it needs to be unset." - ARCHOLD="$ARCH" - unset ARCH - rlLog "ARCH is set to: [$ARCH]" - fi - rlRun "make -C stap-underscore module" - rlRun "make -C stap-dash module" - rlRun "make -C stap-none module" - if [ -n "$ARCHOLD" ] - then - rlLog "Restoring ARCH" - export ARCH="$ARCHOLD" - rlLog "ARCH is set to: [$ARCH]" - fi - -rlPhaseEnd - -rlPhaseStartTest "Testing underscore variant" - rlRun "cp stap-underscore/test_module.ko /lib/modules/$(uname -r)/" - rlRun "insmod stap-underscore/test_module.ko" - stap -L 'module("test_module").function("*")' -v > stap.out - check_probes stap.out "module-und-probe-und" - stap -L 'module("test-module").function("*")' -v > stap.out - check_probes stap.out "module-und-probe-dash" - sleep 1 - rlRun "rmmod test_module" - rlRun "rm -f /lib/modules/$(uname -r)/test_module.ko" -rlPhaseEnd - -rlPhaseStartTest "Testing dash variant" - rlRun "cp stap-dash/test-module.ko /lib/modules/$(uname -r)/" - rlRun "insmod stap-dash/test-module.ko" - stap -L 'module("test_module").function("*")' -v > stap.out - check_probes stap.out "module-dash-probe-und" - stap -L 'module("test-module").function("*")' -v > stap.out - check_probes stap.out "module-dash-probe-dash" - sleep 1 - rlRun "rmmod test-module" - rlRun "rm -f /lib/modules/$(uname -r)/test-module.ko" -rlPhaseEnd - -rlPhaseStartTest "Testing no separator variant" - rlRun "cp stap-none/testmodule.ko /lib/modules/$(uname -r)/" - rlRun "insmod stap-none/testmodule.ko" - stap -L 'module("testmodule").function("*")' -v > stap.out - check_probes stap.out "module-none-probe-none" - sleep 1 - rlRun "rmmod testmodule" - rlRun "rm -f /lib/modules/$(uname -r)/testmodule.ko" -rlPhaseEnd - -rlPhaseStartCleanup - rlRun "rm -rf stap-underscore stap-dash stap-none stap.out" -rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/quick-smoke-test/main.fmf b/tests/Sanity/quick-smoke-test/main.fmf deleted file mode 100644 index 0c8a945..0000000 --- a/tests/Sanity/quick-smoke-test/main.fmf +++ /dev/null @@ -1,15 +0,0 @@ -summary: Quick test that systemtap generally works -description: '' -contact: -- Petr Muller -component: -- systemtap -test: ./runtest.sh -framework: beakerlib -recommend: -- koji -- systemtap -- kernel-devel -duration: 1h -extra-summary: /tools/systemtap/Sanity/quick-smoke-test -extra-task: /tools/systemtap/Sanity/quick-smoke-test diff --git a/tests/Sanity/quick-smoke-test/runtest.sh b/tests/Sanity/quick-smoke-test/runtest.sh deleted file mode 100755 index f04c2f1..0000000 --- a/tests/Sanity/quick-smoke-test/runtest.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -# runtest.sh of /tools/systemtap/Sanity/quick-smoke-test - -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS" -export DEBUGINFOD_TIMEOUT=300 -# export DEBUGINFOD_PROGRESS=1 - - -rlJournalStart -rlPhaseStartTest - rlRun "rpm -qa | egrep '^(kernel|systemtap)' | sort" - rlRun "uname -r" - rlRun "stap-prep" - rlRun "stap -L 'process(\"stap\").mark(\"*\")' | grep pass" - rlRun "stap -v --example helloworld.stp" - rlRun "stap -v -T 10 -p4 -e 'probe kernel.function(\"do_exit\") {println(\$\$vars)}'" - rlRun "stap -v -T 60 -e 'probe kernel.function(\"vfs_read\"){ println(\$\$vars); exit() }'" -rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/stap-server-basic-sanity/main.fmf b/tests/Sanity/stap-server-basic-sanity/main.fmf deleted file mode 100644 index 248ecde..0000000 --- a/tests/Sanity/stap-server-basic-sanity/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: stap-server-basic-sanity -description: '' -contact: Martin Cermak -component: -- systemtap -test: ./runtest.sh -framework: beakerlib -recommend: -- systemtap -- kernel-debuginfo -- avahi -- systemtap-server -- dbus -- net-tools -duration: 45m -extra-summary: /tools/systemtap/Sanity/stap-server-basic-sanity -extra-task: /tools/systemtap/Sanity/stap-server-basic-sanity diff --git a/tests/Sanity/stap-server-basic-sanity/runtest.sh b/tests/Sanity/stap-server-basic-sanity/runtest.sh deleted file mode 100755 index e121a51..0000000 --- a/tests/Sanity/stap-server-basic-sanity/runtest.sh +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/systemtap/Sanity/stap-server-basic-sanity -# Description: stap-server-basic-sanity -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2013 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# 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, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -CMD='stap' -BIN=$(which --skip-alias $CMD) -PACKAGE="${PACKAGE:-$(rpm -qf --qf='%{name}\n' $BIN | head -1)}" - -export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS" -export DEBUGINFOD_TIMEOUT=300 - -function service_stap_server() { - action=$1 - retval=${2:-0} - sleep 5 - rlLogInfo "PACKAGE=$PACKAGE" - if echo $PACKAGE | grep -q devtoolset; then - __i=$(echo $PACKAGE | awk -F- '{print $2}') - rlRun "service devtoolset-$__i-stap-server $action" $retval - elif echo $PACKAGE | grep -q gcc-toolset; then - __i=$(echo $PACKAGE | awk -F- '{print $3}') - rlRun "service gcc-toolset-$__i-stap-server $action" $retval - else - rlRun "service stap-server $action" $retval - fi - sleep 5 -} - -_rhelmajor=$(rpm --eval '%{rhel}') - -rlJournalStart - rlPhaseStartSetup - rlRun "TMPDIR=$(mktemp -d)" - rlRun "pushd $TMPDIR" - rlAssertRpm dbus - rlAssertRpm avahi - rlAssertRpm net-tools # because of netstat - rlPhaseEnd - - rlPhaseStart FAIL "sanity check" - rlRun "stap -v -e 'probe begin { log(\"hello\"); exit() }'" - rlPhaseEnd - - rlPhaseStartTest - rlRun "service iptables stop" 0-255 - rlRun "service firewalld stop" 0-255 - service_stap_server stop - test $_rhelmajor -le 8 && \ - rlRun "service messagebus restart" - rlRun "service avahi-daemon restart" - service_stap_server start - - rlRun "netstat -tlp | grep stap" - rlRun "SERVER_PORT=$( netstat -tlpn | awk '/stap/ {print $4}' | grep -o '[0-9]*$' )" - - for SERVER_IP in '127.0.0.1' '[::1]'; do - rlLogInfo "Testing SERVER_IP=$SERVER_IP" - rlRun "stap --trust-servers=ssl,signer,all-users,no-prompt --use-server=$SERVER_IP:$SERVER_PORT" - rlRun "stap --use-server=$SERVER_IP:$SERVER_PORT -v -e 'probe begin { log(\"hello\"); exit() }' 2>&1 | tee output.log" - rlRun "grep 'Using a compile server' output.log" - rlRun "grep '^hello$' output.log" - done - rlPhaseEnd - - rlPhaseStartCleanup - service_stap_server stop - rlRun "popd" - rlRun "rm -r $TMPDIR" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/userspace-probes/hello.c b/tests/Sanity/userspace-probes/hello.c deleted file mode 100644 index 60dac5b..0000000 --- a/tests/Sanity/userspace-probes/hello.c +++ /dev/null @@ -1,7 +0,0 @@ -#include - -int main(void) { - printf("Hello world!\n"); - return 0; -} - diff --git a/tests/Sanity/userspace-probes/main.fmf b/tests/Sanity/userspace-probes/main.fmf deleted file mode 100644 index b509a17..0000000 --- a/tests/Sanity/userspace-probes/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: userspace-probes -description: '' -contact: Martin Cermak -component: -- systemtap -test: ./runtest.sh -framework: beakerlib -recommend: -- systemtap -- dyninst-devel -- gawk -duration: 5m -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=855981 -extra-summary: /CoreOS/systemtap/Sanity/userspace-probes -extra-task: /CoreOS/systemtap/Sanity/userspace-probes diff --git a/tests/Sanity/userspace-probes/runtest.sh b/tests/Sanity/userspace-probes/runtest.sh deleted file mode 100755 index a25899b..0000000 --- a/tests/Sanity/userspace-probes/runtest.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /CoreOS/systemtap/Sanity/userspace-probes -# Description: userspace-probes -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2013 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# 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, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS" -export DEBUGINFOD_TIMEOUT=300 - -PACKAGE="$(rpm -qf $( which stap ) | head -n 1 )" -WORKDIR=$( mktemp -d ) -TESTUSER=mytestuser - - - -rlJournalStart - rlPhaseStart WARN "Check the environment" - if ! stap -V 2>&1 | grep -q 'enabled features:.*DYNINST'; then - rlLogWarning "No dyninst available in $PACKAGE" - rlPhaseEnd - rlJournalPrintText - rlJournalEnd - exit 0 - fi - rlRun "useradd $TESTUSER" 0,9 - rlRun "su $TESTUSER -c 'which stap'" - rlRun "rpm -qa | fgrep -e dyninst -e systemtap | sort" - rlPhaseEnd - - rlPhaseStartSetup - rlRun "cp hello.c testcase*.sh $WORKDIR" - rlRun "chown -R $TESTUSER:$TESTUSER $WORKDIR" - rlPhaseEnd - - rlPhaseStart FAIL "Testcase 1" - rlRun "which gcc" - rlRun "su $TESTUSER -c 'gcc -g -o $WORKDIR/hello $WORKDIR/hello.c'" - rlRun "su $TESTUSER -c '$WORKDIR/hello'" - rlRun "chmod a+x $WORKDIR/testcase1.sh" - rlRun "su $TESTUSER -c '$WORKDIR/testcase1.sh $WORKDIR'" - - LOG="$WORKDIR/stapout.log" - - rlRun "cat $LOG" - rlRun "grep '^process(\"$WORKDIR/hello\").function(\"main@$WORKDIR/hello.c:3\")$' $LOG" - rlRun "grep -i error $LOG" 1 - rlPhaseEnd - - rlPhaseStart FAIL "Testcase 2" - rlRun "chmod a+x $WORKDIR/testcase2.sh" - rlRun "su $TESTUSER -c '$WORKDIR/testcase2.sh $WORKDIR'" - - LOG="$WORKDIR/stapout.log" - - rlRun "cat $LOG" - rlRun "grep '^\*\*\*\ exiting\ \*\*\*$' $LOG" - rlRun "egrep -i 'error|warning' $LOG" 1 - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "userdel $TESTUSER" 0-255 - rlRun "rm -rf /home/$TESTUSER $WORKDIR" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/userspace-probes/testcase1.sh b/tests/Sanity/userspace-probes/testcase1.sh deleted file mode 100755 index 818d2cd..0000000 --- a/tests/Sanity/userspace-probes/testcase1.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -stap -e "probe process(\"$1/hello\").function(\"main\") { println(pn()) }" --runtime=dyninst -c "$1/hello" -o "$1/stapout.log" diff --git a/tests/Sanity/userspace-probes/testcase2.sh b/tests/Sanity/userspace-probes/testcase2.sh deleted file mode 100755 index d270d09..0000000 --- a/tests/Sanity/userspace-probes/testcase2.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -stap --runtime=dyninst -e 'probe end { printf("*** exiting ***\n"); exit() }' -c "$1/hello" -o "$1/stapout.log" -