Compare commits

..

46 commits

Author SHA1 Message Date
Jonathan Wakely
0eafb3090d Patched to workaround Autoconf 2.72 incompatiblity with GCC 16 2026-01-13 18:57:21 +00:00
Jonathan Wakely
070cdc17ea Rebuilt for Boost 1.90 2026-01-13 10:52:47 +00:00
Frank Ch. Eigler
6fe8d3d7ef upstream release 5.4 2025-10-31 14:14:14 -04:00
Martin Cermak
93ca322655 Fix the CI gating setup
Fix the CI gating setup per https://docs.fedoraproject.org/en-US/ci/gating/
2025-09-22 20:32:15 +02:00
Frank Ch. Eigler
703cf33b20 Automated weekly systemtap rawhide release: 5.4~pre17585496g86ab88eb 2025-09-22 10:01:32 -04:00
Frank Ch. Eigler
02ce13f371 Automated weekly systemtap rawhide release: 5.4~pre17585473g1fe4178d 2025-09-22 09:23:23 -04:00
Python Maint
e304ee7f0d Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 14:59:01 +02:00
Python Maint
ccde07acbd Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 15:19:43 +02:00
Fedora Release Engineering
360287bbf0 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 19:02:43 +00:00
Python Maint
846836105b Rebuilt for Python 3.14 2025-06-03 14:30:52 +02:00
Frank Ch. Eigler
967cf9e53d disable dyninst buildreq on i686 2025-05-02 14:55:11 -04:00
Frank Ch. Eigler
b9c00fd898 rebase to upstream release 5.3 2025-05-02 14:45:36 -04:00
Frank Ch. Eigler
423d7bf3e5 Respin against newer dyninst 2025-02-06 09:04:46 -05:00
Frank Ch. Eigler
3105e88d5b expect disabled dyninst on i686 2025-01-24 18:52:57 -05:00
Frank Ch. Eigler
a230f161dd respin try for dyninst 13 2025-01-24 15:51:58 -05:00
Frank Ch. Eigler
12f28a923c Respin against dyninst 13.0.0 2025-01-24 15:25:54 -05:00
Frank Ch. Eigler
2da431cab3 Automated weekly systemtap rawhide release: 5.3~pre17373816g7a71d34b 2025-01-20 09:01:46 -05:00
Frank Ch. Eigler
e8c03b8035 Automated weekly systemtap rawhide release: 5.3~pre17373794g3efe129d 2025-01-20 08:26:17 -05:00
Frank Ch. Eigler
4f28506db7 Automated weekly systemtap rawhide release: 5.3~pre17373422g9a48fbea 2025-01-19 22:04:39 -05:00
Frank Ch. Eigler
ae0cad098c Automated weekly systemtap rawhide release: 5.2~pre17373420g1e894ff0 2025-01-19 22:01:49 -05:00
Fedora Release Engineering
eb8c0fea4c Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 12:16:21 +00:00
Frank Ch. Eigler
17f221776b upstream systemtap 5.2 release 2024-11-08 19:58:20 -05:00
William Cohen
67e80ccf00 Automated weekly systemtap rawhide release: 5.2~pre17283218gc5774e18 2024-10-07 13:24:16 -04:00
William Cohen
5a82cccf73 Automated weekly systemtap rawhide release: 5.2~pre17277956g0b7f6722 2024-10-01 11:15:22 -04:00
Frank Ch. Eigler
9c79ac67a5 Automated weekly systemtap rawhide release: 5.2~pre17250223gd07e4284 2024-08-30 08:52:32 -04:00
Martin Cermak
e42e009a44 CI Tests: Move systemtap tests to separate git repo
* Move systemtap tests to separate tests repo:
  https://src.fedoraproject.org/tests/systemtap
* For automated CI gating purposes use:
  https://src.fedoraproject.org/tests/systemtap-gating
2024-08-19 17:50:12 +02:00
Martin Cermak
6ba46a9a04 CI Tests: Regression/stap-ERROR-Build-id-mismatch-with: Skip on rhel9 (known RHEL-50105) 2024-08-16 18:27:34 +02:00
Martin Cermak
4bf1177f47 CI Tests: Regression/small-tests: run each subtest as a separate testcase 2024-08-16 18:02:50 +02:00
Martin Cermak
91da2bdd2e CI Tests: Regression/small-tests: provide TESTS var to specify tests to run 2024-08-16 17:22:11 +02:00
Lumir Balhar
20b4dc7947 Final split of sdt-dtrace and sdt-devel (rhbz#2296275)
https://fedoraproject.org/wiki/Changes/Separate_dtrace_package
2024-08-12 10:54:45 +00:00
Martin Cermak
d0c648ee8c CI Tests: Mark Sanity/quick-smoke-test as 'tier 1' 2024-08-09 13:30:01 +02:00
William Cohen
eedaf37e14 Automated weekly systemtap rawhide release: 5.2~pre17224323g98d1ea34 2024-07-31 09:27:17 -04:00
Lumir Balhar
93948388bc New sdt-dtrace subpackage for dtrace tool (rhbz#2296275)
This is phase one of the approved self-contained change:
https://fedoraproject.org/wiki/Changes/Separate_dtrace_package

Phase two will be to switch all packages that need the dtrace tool
to the new systemtap-sdt-drace and then we can remove
the requirement from systemtap-sdt-devel package.
2024-07-18 10:01:34 +02:00
William Cohen
8c07a00957 Automated weekly systemtap rawhide release: 5.2~pre17206355g1a07290a 2024-07-10 14:19:34 -04:00
William Cohen
f95124e787 Automated weekly systemtap rawhide release: 5.1~pre17206206ge48abca5 2024-07-10 10:10:10 -04:00
Martin Cermak
956a4db3d9 CI Tests: ftrace-logging-tapset test: adjust expected output 2024-06-28 13:02:36 +02:00
Martin Cermak
36b1f19663 CI tests: Regression/small-tests: extend test time 2024-06-20 14:36:31 +02:00
Martin Cermak
897096ec80 CI Tests: second-command-not-captured: raise STP_OVERLOAD_THRESHOLD for ppc64le
In tests/Regression/second-command-not-captured raise the
STP_OVERLOAD_THRESHOLD.  In practice the original treshold
500000000LL was hit here and there, causing intermittent
testcase failures.  This was reproducible manually in cca
50% of tests.
2024-06-20 14:20:53 +02:00
Martin Cermak
dd61c2d292 CI Tests: Port backtrace test for kernel-6.10
Modern kernel-6.10 doesn't have function kmem_cache_alloc(),
but we can test with another one, such as schedule().
2024-06-19 10:48:55 +02:00
Martin Cermak
73bce465bd CI Tests: Suppress selected rhel10/ppc64le error::dwarf problems 2024-06-17 18:42:00 +02:00
Martin Cermak
4ae3ff2152 CI Tests: Do not rely on python-unversioned-command.rpm 2024-06-13 12:15:54 +02:00
Python Maint
95a46ceb44 Rebuilt for Python 3.13 2024-06-08 22:34:35 +02:00
Frank Ch. Eigler
64a9703628 release 5.1 2024-05-16 12:03:54 -04:00
Martin Cermak
11f44c8ba2 CI tests: Regression/small-tests update 2024-05-08 08:22:55 +02:00
Martin Cermak
87e8ee9d88 CI tests: python probing: behave on rhel 2024-05-08 08:04:34 +02:00
Martin Cermak
668b8dd42a CI test updates
- Add upstream testsuite tests/Regression/upstream-testsuite
  to the CI testplan.  However, this one isn't a good measure
  for gating, because it is too complex and flaky.  But it's
  good to have test results at hand.  This testcase reports a
  failure only in case of an infrastructure problem.  Individual
  .exp test failures are not a show stopper from the persp of
  the CI gating.
- Add upstream systemtap build and install pseudo testcase.
  tests/Install/upstream-systemtap to the testplan.
  This one is disabled by default (in its main.fmf file).  The
  point here is to be able to test with upstream version of
  systemtap in case a working fedora build isn't available.
  This is a helper for manual testing, although if enabled, it
  will do its job in the automated CI pipeline too.
- Use FMF tag instead of tier attributes to define the testplan.
- Testcase updates:
  * tests/Regression/second-command-not-captured
  * tests/Regression/python-probing
2024-04-17 08:29:50 +02:00
121 changed files with 219 additions and 4240 deletions

15
.gitignore vendored
View file

@ -98,3 +98,18 @@
/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

View file

@ -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}

View file

@ -1,17 +1,9 @@
summary: CI Gating Plan
adjust:
- when: distro == fedora
discover+:
filter: 'tier: 1'
environment+:
DEBUGINFOD_URLS: https://debuginfod.fedoraproject.org/
DEBUGINFOD_TIMEOUT: 300
- when: distro == rhel
environment+:
DEBUGINFOD_URLS: https://debuginfod.usersys.redhat.com/
DEBUGINFOD_TIMEOUT: 300
discover:
how: fmf
url: https://src.fedoraproject.org/tests/systemtap-gating.git
ref: main
directory: tests
prepare:
- name: prepare
how: shell

View file

@ -1 +1 @@
SHA512 (systemtap-5.1.tar.gz) = da0fe237d2124031a5786d1221dbb420d90da5497376715fd43a7a9f61a354a229c1128e67ce6becbc012aa3796dc5d337149e239e3c1def0651b179e5bf199f
SHA512 (systemtap-5.4.tar.gz) = 5869fe3735e44be65ba7895a46b4ea66fcdcc21ed2ab0673c62d822730553837f816d82fd78eeca4bfe6f17fdeaa12eb2f94c0b0b7ebb8c495c961f0b6935785

13
systemtap-gcc16.patch Normal file
View file

@ -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";
}
'

View file

@ -9,13 +9,12 @@
%ifarch ppc ppc64 %{sparc} %{mips} %{riscv}
%{!?with_crash: %global with_crash 0}
%else
# rawhide crash-devel breakage rhbz2219728
%{!?with_crash: %global with_crash 0}
%{!?with_crash: %global with_crash 1}
%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}
@ -46,6 +45,10 @@
%{!?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} && 0%{?rhel} <= 7
@ -118,11 +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
# PRERELEASE
Version: 5.1
Release: 1%{?release_override}%{?dist}
Version: 5.4
Release: 2%{?release_override}%{?dist}
# for version, see also configure.ac
@ -134,7 +143,8 @@ 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
@ -156,8 +166,9 @@ Release: 1%{?release_override}%{?dist}
Summary: Programmable system-wide instrumentation system
License: GPL-2.0-or-later
URL: http://sourceware.org/systemtap/
URL: https://sourceware.org/systemtap/
Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz
Patch0: systemtap-gcc16.patch
# Build*
BuildRequires: make
@ -185,9 +196,7 @@ BuildRequires: pkgconfig(ncurses)
BuildRequires: systemd
%endif
# Needed for libstd++ < 4.0, without <tr1/memory>
%if %{with_boost}
BuildRequires: boost-devel
%endif
%if %{with_crash}
BuildRequires: crash-devel zlib-devel
%endif
@ -209,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
@ -241,8 +250,14 @@ 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
@ -260,7 +275,7 @@ the components needed to locally develop and execute systemtap scripts.
%package server
Summary: Instrumentation System Server
License: GPL-2.0-or-later
URL: http://sourceware.org/systemtap/
URL: https://sourceware.org/systemtap/
Requires: systemtap-devel = %{version}-%{release}
Conflicts: systemtap-devel < %{version}-%{release}
Conflicts: systemtap-runtime < %{version}-%{release}
@ -290,7 +305,7 @@ compiles systemtap scripts to kernel objects on their demand.
%package devel
Summary: Programmable system-wide instrumentation system - development headers, tools
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: http://sourceware.org/systemtap/
URL: https://sourceware.org/systemtap/
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
Recommends: (kernel-debug-devel if kernel-debug)
@ -320,7 +335,7 @@ a copy of the standard tapset library and the runtime library C files.
%package runtime
Summary: Programmable system-wide instrumentation system - runtime
License: GPL-2.0-or-later
URL: http://sourceware.org/systemtap/
URL: https://sourceware.org/systemtap/
Requires(pre): shadow-utils
Conflicts: systemtap-devel < %{version}-%{release}
Conflicts: systemtap-server < %{version}-%{release}
@ -335,7 +350,7 @@ using a local or remote systemtap-devel installation.
%package client
Summary: Programmable system-wide instrumentation system - client
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: http://sourceware.org/systemtap/
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: GPL-2.0-or-later
URL: http://sourceware.org/systemtap/
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
Summary: Static probe support header files
License: GPL-2.0-or-later AND CC0-1.0
URL: http://sourceware.org/systemtap/
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 <sys/sdt.h> 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,17 +423,15 @@ Requires: python2-pyparsing
%endif
%endif
%description sdt-devel
This package includes the <sys/sdt.h> 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: GPL-2.0-or-later AND GPL AND GPL-2.0-only AND GPL-3.0-or-later AND MIT
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}
@ -473,7 +503,7 @@ systemtap on the current system.
%package runtime-java
Summary: Systemtap Java Runtime Support
License: GPL-2.0-or-later
URL: http://sourceware.org/systemtap/
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
# work around fedora ci gating kvetching about i686<->x86-64 conflicts
%ifarch x86_64
@ -495,7 +525,7 @@ that probe Java processes running on the OpenJDK runtimes using Byteman.
%package runtime-python2
Summary: Systemtap Python 2 Runtime Support
License: GPL-2.0-or-later
URL: http://sourceware.org/systemtap/
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
%description runtime-python2
@ -507,7 +537,7 @@ that probe python 2 processes.
%package runtime-python3
Summary: Systemtap Python 3 Runtime Support
License: GPL-2.0-or-later
URL: http://sourceware.org/systemtap/
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
%if ! (%{with_python2_probes})
@ -524,7 +554,7 @@ that probe python 3 processes.
%package exporter
Summary: Systemtap-prometheus interoperation mechanism
License: GPL-2.0-or-later
URL: http://sourceware.org/systemtap/
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
%description exporter
@ -537,7 +567,7 @@ to remote requesters on demand.
%package runtime-virthost
Summary: Systemtap Cross-VM Instrumentation - host
License: GPL-2.0-or-later
URL: http://sourceware.org/systemtap/
URL: https://sourceware.org/systemtap/
# only require libvirt-libs really
#Requires: libvirt >= 1.0.2
Requires: libxml2
@ -552,7 +582,7 @@ connection.
%package runtime-virtguest
Summary: Systemtap Cross-VM Instrumentation - guest
License: GPL-2.0-or-later
URL: http://sourceware.org/systemtap/
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
%if %{with_systemd}
Requires(post): findutils coreutils
@ -572,7 +602,7 @@ systemtap-runtime-virthost machine to execute systemtap scripts.
%package jupyter
Summary: ISystemtap jupyter kernel and examples
License: GPL-2.0-or-later
URL: http://sourceware.org/systemtap/
URL: https://sourceware.org/systemtap/
Requires: systemtap = %{version}-%{release}
%description jupyter
@ -584,6 +614,7 @@ or within a container.
%prep
%setup -q
%patch 0 -p1
%build
@ -711,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
@ -728,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
@ -839,9 +869,18 @@ done
%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
@ -849,23 +888,30 @@ getent group stapdev >/dev/null || groupadd -f -g 158 -r stapdev
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
%endif
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
@ -873,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
@ -1082,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
@ -1128,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
@ -1229,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
@ -1307,10 +1361,86 @@ exit 0
# Future new-release entries should be of the form
# * DDD MMM DD YYYY YOURNAME <YOUREMAIL> - 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
* Tue Jan 13 2026 Jonathan Wakely <jwakely@fedoraproject.org> - 5.4-2
- Patched to workaround Autoconf 2.72 incompatiblity with GCC 16
* Fri Oct 31 2025 Frank Ch. Eigler <fche@redhat.com> - 5.4-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Mon Sep 22 2025 Frank Ch. Eigler <fche@redhat.com> - 5.4-17585496g86ab88eb
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Mon Sep 22 2025 Frank Ch. Eigler <fche@redhat.com> - 5.4-17585473g1fe4178d
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 5.3-5
- Rebuilt for Python 3.14.0rc3 bytecode
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 5.3-4
- Rebuilt for Python 3.14.0rc2 bytecode
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Tue Jun 03 2025 Python Maint <python-maint@redhat.com> - 5.3-2
- Rebuilt for Python 3.14
* Fri May 02 2025 Frank Ch. Eigler <fche@redhat.com> - 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 <fche@redhat.com> - 5.3~pre17373816g7a71d34b.5
- Respin against dyninst 13 redux
* Fri Jan 24 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3~pre17373816g7a71d34b.3
- Respin against dyninst 13, sans dyninst on i686.
* Mon Jan 20 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3-17373816g7a71d34b
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Mon Jan 20 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3-17373794g3efe129d
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Sun Jan 19 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3-17373422g9a48fbea
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Sun Jan 19 2025 Frank Ch. Eigler <fche@redhat.com> - 5.2-17373420g1e894ff0
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Fri Nov 08 2024 Frank Ch. Eigler <fche@redhat.com> - 5.2-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Mon Oct 07 2024 William Cohen <wcohen@redhat.com> - 5.2-17283218gc5774e18
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Tue Oct 01 2024 William Cohen <wcohen@redhat.com> - 5.2-17277956g0b7f6722
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Fri Aug 30 2024 Frank Ch. Eigler <fche@redhat.com> - 5.2-17250223gd07e4284
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Thu Aug 08 2024 Lumír Balhar <lbalhar@redhat.com> - 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 <fche@redhat.com> - 5.1-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases

View file

@ -1,16 +0,0 @@
summary: Test for BZ#1054962 (Backport PR16166 stap -vvv causes SIGSEGV when)
description: Backport PR16166
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- valgrind
- systemtap
duration: 15m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1054962
extra-summary: /tools/systemtap/Regression/PR16166
extra-task: /tools/systemtap/Regression/PR16166
tier: 1

View file

@ -1,67 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/PR16166
# Description: Test for BZ#1054962 (Backport PR16166 stap -vvv causes SIGSEGV when)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# 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
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=\$(mktemp -d)"
rlRun "cp towers.c $TMPDIR/"
rlRun "pushd $TMPDIR"
rlRun "gcc -g towers.c -o towers.x"
cat > script.stp <<-EOF
global x
probe perf.hw.cpu_cycles.process("towers.x").counter("a") {}
probe process("towers.x").function("main")
{
# wrong type
x = "b" . @perf("a")
}
EOF
rlRun "which valgrind"
rlRun "valgrind --version"
rlPhaseEnd
rlPhaseStartTest
# following is expected to fail
rlRun "valgrind --log-file=output.txt stap -vvv script.stp" 1
# ... but not to segfault
rlRun "grep SIGSEGV output.txt" 1
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,155 +0,0 @@
# include <stdio.h>
# include <stdlib.h>
#define towersbase 2.39
/* Towers */
#define maxcells 18
#define stackrange 3
#define true 1
#define false 0
struct element
{
int discsize;
int next;
};
/* Towers */
int stack[stackrange + 1];
struct element cellspace[maxcells + 1];
int freelist, movesdone;
/* Program to Solve the Towers of Hanoi */
void
error (emsg)
char *emsg;
{
printf ("Error in Towers: %s\n", emsg);
}
void
makenull (int s)
{
stack[s] = 0;
}
int
get_element ()
{
int temp;
if (freelist > 0)
{
temp = freelist;
freelist = cellspace[freelist].next;
}
else
error ("out of space ");
return (temp);
}
void
push (i, s)
int i, s;
{
int errorfound, localel;
errorfound = false;
if (stack[s] > 0)
if (cellspace[stack[s]].discsize <= i)
{
errorfound = true;
error ("disc size error");
};
if (!errorfound)
{
localel = get_element ();
cellspace[localel].next = stack[s];
stack[s] = localel;
cellspace[localel].discsize = i;
}
}
void
init (s, n)
int s, n;
{
int discctr;
makenull (s);
for (discctr = n; discctr >= 1; discctr--)
push (discctr, s);
}
int
pop (s)
int s;
{
int temp, temp1;
if (stack[s] > 0)
{
temp1 = cellspace[stack[s]].discsize;
temp = cellspace[stack[s]].next;
cellspace[stack[s]].next = freelist;
freelist = stack[s];
stack[s] = temp;
return (temp1);
}
else
error ("nothing to pop ");
return 0;
}
void
move (s1, s2)
int s1, s2;
{
push (pop (s1), s2);
movesdone = movesdone + 1;
}
void
tower (i, j, k)
int i, j, k;
{
int other;
if (k == 1)
move (i, j);
else
{
other = 6 - i - j;
tower (i, other, k - 1);
move (i, j);
tower (other, j, k - 1);
}
}
void
towers ()
{
int i;
for (i = 1; i <= maxcells; i++)
cellspace[i].next = i - 1;
freelist = maxcells;
init (1, 14);
makenull (2);
makenull (3);
movesdone = 0;
tower (1, 2, 14);
if (movesdone != 16383)
printf (" error in Towers.\n");
}
#ifndef LOOP
#define LOOP 500
#endif
int
main ()
{
int i;
for (i= 0; i < LOOP; i++)
towers();
return 0;
}

View file

@ -1,31 +0,0 @@
With 5.18.0-0.rc5.20220504git107c948d1d3e61d.42.fc37.x86_64 we have
---------------------8<--------------------------------------------------------
:: [ 08:26:39 ] :: [ BEGIN ] :: Running 'stap --skip-badvars --ldd backtrackator.stp -c ./classes > output.out'
In file included from /usr/share/systemtap/runtime/linux/../regs.c:20,
from /usr/share/systemtap/runtime/linux/runtime.h:270,
from /usr/share/systemtap/runtime/runtime.h:26,
from /tmp/stap7hYYpn/stap_9beffd9064cc2c18ddd2daf7f47a7e44_5966_src.c:21:
/usr/share/systemtap/runtime/stack.c: In function _stp_stack_unwind_one_kernel:
/usr/share/systemtap/runtime/linux/../linux/regs.c:23:32: error: struct kretprobe_instance has no member named ret_addr
23 | #define _stp_ret_addr_r(ri) (ri->ret_addr)
| ^~
/usr/share/systemtap/runtime/stack.c:358:47: note: in expansion of macro _stp_ret_addr_r
358 | return (unsigned long)_stp_ret_addr_r(c->ips.krp.pi);
| ^~~~~~~~~~~~~~~
make[1]: *** [scripts/Makefile.build:288: /tmp/stap7hYYpn/stap_9beffd9064cc2c18ddd2daf7f47a7e44_5966_src.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:1844: /tmp/stap7hYYpn] Error 2
WARNING: kbuild exited with status: 2
Pass 4: compilation failed. [man error::pass4]
:: [ 08:26:59 ] :: [ FAIL ] :: Command 'stap --skip-badvars --ldd backtrackator.stp -c ./classes > output.out' (Expected 0, got 1)
---------------------8<--------------------------------------------------------
Related to CONFIG_KRETPROBE_ON_RETHOOK https://elixir.bootlin.com/linux/v5.18-rc5/source/include/linux/kprobes.h#L163
Needs fixing on the stap side.

View file

@ -1,15 +0,0 @@
function mypr:long(){
printf("================================================================================\n");
printf("Probed function: [%s]\n\n", probefunc());
printf ("Backtrace:\n");
print_ubacktrace();
return 0;
}
probe process("classes").function("public*") { mypr(); }
probe process("classes").function("private*") { mypr(); }
probe process("classes").function("recursive*") { mypr(); }
probe process("classes").function("main*") { mypr(); }

View file

@ -1,43 +0,0 @@
#include "classes.hpp"
#include <iostream>
void A::privateA1(){
std::cout << "privateA1" << std::endl;
this->privateA2();
}
void A::privateA2(){
std::cout << "privateA2" << std::endl;
this->recursiveA1(3);
}
void A::recursiveA1(int count){
std::cout << "recursiveA1: " << count << std::endl;
if (count == 0)
return;
this->recursiveA1(count-1);
return;
}
void A::publicA1(){
std::cout << "publicA1" << std::endl;
this->publicA2();
}
void A::publicA2(){
std::cout << "publicA2" << std::endl;
this->privateA1();
}
void B::privateB1(A a){
std::cout << "privateB1" << std::endl;
a.publicA1();
}
void B::publicB1(A a){
std::cout << "publicB1" << std::endl;
this->privateB1(a);
}

View file

@ -1,16 +0,0 @@
class A{
private:
void privateA1();
void privateA2();
void recursiveA1(int);
public:
void publicA1();
void publicA2();
};
class B{
private:
void privateB1(A);
public:
void publicB1(A);
};

View file

@ -1,77 +0,0 @@
================================================================================
Probed function: [main]
================================================================================
Probed function: [publicB1]
publicB1
================================================================================
Probed function: [privateB1]
privateB1
publicB1
================================================================================
Probed function: [publicA1]
publicA1
privateB1
publicB1
================================================================================
Probed function: [publicA2]
publicA2
publicA1
privateB1
publicB1
================================================================================
Probed function: [privateA1]
privateA1
publicA2
publicA1
privateB1
publicB1
================================================================================
Probed function: [privateA2]
privateA2
privateA1
publicA2
publicA1
privateB1
publicB1
================================================================================
Probed function: [recursiveA1]
recursiveA1
privateA2
privateA1
publicA2
publicA1
privateB1
publicB1
================================================================================
Probed function: [recursiveA1]
recursiveA1
recursiveA1
privateA2
privateA1
publicA2
publicA1
privateB1
publicB1
================================================================================
Probed function: [recursiveA1]
recursiveA1
recursiveA1
recursiveA1
privateA2
privateA1
publicA2
publicA1
privateB1
publicB1
================================================================================
Probed function: [recursiveA1]
recursiveA1
recursiveA1
recursiveA1
recursiveA1
privateA2
privateA1
publicA2
publicA1
privateB1
publicB1

View file

@ -1,10 +0,0 @@
#include "classes.hpp"
int main(){
A a;
B b;
b.publicB1(a);
return 0;
}

View file

@ -1,14 +0,0 @@
summary: Tests backtracking in C++ programs
description: ''
contact: Petr Muller <pmuller@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- gcc-c++
duration: 10m
extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces
extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces
tier: 1

View file

@ -1,66 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces
# Description: Tests backtracking in C++ programs
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 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
. /etc/os-release || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlRun "g++ classes.cpp main.cpp -g -o classes"
rlRun "stap-prep" 0-255
rlPhaseEnd
rlPhaseStartTest
rlRun "stap --ldd backtrackator.stp -c ./classes -o output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicA1[A-Za-z0-9]*/publicA1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicA2[A-Za-z0-9]*/publicA2/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateA1[A-Za-z0-9]*/privateA1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateA2[A-Za-z0-9]*/privateA2/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*recursiveA1[A-Za-z0-9]*/recursiveA1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicB1[A-Za-z0-9]*/publicB1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateB1[A-Za-z0-9]*/privateB1/g' output.out"
rlRun "grep -o -e publicA1 -e publicA2 -e privateA1 -e privateA2 -e recursiveA1 \
-e publicB1 -e privateB1 -e 'Probed function:.*' -e '=*' \
output.out > output.processed"
rlRun "diff output.processed golden.out"
rlPhaseEnd
rlPhaseStartCleanup
rlFileSubmit output.out
rlFileSubmit output.processed
rlFileSubmit golden.out
rlRun "rm -f output.out output.processed"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,39 +0,0 @@
#include <iostream>
class Explicit{
public:
int data;
Explicit();
Explicit(int argument);
Explicit(const Explicit &original);
~Explicit();
};
class Implicit{
public:
int data;
};
Explicit::Explicit() { this->data=0; }
Explicit::Explicit(int a) {this->data=0; }
Explicit::Explicit(const Explicit &orig){this->data = orig.data;}
Explicit::~Explicit(){}
int main(){
Explicit e1; //static ctor call
Explicit *e2;
e2 = new Explicit(); //dynamic ctor call
delete e2; //dynamic dtor call
e2 = new Explicit(2); //dynamic ctor call
Explicit e3 = *e2; //copy ctor
delete e2; //dtor
Implicit i1; //ctor
Implicit *i2 = new Implicit(); //ctor
Implicit i3 = *i2; //implicit copy ctor
delete i2; //dtor
return 0; // dtor e1, e3, i1, i3
}

View file

@ -1,16 +0,0 @@
Explicit constructor start
Explicit constructor end
Explicit constructor start
Explicit constructor end
Explicit destructor start
Explicit destructor end
Explicit constructor start
Explicit constructor end
Explicit constructor start
Explicit constructor end
Explicit destructor start
Explicit destructor end
Explicit destructor start
Explicit destructor end
Explicit destructor start
Explicit destructor end

View file

@ -1,14 +0,0 @@
summary: Tests probing constructors and destructors
description: ''
contact: Petr Muller <pmuller@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- gcc-c++
duration: 5m
extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-ctors-and-dtors
extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-ctors-and-dtors
tier: 1

View file

@ -1,52 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-ctors-and-dtors
# Description: Tests probing constructors and destructors
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 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
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlRun "g++ classes.cpp -g -o classes"
rlPhaseEnd
rlPhaseStartTest
rlRun "stap -c ./classes tracker.stp -o output.out"
rlAssertNotDiffer golden.out output.out
rlPhaseEnd
rlPhaseStartCleanup
rlFileSubmit "output.out"
rlFileSubmit "golden.out"
rlRun "rm -rf classes output.out"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,23 +0,0 @@
probe process("classes").function("Explicit::Explicit"){
printf("Explicit constructor start\n");
}
probe process("classes").function("Explicit::~Explicit"){
printf("Explicit destructor start\n");
}
probe process("classes").function("Explicit::Explicit").return{
printf("Explicit constructor end\n");
}
probe process("classes").function("Explicit::~Explicit").return{
printf("Explicit destructor end\n");
}
//probe process("classes").function("Implicit::Implicit"){
// printf("Implicitconstructor\n");
//}
//probe process("classes").function("Implicit::Implicit"){
// printf("Implicit constructor\n");
//}

View file

@ -1,56 +0,0 @@
#include <iostream>
class A{
public:
void one(){ std::cout << "A::one" << std::endl; }
void two(){ std::cout << "A::two" << std::endl; }
virtual void three() { std::cout << "A::three" << std::endl; }
virtual void four() { std::cout << "A::four" << std::endl; }
};
class B : public A{
public:
void one() { std::cout << "B::one" << std::endl; }
int one(int a) { std::cout << "B::one" << std::endl; }
virtual void three() { std::cout << "B::three" << std::endl; }
};
int main(){
A a;
B b;
A *ap = new A();
A *apb = new B();
B *bp = new B();
a.one();
a.two();
a.three();
a.four();
b.one();
b.two();
b.three();
b.four();
ap->one();
ap->two();
ap->three();
ap->four();
apb->one();
apb->two();
apb->three();
apb->four();
bp->one();
bp->two();
bp->three();
bp->four();
return 0;
}

View file

@ -1,14 +0,0 @@
summary: Tests systemtap handling inheritance
description: ''
contact: Petr Muller <pmuller@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- gcc-c++
duration: 10m
extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-inheritance
extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-inheritance
tier: 1

View file

@ -1,56 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-inheritance
# Description: Tests systemtap handling inheritance
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 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
# if this testcase caused kernel crash and reboot, don't try to rerun it
[[ $REBOOTCOUNT -gt 0 ]] && exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlRun "g++ classes.cpp -o classes -g"
rlRun "./classes > program.out" 0 "Preparing the golden output"
rlPhaseEnd
rlPhaseStartTest
rlRun "stap -c ./classes tracker.stp -o stap.out"
rlAssertNotDiffer program.out stap.out
rlPhaseEnd
rlPhaseStartCleanup
rlFileSubmit program.out
rlFileSubmit stap.out
rlRun "rm -f classes stap.out program.out"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,6 +0,0 @@
probe process("classes").function("A::one"){printf("A::one\n");}
probe process("classes").function("A::two"){printf("A::two\n");}
probe process("classes").function("A::three"){printf("A::three\n");}
probe process("classes").function("A::four"){printf("A::four\n");}
probe process("classes").function("B::one"){printf("B::one\n");}
probe process("classes").function("B::three"){printf("B::three\n");}

View file

@ -1,71 +0,0 @@
__attribute__((noinline)) void StandaloneFunction(){
}
class CLASS1{
private:
void prMethod() {};
public:
void puMethod() {this->prMethod();};
static void stMethod() {};
};
namespace inner{
void StandaloneFunction(){
}
class CLASS1{
private:
void prMethod() {};
public:
void puMethod() {this->prMethod();};
static void stMethod() {};
};
};
namespace moreinner{
void StandaloneFunction(){
}
class CLASS1{
private:
__attribute__((noinline)) void prMethod() {};
public:
__attribute__((noinline)) void puMethod() {this->prMethod();};
__attribute__((noinline)) static void stMethod() {};
};
};
int main(){
StandaloneFunction();
inner::StandaloneFunction();
moreinner::StandaloneFunction();
CLASS1 A;
inner::CLASS1 B;
moreinner::CLASS1 C;
CLASS1* pA = new CLASS1();
inner::CLASS1 *pB = new inner::CLASS1();
moreinner::CLASS1 *pC = new moreinner::CLASS1();
A.puMethod();
A.stMethod();
B.puMethod();
B.stMethod();
C.puMethod();
C.stMethod();
pA->puMethod();
pA->stMethod();
pB->puMethod();
pB->stMethod();
pC->puMethod();
pC->stMethod();
return 0;
}

View file

@ -1,13 +0,0 @@
__hitcount=70
__inner_CLASS1_prMethod=0
__inner_CLASS1_puMethod=0
__inner_CLASS1_stMethod=0
__inner_StandaloneFunction=0
__moreinner_StandaloneFunction=0
__moreinner_star_prMethod=0
__moreinner_star_puMethod=0
__moreinner_star_stMethod=0
__prMethod=0
__puMethod=0
__StandaloneFunction=0
__stMethod=0

View file

@ -1,14 +0,0 @@
summary: Tests C++ methods
description: ''
contact: Petr Muller <pmuller@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- gcc-c++
duration: 120m
extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-methods
extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-methods
tier: 1

View file

@ -1,72 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-methods
# Description: Tests C++ methods
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 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
PACKAGE="systemtap"
export LANG=C
rlJournalStart
rlPhaseStartSetup
rlRun "stap-prep" 0-255
rlRun "g++ -O0 classes.cpp -o classes -g"
rlPhaseEnd
rlPhaseStartTest
rlRun "stap $COMPAT -c ./classes tracker.stp -o output.out"
# Stop comparing literally against a golden file,
# do a sanity check instead. The literal golden file check
# sort of regressed between rhel-8.2 and rhel-8.3
# rlRun "diff golden.out output.out"
rlRun "grep ^__ output.out | sort > summary.out"
# The way sort works across test systems may differ
# esp wrt whether capitals go first or not, so let's sort
# the golden_summary.out first using actual defaults
# slash LANG etc...
rlRun "sort golden_summary.out > golden_summary.sort"
# RHEL6: covert hex to dec:
rlRun "sed -i 's/0x0/0/' summary.out"
rlRun "sed -i 's/0x46/70/' summary.out"
# Sanity check
rlRun "diff golden_summary.sort summary.out" || (
rlRun "cat golden_summary.out"
rlRun "cat summary.out"
)
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm -f golden_summary.sort output.out summary.out classes"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,162 +0,0 @@
global __hitcount = 0
global __StandaloneFunction = 0
global __inner_StandaloneFunction = 0
global __moreinner_StandaloneFunction = 0
global __stMethod = 0
global __inner_CLASS1_stMethod = 0
global __moreinner_star_stMethod = 0
global __prMethod = 0
global __inner_CLASS1_prMethod = 0
global __moreinner_star_prMethod = 0
global __puMethod = 0
global __inner_CLASS1_puMethod = 0
global __moreinner_star_puMethod = 0
probe process("classes").function("StandaloneFunction").call{
__StandaloneFunction++
__hitcount++
printf("StandaloneFunction start: %s\n", probefunc());
}
probe process("classes").function("StandaloneFunction").return{
__StandaloneFunction--
__hitcount++
printf("StandaloneFunction end: %s\n", probefunc());
}
probe process("classes").function("inner::StandaloneFunction").call{
__inner_StandaloneFunction++
__hitcount++
printf("inner::StandaloneFunction start: %s\n", probefunc());
}
probe process("classes").function("inner::StandaloneFunction").return{
__inner_StandaloneFunction--
__hitcount++
printf("inner::StandaloneFunction end: %s\n", probefunc());
}
probe process("classes").function("moreinner::StandaloneFunction").call{
__moreinner_StandaloneFunction++
__hitcount++
printf("moreinner::StandaloneFunction start: %s\n", probefunc());
}
probe process("classes").function("moreinner::StandaloneFunction").return{
__moreinner_StandaloneFunction--
__hitcount++
printf("moreinner::StandaloneFunction end: %s\n", probefunc());
}
// ============================================================================
probe process("classes").function("stMethod").call{
__stMethod++
__hitcount++
printf("stMethod start: %s\n", probefunc());
}
probe process("classes").function("stMethod").return{
__stMethod--
__hitcount++
printf("stMethod end: %s\n", probefunc());
}
probe process("classes").function("inner::CLASS1::stMethod").call{
__inner_CLASS1_stMethod++
__hitcount++
printf("inner::stMethod start: %s\n", probefunc());
}
probe process("classes").function("inner::CLASS1::stMethod").return{
__inner_CLASS1_stMethod--
__hitcount++
printf("inner::stMethod end: %s\n", probefunc());
}
probe process("classes").function("moreinner::*::stMethod").call{
__moreinner_star_stMethod++
__hitcount++
printf("moreinner::stMethod start: %s\n", probefunc());
}
probe process("classes").function("moreinner::*::stMethod").return{
__moreinner_star_stMethod--
__hitcount++
printf("moreinner::stMethod end: %s\n", probefunc());
}
//=============================================================================
probe process("classes").function("prMethod").call{
__prMethod++
__hitcount++
printf("prMethod start: %s\n", probefunc());
}
probe process("classes").function("prMethod").return{
__prMethod--
__hitcount++
printf("prMethod end: %s\n", probefunc());
}
probe process("classes").function("inner::CLASS1::prMethod").call{
__inner_CLASS1_prMethod++
__hitcount++
printf("inner::prMethod start: %s\n", probefunc());
}
probe process("classes").function("inner::CLASS1::prMethod").return{
__inner_CLASS1_prMethod--
__hitcount++
printf("inner::prMethod end: %s\n", probefunc());
}
probe process("classes").function("moreinner::*::prMethod").call{
__moreinner_star_prMethod++
__hitcount++
printf("moreinner::prMethod start: %s\n", probefunc());
}
probe process("classes").function("moreinner::*::prMethod").return{
__moreinner_star_prMethod--
__hitcount++
printf("moreinner::prMethod end: %s\n", probefunc());
}
//=============================================================================
probe process("classes").function("puMethod").call{
__puMethod++
__hitcount++
printf("puMethod start: %s\n", probefunc());
}
probe process("classes").function("puMethod").return{
__puMethod--
__hitcount++
printf("puMethod end: %s\n", probefunc());
}
probe process("classes").function("inner::CLASS1::puMethod").call{
__inner_CLASS1_puMethod++
__hitcount++
printf("inner::puMethod start: %s\n", probefunc());
}
probe process("classes").function("inner::CLASS1::puMethod").return{
__inner_CLASS1_puMethod--
__hitcount++
printf("inner::puMethod end: %s\n", probefunc());
}
probe process("classes").function("moreinner::*::puMethod").call{
__moreinner_star_puMethod++
__hitcount++
printf("moreinner::puMethod start: %s\n", probefunc());
}
probe process("classes").function("moreinner::*::puMethod").return{
__moreinner_star_puMethod--
__hitcount++
printf("moreinner::puMethod end: %s\n", probefunc());
}

View file

@ -1,15 +0,0 @@
summary: Test for BZ#1572501 (RHEL7.5 - backtraces no longer work with systemtap)
description: Test for BZ#1572501
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 48h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1572501
extra-summary: /tools/systemtap/Regression/RHEL7-5-backtraces-no-longer-work-with-systemtap
extra-task: /tools/systemtap/Regression/RHEL7-5-backtraces-no-longer-work-with-systemtap
tier: 1

View file

@ -1,49 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL7-5-backtraces-no-longer-work-with-systemtap
# Description: Test for BZ#1572501 (RHEL7.5 - backtraces no longer work with systemtap)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2018 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartTest
if arch | grep -q s390x; then
rlLogWarning "Test not relevant"
else
TEMPFILE=$(mktemp)
rlRun "stap --all-modules -vwe 'probe kernel.function(\"kmem_cache_alloc\") { print_backtrace(); exit() }' >& $TEMPFILE"
# since it's hard to find some reasonable pattern to grep for across arches in the backrtrace
# we'll simply count the lines. We'll want at least 9 lines of output (6 as the results of -v,
# and another at least three coming from the backtrace itself.
rlRun "cat $TEMPFILE"
rlRun "test 9 -le $(wc -l $TEMPFILE | awk '{print $1}')"
rm $TEMPFILE
fi
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,63 +0,0 @@
Kernel porting needed.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: [ 09:22:47 ] :: [ INFO ] :: Checking whether we might want to try prologue search.
:: [ 09:23:10 ] :: [ BEGIN ] :: Running 'stap -P -vp4 readpages.stp'
Pass 1: parsed user script and 484 library scripts using 122428virt/95036res/15532shr/79120data kb, in 200usr/110sys/315real ms.
WARNING: never-assigned local variable 'nr_pages' (similar: rpages, __page, dev, name, file): identifier 'nr_pages' at readpages.stp:5:26
source: printf("nr_pages=%d\n", nr_pages);
^
WARNING: never-assigned local variable 'rpages' (similar: nr_pages, __page, dev, name, rsize): identifier 'rpages' at :7:24
source: printf("rpages=%d\n", rpages);
^
Pass 2: analyzed script: 2 probes, 17 functions, 3 embeds, 0 globals using 351676virt/327836res/19060shr/308368data kb, in 2880usr/1970sys/4927real ms.
Pass 3: translated to C into "/tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.c" using 351692virt/327964res/19188shr/308384data kb, in 490usr/800sys/1301real ms.
In file included from /usr/share/systemtap/runtime/linux/../regs.c:16,
from /usr/share/systemtap/runtime/linux/runtime.h:270,
from /usr/share/systemtap/runtime/runtime.h:26,
from /tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.c:21:
/tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.c: In function enter_kretprobe_common:
/tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.c:2499:45: error: struct kretprobe_instance has no member named ret_addr
2499 | SET_REG_IP(regs, (unsigned long)inst->ret_addr);
| ^~
/usr/share/systemtap/runtime/linux/../regs.h:85:44: note: in definition of macro SET_REG_IP
85 | #define SET_REG_IP(regs, x) REG_IP(regs) = x
| ^
make[1]: *** [scripts/Makefile.build:288: /tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.o] Error 1
make: *** [Makefile:1844: /tmp/stapWU958g] Error 2
WARNING: kbuild exited with status: 2
Pass 4: compiled C into "stap_f189533513b6d61221ada924fedfc9c4_6369.ko" in 1150usr/1910sys/2659real ms.
Pass 4: compilation failed. [man error::pass4]
:: [ 09:23:20 ] :: [ FAIL ] :: Command 'stap -P -vp4 readpages.stp' (Expected 0, got 1)
:: [ 09:23:20 ] :: [ BEGIN ] :: Running 'stap -P -vp4 tcp.sendmsg.stp'
Pass 1: parsed user script and 484 library scripts using 122428virt/95044res/15536shr/79120data kb, in 180usr/130sys/316real ms.
Pass 2: analyzed script: 5 probes, 2 functions, 4 embeds, 3 globals using 202292virt/178300res/19224shr/158984data kb, in 1720usr/1750sys/3531real ms.
Pass 3: translated to C into "/tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.c" using 202308virt/178492res/19416shr/159000data kb, in 160usr/720sys/899real ms.
In file included from /usr/share/systemtap/runtime/linux/../regs.c:16,
from /usr/share/systemtap/runtime/linux/runtime.h:270,
from /usr/share/systemtap/runtime/runtime.h:26,
from /tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.c:21:
/tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.c: In function enter_kretprobe_common:
/tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.c:2190:45: error: struct kretprobe_instance has no member named ret_addr
2190 | SET_REG_IP(regs, (unsigned long)inst->ret_addr);
| ^~
/usr/share/systemtap/runtime/linux/../regs.h:85:44: note: in definition of macro SET_REG_IP
85 | #define SET_REG_IP(regs, x) REG_IP(regs) = x
| ^
make[1]: *** [scripts/Makefile.build:288: /tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.o] Error 1
make: *** [Makefile:1844: /tmp/stapzXlpka] Error 2
WARNING: kbuild exited with status: 2
Pass 4: compiled C into "stap_c98d0598383a49c9b0a715336e876a54_18911.ko" in 1250usr/1900sys/2762real ms.
Pass 4: compilation failed. [man error::pass4]
:: [ 09:23:28 ] :: [ FAIL ] :: Command 'stap -P -vp4 tcp.sendmsg.stp' (Expected 0, got 1)
:: [ 09:23:28 ] :: [ BEGIN ] :: Running 'stap -P -vp4 bdflush.stp'
Pass 1: parsed user script and 484 library scripts using 122428virt/94968res/15468shr/79120data kb, in 180usr/130sys/317real ms.
Pass 2: analyzed script: 3 probes, 5 functions, 98 embeds, 4 globals using 198116virt/174376res/18956shr/154808data kb, in 1930usr/2660sys/4689real ms.
/root/.systemtap/cache/87/stap_8728db2fdfe761c96d8963fd0c4fffd2_71969.ko
Pass 3: using cached /root/.systemtap/cache/87/stap_8728db2fdfe761c96d8963fd0c4fffd2_71969.c
Pass 4: using cached /root/.systemtap/cache/87/stap_8728db2fdfe761c96d8963fd0c4fffd2_71969.ko
:: [ 09:23:33 ] :: [ PASS ] :: Command 'stap -P -vp4 bdflush.stp' (Expected 0, got 0)

View file

@ -1,8 +0,0 @@
probe syscall.bdflush {
printf("%s\n", name)
printf("%s\n", argstr)
}
probe syscall.bdflush.return {
printf("%s\n", name)
}

View file

@ -1,14 +0,0 @@
summary: bz544960-no-cfa_ops-supplied
description: ''
contact: Martin Hatina <mhatina@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 30m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=544960
extra-summary: /tools/systemtap/Regression/bz544960-no-cfa_ops-supplied
extra-task: /tools/systemtap/Regression/bz544960-no-cfa_ops-supplied

View file

@ -1,21 +0,0 @@
probe nfs.aop.readpages !, nfs.aop.readpage ? {
log(name);
printf("dev=%d\n", dev);
printf("ino=%d\n", ino);
printf("nr_pages=%d\n", nr_pages);
printf("file=%d\n", file);
printf("rpages=%d\n", rpages);
printf("rsize=%d\n", rsize);
printf("argstr=%s\n", argstr);
printf("size=%d\n", size);
printf("units=%s\n", units);
}
probe nfs.aop.readpages.return !, nfs.aop.readpage.return ? {
log(name);
printf("retstr=%s\n", retstr);
printf("size=%d\n", size);
printf("units=%s\n", units);
}
probe oneshot { log("hey!") }

View file

@ -1,49 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/bz544960-no-cfa_ops-supplied
# Description: What the test does
# Author: Martin Hatina <mhatina@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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
PACKAGE="systemtap"
_SCRIPTS="readpages.stp tcp.sendmsg.stp bdflush.stp"
rlJournalStart
rlPhaseStartTest
rlLogInfo "Checking whether we might want to try prologue search."
p=""
for s in $_SCRIPTS; do
stap -vp4 $s >& /dev/null || p="-P"
done
for s in $_SCRIPTS; do
rlRun "stap $p -vp4 $s"
done
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,7 +0,0 @@
probe tcp.sendmsg {
printf("%d\n", size)
}
probe tcp.sendmsg.return {
printf("%d\n", size)
}

View file

@ -1,15 +0,0 @@
summary: bz706185-various-build-and-run
description: bz706185-various-build-and-run
contact: Petr Muller <pmuller@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 20m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=706185
extra-summary: /tools/systemtap/Regression/bz706185-various-build-and-run
extra-task: /tools/systemtap/Regression/bz706185-various-build-and-run
tier: 1

View file

@ -1,87 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/bz706185-various-build-and-run
# Description: Test containing several build and run testcases.
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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 Beaker environment
. /usr/share/beakerlib/beakerlib.sh
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlRun "rpm -qf $(which stap)"
rlRun "uname -r"
rlPhaseEnd
rlPhaseStartTest "Build testcases"
export STAPOUT=`mktemp`
export TRACOUT=`mktemp`
for testcase in *.stp
do
rlLog "Testcase: $testcase"
rlRun "stap -v -p4 $testcase -m testcase --poison-cache &>$STAPOUT" 0 "Building testcase: $testcase"
if [ $? -ne 0 ]
then
rlLog "=== systemtap output start"
while read line
do
rlLog "$line"
done < $STAPOUT
rlLog "=== systemtap output end"
fi
rm -f testcase.ko
rm -f $STAPOUT
done
rlPhaseEnd
rlPhaseStartTest "Run testcases"
for testcase in *.run
do
rlLog "Testcase: $testcase"
COMMAND="`cat $testcase`"
COMMAND="$COMMAND -o $TRACOUT $testcase --poison-cache &>$STAPOUT"
rlLog "Assembled command: [$COMMAND]"
rlRun "$COMMAND" 0 "Running testcase: $testcase"
if [ $? -ne 0 ]
then
rlLog "=== systemtap output start"
while read line; do rlLog "$line"; done < $STAPOUT
rlLog "=== systemtap output end"
rlLog ""
rlLog "=== tracing output start"
while read line; do rlLog "$line"; done < $TRACOUT
rlLog "=== tracing output end"
fi
rm -f $STAPOUT $TRACOUT
done
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm -f $STAPOUT $TRACOUT"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1 +0,0 @@
stap -v softirq.stp

View file

@ -1,3 +0,0 @@
probe softirq.entry { println(">>> softirq") }
probe softirq.exit { println("<<< softirq")}
probe timer.ms(5000) { exit() }

View file

@ -1,16 +0,0 @@
summary: dtrace-create-Wall-Wextra-pedantic-clean-code
description: dtrace-create-Wall-Wextra-pedantic-clean-code
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- systemtap-sdt-devel
duration: 5m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=902739
extra-summary: /tools/systemtap/Regression/dtrace-create-Wall-Wextra-pedantic-clean-code
extra-task: /tools/systemtap/Regression/dtrace-create-Wall-Wextra-pedantic-clean-code
tier: 1

View file

@ -1,57 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/dtrace-create-Wall-Wextra-pedantic-clean-code
# Description: dtrace-create-Wall-Wextra-pedantic-clean-code
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=$(mktemp -d)"
rlRun "pushd $TMPDIR"
rlPhaseEnd
rlPhaseStart WARN "Info"
rlRun "which dtrace"
rlPhaseEnd
rlPhaseStartTest
rlRun "printf \"provider xxx { probe xxx(); };\n\" > xxx"
rlRun "dtrace -G -k -s xxx &> dtrace.out"
rlRun "cat dtrace.out"
rlRun "CF=$( awk '/^source:/ {print $2}' dtrace.out )"
rlRun "gcc -c -Wall -Wextra -pedantic $CF 2>&1 | tee gcc.out"
rlRun "grep -i warning gcc.out" 1
rlRun "grep -i error gcc.out" 1
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,28 +0,0 @@
#!/bin/bash
set -xe
rm -rf ~/.cache/debuginfod_client ~/.systemtap ||:
debuginfod -p 8008 -d $(mktemp) -vvvvv >& debuginfod.log &
PID=$!
sleep 5
export SYSTEMTAP_DEBUGINFO_PATH=/tmp
export DEBUGINFOD_URLS="http://127.0.0.1:8008"
# The following doesn't work on aarch64 and s390x because of:
# https://sourceware.org/bugzilla/show_bug.cgi?id=25498
# stap -p2 -e 'probe kernel.function("vfs_read") {println(pp())}' ||:
stap -p2 -e 'probe process("/bin/true").function("main") {println(pp())}' -c /bin/true ||:
sleep 5
kill -9 $PID
grep 'started http server on' debuginfod.log
grep 'searching for buildid=[a-z0-9]* artifacttype=debuginfo' debuginfod.log

View file

@ -1,15 +0,0 @@
summary: elfutils-debuginfod-client-not-being-called
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- elfutils-debuginfod
duration: 48h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1778921
extra-summary: /tools/systemtap/Regression/elfutils-debuginfod-client-not-being-called
extra-task: /tools/systemtap/Regression/elfutils-debuginfod-client-not-being-called
tier: 1

View file

@ -1,52 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/elfutils-debuginfod-client-not-being-called
# Description: elfutils-debuginfod-client-not-being-called
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2020 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TMP=$(mktemp -d)"
rlRun "cp dotest.sh $TMP/"
rlRun "pushd $TMP"
rlPhaseEnd
rlPhaseStartTest
rlRun "bash dotest.sh" ||
rlRun "cat debuginfod.log"
rlFileSubmit debuginfod.log
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMP"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,8 +0,0 @@
probe begin
{
printf ( "hello trace : printf\n")
printk (20,"hello trace : printk")
ftrace ( "hello trace : ftrace\n")
exit ()
}

View file

@ -1,15 +0,0 @@
summary: ftrace-logging-tapset-not-working-as-expected-in
description: ftrace-logging-tapset-not-working-as-expected-in
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 48h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1810216
extra-summary: /tools/systemtap/Regression/ftrace-logging-tapset-not-working-as-expected-in
extra-task: /tools/systemtap/Regression/ftrace-logging-tapset-not-working-as-expected-in
tier: 1

View file

@ -1,47 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/ftrace-logging-tapset-not-working-as-expected-in
# Description: ftrace-logging-tapset-not-working-as-expected-in
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2020 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
LOG1=$(mktemp)
LOG2=$(mktemp)
rlJournalStart
rlPhaseStartTest
rlRun "mount | grep -F -i 'debugfs on'"
rlRun "cat /sys/kernel/debug/tracing/tracing_on | grep '^1$'"
rlRun "journalctl > $LOG1"
rlRun "stap -g -k -v hellotrace.stp"
rlRun "journalctl > $LOG2"
rlRun "diff $LOG1 $LOG2 | grep '^>.*hello trace : printk'"
rlRun "rm $LOG1 $LOG2"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,17 +0,0 @@
summary: Test for BZ#822503 (ipv6 tapset support)
description: ipv6 tapset support
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- nfs-utils
- setup
duration: 50m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=822503
extra-summary: /tools/systemtap/Regression/ipv6-tapset-support
extra-task: /tools/systemtap/Regression/ipv6-tapset-support
tier: 1

View file

@ -1,12 +0,0 @@
#!/usr/bin/stap
# http://sourceware.org/systemtap/examples/network/nfsdtop.stp
probe nfsd.proc.lookup {
printf("%s %s\n", client_ip, filename);
}
probe timer.ms(100000) {
exit ();
}

View file

@ -1,79 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/ipv6-tapset-support
# Description: Test for BZ#822503 (ipv6 tapset support)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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
. /etc/os-release || exit 1
rlJournalStart
rlPhaseStartSetup
rlLogInfo "Related bugs: Fedora rawhide 6.2.0-0.rc8.57.fc39.x86_64 bz2177192"
rlAssertRpm nfs-utils
rlRun "uname -r"
rlRun "which stap"
rlRun "TMPD=$(mktemp -d --tmpdir=$HOME tmp.XXXXXXX)"
rlRun "mkdir $TMPD/{A,B}"
rlRun "chmod --recursive 0777 $TMPD"
rlRun "STAPLOG=$(mktemp)"
rlServiceStart rpcbind
sleep 5
NFS_SERVICE=nfs
rlIsRHEL '>=8' && NFS_SERVICE=nfs-server
[ $ID == 'fedora' ] && test $VERSION_ID -ge 38 && NFS_SERVICE=nfs-server
rlServiceStart $NFS_SERVICE
sleep 10
rlRun "exportfs -ua"
rlRun "exportfs -i -o 'rw,no_root_squash' *:$TMPD/A"
rlPhaseEnd
rlPhaseStartTest
# ======= work around bz1605574
rlLogInfo "Let's check if we can compile the module."
rlLogInfo "In case we can't, we'll go ahead with prologue searching."
set -x
EXTRA_SWITCHES=''
stap -p4 nfsd.proc.lookup.stp || EXTRA_SWITCHES="-P"
set +x
# =============================
# mount is sufficient to invoke nfsd.proc.lookup
rlRun "stap $EXTRA_SWITCHES -v -c 'mount -t nfs -v [::1]:$TMPD/A $TMPD/B' nfsd.proc.lookup.stp |& tee $STAPLOG"
rlRun "umount $TMPD/B"
rlRun "grep 'Unsupported Address Family' $STAPLOG" 1
rlRun "grep -E '^\[0000:0000:0000:0000:0000:0000:0000:0001\]:[0-9]+.*$(basename $TMPD)' $STAPLOG"
rlPhaseEnd
rlPhaseStartCleanup
rlServiceRestore $NFS_SERVICE
rlServiceRestore rpcbind
rlRun "rm -rf $TMPD $STAPLOG"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,16 +0,0 @@
summary: irq-vector-tracepoints
description: irq-vector-tracepoints
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap-devel
- kernel-debuginfo
duration: 15m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1020437
extra-summary: /tools/systemtap/Regression/irq-vector-tracepoints
extra-task: /tools/systemtap/Regression/irq-vector-tracepoints
tier: 1

View file

@ -1,74 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/irq-vector-tracepoints
# Description: irq-vector-tracepoints
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=$(mktemp -d)"
rlRun "pushd $TMPDIR"
rlRun "mount -t debugfs /dev/null /sys/kernel/debug" 0-255
rlRun "test -d /sys/kernel/debug/tracing/events"
rlPhaseEnd
rlPhaseStart FAIL "Systemtap sanity check"
rlRun "stap --version"
rlRun "stap -v -e 'probe kernel.function(\"vfs_read\"){ exit() }'"
rlPhaseEnd
rlPhaseStart FAIL "Create list of all kernel tracepoints known to stap"
rlRun "stap -l 'kernel.trace(\"*\")' > tracepoints"
rlFileSubmit tracepoints
rlPhaseEnd
rlPhaseStart FAIL "Check irq_vectors"
dir='/sys/kernel/debug/tracing/events/irq_vectors'
if test -d $dir; then
for p in $( find $dir -mindepth 1 -type d | awk -F\/ '{print $NF}' ); do
rlLogInfo "Checking $p"
rlRun "grep -q $p tracepoints"
done
# additional checks
rlRun "stap -vp4 -e 'probe kernel.trace(\"local_timer_entry\") {println(pp())}'"
rlRun "stap -vp4 -e 'probe kernel.trace(\"reschedule_entry\") {println(pp())}'"
else
if arch | grep -E 'x86_64|i[36]86'; then
rlLogError "$dir does not exist"
else
rlLogInfo "$dir does not exist"
fi
fi
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,15 +0,0 @@
summary: netdev.receive
description: bz1518462 netdev.receive
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 15m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1518462
extra-summary: /tools/systemtap/Regression/netdev-receive
extra-task: /tools/systemtap/Regression/netdev-receive
tier: 1

View file

@ -1,42 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/netdev-receive
# Description: netdev.receive
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2017 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"
rlJournalStart
rlPhaseStartTest
rlRun "TMPFILE=$(mktemp)"
rlRun "stap -o $TMPFILE -ve 'probe netdev.receive{log(\"HIT\") exit()}' -c 'ping -c1 localhost'"
rlRun "cat $TMPFILE"
rlRun "grep HIT $TMPFILE"
rlRun "rm $TMPFILE"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,17 +0,0 @@
summary: Test for BZ#1055778 (Pass 4 failure on RHEL7 for examples)
description: Test for BZ#1055778 (Pass 4 failure on RHEL7 for examples)
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- valgrind
- systemtap
- systemtap-testsuite
duration: 30m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1055778
extra-summary: /tools/systemtap/Regression/pass-4-failure-netfilter-examples
extra-task: /tools/systemtap/Regression/pass-4-failure-netfilter-examples
tier: 1

View file

@ -1,55 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/pass-4-failure-netfilter-examples
# Description: Test for BZ#1055778 (Pass 4 failure on RHEL7 for examples)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# 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
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
TESTS=$(mktemp)
rlRun "rpm -qa | grep -F systemtap-testsuite"
rlPhaseEnd
rpm -qa | grep systemtap-testsuite | xargs rpm -ql \
| grep -E 'netfilter_drop.stp|netfilter_summary.stp' \
| while read line; do
rlPhaseStart FAIL "Testing $line"
rlRun "stap -p4 $line -v -g TCP 1" && \
echo $line >> $TESTS
rlPhaseEnd
done
rlPhaseStart FAIL "Check what was tested"
rlRun "grep netfilter_drop.stp $TESTS"
rlRun "grep netfilter_summary.stp $TESTS"
rm -f $TESTS
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,22 +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
{
if ( filename =~ "random" )
printf("%s => %s in %s:%d\n", thread_indent(1), funcname, filename, lineno);
}
probe python.function.return
{
if ( filename =~ "random" )
printf("%s <= %s in %s:%d\n", thread_indent(-1), funcname, filename, lineno);
}

View file

@ -1,22 +0,0 @@
summary: Systemtap static probes test
description: Systemtap static probes test
contact: Petr Splichal <psplicha@redhat.com>
component:
- python
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- python
- python-debuginfo
- python3-debuginfo
- python3.9-debuginfo
- systemtap
- python2
- python3
- elfutils
- yum-utils
duration: 15m
extra-summary: /CoreOS/python/Sanity/systemtap
extra-task: /CoreOS/python/Sanity/systemtap
tier: 1

View file

@ -1,86 +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 <psplicha@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
. /usr/share/beakerlib/beakerlib.sh || exit 1
. /etc/os-release || 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"
# Install needed debuginfo, best effort
rlLogInfo "DEBUGINFOD_URLS=$DEBUGINFOD_URLS"
rlLogInfo "DEBUGINFOD_TIMEOUT=$DEBUGINFOD_TIMEOUT"
rlRun "L=$(stap -p2 -e 'probe python.function.entry {exit()}' | awk -F\" '/process/ {print $2}')" 0-255
rlRun "debuginfo-install -y $L /usr/bin/python\*" 0-255
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
# bz2152970 is a known probem
[ "$ID" == "fedora" ] && [ "$script" == "top" ] && continue
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"
rlRun "grep '/usr/lib.*python.*random.py' '$script'" \
0 "Checking for random in the $script output"
rlPhaseEnd
done
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,3 +0,0 @@
import random, time
print(random.random())
time.sleep(3)

View file

@ -1,19 +0,0 @@
#!/usr/bin/stap -v
global fn_calls;
probe python.function.entry
{
fn_calls[pid(), filename, funcname, lineno] += 1;
}
probe timer.ms(1000) {
foreach ([pid, filename, funcname, lineno] in fn_calls- limit 1000) {
if (filename =~ "random")
printf("%6d %80s %6d %30s %6d\n",
pid, filename, lineno, funcname,
fn_calls[pid, filename, funcname, lineno]);
}
delete fn_calls;
}

View file

@ -1,17 +0,0 @@
summary: second-command-not-captured
description: second-command-not-captured
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- ruby
- ruby-libs
duration: 48h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1857749
extra-summary: /tools/systemtap/Regression/second-command-not-captured
extra-task: /tools/systemtap/Regression/second-command-not-captured
tier: 1

View file

@ -1,9 +0,0 @@
probe ruby.method.entry, ruby.cmethod.entry {
if((classname =~ "Array") && (methodname =~ "push"))
printf("%d -> %s::%s %s:%d\n", tid(), classname, methodname, file, line);
}
probe ruby.method.return, ruby.cmethod.return {
if((classname =~ "Array") && (methodname =~ "push"))
printf("%d <- %s::%s %s:%d\n", tid(), classname, methodname, file, line);
}

View file

@ -1,42 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/second-command-not-captured
# Description: second-command-not-captured
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2020 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartTest
rlLog "`which stap`"
rlLog "`stap -V`"
rlRun "stap -v ./ruby-exercise.stp -c ./test.sh -o stap.log"
rlRun "grep 'Array::push' stap.log" ||
rlFileSubmit "stap.log"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,7 +0,0 @@
#!/bin/bash
set -e
ruby -e 'puts "ABC"'
ruby -e '[1, 2, 3].push(4)'
sleep 10

View file

@ -1,15 +0,0 @@
summary: semantic-error-nfs-proc-read_setup
description: semantic-error-nfs-proc-read_setup
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 5m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=884951
extra-summary: /tools/systemtap/Regression/semantic-error-nfs-proc-read_setup
extra-task: /tools/systemtap/Regression/semantic-error-nfs-proc-read_setup
tier: 1

View file

@ -1,5 +0,0 @@
probe nfs.proc.read_setup{
println("nfs.proc.read_setup server_ip: ", server_ip);
println("nfs.proc.read_setup prot: ", prot);
}

View file

@ -1,45 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/semantic-error-nfs-proc-read_setup
# Description: semantic-error-nfs-proc-read_setup
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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
rlJournalStart
rlPhaseStartSetup
rlRun "uname -r"
rlRun "rpm -qa | grep ^kernel | sort"
rlRun "rpm -qa | grep systemtap | sort"
rlRun "which stap"
rlPhaseEnd
rlPhaseStartTest
rlRun "stap -v -p 2 nfs.proc.read_setup.stp"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,15 +0,0 @@
summary: semantic-errors-bz1062076
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 30m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1062076
extra-summary: /tools/systemtap/Regression/semantic-errors-bz1062076
extra-task: /tools/systemtap/Regression/semantic-errors-bz1062076
tier: 1

View file

@ -1,41 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/semantic-errors-bz1062076
# Description: semantic-errors-bz1062076
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# 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
rlJournalStart
rlPhaseStartTest
rlLogInfo "Related bugs: Fedora rawhide 6.2.0-0.rc8.57.fc39.x86_64 bz2177196"
rlLogInfo "Check if we might want to try out prologue search"
p=""
stap -vp4 script.stp >& /dev/null || p="-P"
rlRun "stap $p -vp4 script.stp"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,3 +0,0 @@
probe nfsd.close? { printf("%s\n", filename) } probe never { exit() }
probe sunrpc.clnt.clone_client { print(progname) }
probe scsi.iodone { printf("%d, %d, %d, %d, %d, %d, %d, %d\n", host_no, channel, lun, dev_id, device_state, data_direction, req_addr, scsi_timer_pending ) }

View file

@ -1,17 +0,0 @@
summary: semantic-errors-bz953776
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- perf
- gcc
duration: 60m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=953776
extra-summary: /tools/systemtap/Regression/semantic-errors-bz953776
extra-task: /tools/systemtap/Regression/semantic-errors-bz953776
tier: 1

View file

@ -1,161 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/semantic-errors-bz953776
# Description: semantic-errors-bz953776
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# 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
_rhelmajor=$(rpm --eval '%{rhel}')
_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 FOR PERF ----------------------------------------------
rlPhaseStart FAIL "CHECK FOR PERF"
rlRun "perf --version"
rlPhaseEnd
rlPhaseStartSetup
rlRun "TMPDIR=$(mktemp -d)"
rlRun "pushd $TMPDIR"
# prepare sigaltstack for case-5
cat > sigaltstack.c <<EOF
#define _XOPEN_SOURCE 700
#include <signal.h>
#include <unistd.h>
void handler(int sig)
{
write(2, "stack overflow\n", 15);
_exit(1);
}
unsigned infinite_recursion(unsigned x) {
return infinite_recursion(x)+1;
}
int main()
{
static char stack[SIGSTKSZ];
stack_t ss = {
.ss_size = SIGSTKSZ,
.ss_sp = stack,
};
struct sigaction sa = {
.sa_handler = handler,
.sa_flags = SA_ONSTACK
};
sigaltstack(&ss, 0);
sigfillset(&sa.sa_mask);
sigaction(SIGSEGV, &sa, 0);
infinite_recursion(0);
}
EOF
rlRun "gcc -o sigaltstack sigaltstack.c"
rlPhaseEnd
p=""
uname -m | grep -q ^ppc && p="-P"
p="$p -E 'probe timer.s(900){error(\"probe timeout after 15 minutes\")}'"
export p
rlPhaseStart FAIL 'case-1'
rlRun "stap $p -v -e 'probe syscall.close { println(fd); exit(); }'"
rlPhaseEnd
# After fixing bz1657681, this constraint can be removed
if [[ $(rpm --eval %rhel) -le 7 ]]; then
if arch | grep -vq ppc; then
rlPhaseStart FAIL 'case-2'
# https://bugzilla.redhat.com/show_bug.cgi?id=1657681
rlRun "stap $p -v -e 'probe socket.close { print(protocol); print(family); print(state); print(flags); print(type); exit() }'"
rlPhaseEnd
fi
fi
(
test $_rhelmajor -le 8 && exit
perf_found_none_of "sys_read" "__arm64_sys_read" "do_syscall_64" && exit
test $_rhelmajor -ge 9 && test $_arch = ppc64le -o $_arch = aarch64 && p="$p -p4" # no hits
rlPhaseStart FAIL 'case-3'
rlRun "stap $p -v -e 'probe kernel.function(\"sys_read\").return!, kernel.function(\"__arm64_sys_read\").return!, kernel.function(\"do_syscall_64\").return { println(probefunc()) exit()}'"
rlPhaseEnd
)
rlPhaseStart FAIL 'case-4'
rlRun "stap $p -v -e 'probe syscall.open, syscall.openat { if (\"open\" == execname()) println(argstr); exit() }'"
rlPhaseEnd
rlPhaseStart FAIL 'case-5'
rlRun "stap $p -ve 'probe syscall.sigaltstack { println(name); exit() }' -c './sigaltstack || true'"
rlPhaseEnd
# gcc 8.2.1->8.3.1 change related to systemtap debuginfo regression in rhel-8.1.0, kernel -84 -> -85
# https://bugzilla.redhat.com/show_bug.cgi?id=1709831#c17
# ( grep -F RESULT: /tmp/typescript | sort -u )
rlPhaseStart FAIL 'case-6'
rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.shutdown_client { println(servername) }'"
rlPhaseEnd
rlPhaseStart FAIL 'case-7'
rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.bind_new_program { println(servername) }'"
rlPhaseEnd
rlPhaseStart FAIL 'case-8'
rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.bind_new_program { println(servername, vers) }'"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,15 +0,0 @@
summary: Small tests
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- systemtap-testsuite
- perf
duration: 100m
extra-summary: /tools/systemtap/Regression/small-tests
extra-task: /tools/systemtap/Regression/small-tests
tier: 1

View file

@ -1,215 +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 <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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
. /etc/os-release ||:
PACKAGE="systemtap"
_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 | grep -E '^(kernel|systemtap|perf)' | sort"
rlRun "uname -r"
rlRun "perf --version"
rlLogInfo "DEBUGINFOD_URLS=$DEBUGINFOD_URLS"
rlLogInfo "DEBUGINFOD_TIMEOUT=$DEBUGINFOD_TIMEOUT"
rlPhaseEnd
# bz1162939 ---------------------------------------------------
(
perf_probe_failed "vfs_read" && exit
rlPhaseStart FAIL "test 1 bz1162939"
rlRun "stap -e 'probe vfs.read{println(\"hit\"); exit()}' -c 'head -1 /etc/hosts' | grep -F hit"
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
# broken-tapset-print-ubacktrace ------------------------------
rlPhaseStart FAIL "test 13 broken-tapset-print-ubacktrace"
rlRun "stap -p4 -e 'probe begin { print_ubacktrace() }'"
rlPhaseEnd
# Protected from elision --------------------------------------
rlPhaseStart FAIL "test 14 protected from elision"
rlRun "stap -v -e 'probe nfs.fop.fsync {} probe begin {print(\"Protected from elision\")}' -c true |\
grep -F 'Protected from elision'"
rlPhaseEnd
# bz544207 ----------------------------------------------------
rlPhaseStart FAIL "test 15 bz544207"
extra_opts=""
stap -vp4 -e 'probe nfs.proc.write_setup{ println(how) }' || extra_opts="-P"
rlRun "stap $extra_opts -vp4 -e 'probe nfs.proc.write_setup{ println(how) }'"
rlPhaseEnd
# bz544209 ----------------------------------------------------
rlPhaseStart FAIL "test 16 bz544209"
rlRun "stap -vp2 -e 'probe sunrpc.clnt.create_client.return {}'"
rlPhaseEnd
# bz592830 ----------------------------------------------------
rlPhaseStart FAIL "test 17 bz592830"
rlRun "stap -vp2 -e 'probe signal.check_ignored.return {println(1)}'"
rlPhaseEnd
# caller-does-not-work ----------------------------------------
rlPhaseStart FAIL "test 18 caller-does-not-work"
rlRun "stap -ve 'probe kernel.function(\"vfs_read\") \
{ printf(\"%s\n\", caller()); exit() }' 2>&1 | tee strace.log"
rlPhaseEnd
# missing-rpc-tracepoints -------------------------------------
rlPhaseStart FAIL "test 19 missing-rpc-tracepoints"
rlRun "stap -L 'kernel.trace(\"rpc*\")'"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,15 +0,0 @@
summary: Test for BZ#1566422 (stap ERROR Build-id mismatch with)
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 48h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1566422
extra-summary: /tools/systemtap/Regression/stap-ERROR-Build-id-mismatch-with
extra-task: /tools/systemtap/Regression/stap-ERROR-Build-id-mismatch-with
tier: 1

View file

@ -1,43 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/stap-ERROR-Build-id-mismatch-with
# Description: Test for BZ#1566422 (stap ERROR Build-id mismatch with)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2018 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartTest
if arch | grep -q s390x; then
rlLogWarning "Test not relevant"
else
rlRun "sudo modprobe igb"
rlRun "stap -e 'probe module(\"igb\").function(\"igb_*_module\") { printf(\"%s: %s.\n\", ctime(gettimeofday_s()), ppfunc()); }' -c \"bash -c 'sudo rmmod igb; sudo modprobe igb'\""
fi
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,15 +0,0 @@
summary: Test for BZ#1020207 (stapio possible circular locking dependency)
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 4h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1020207
extra-summary: /tools/systemtap/Regression/stapio-possible-circular-locking-dependency
extra-task: /tools/systemtap/Regression/stapio-possible-circular-locking-dependency
tier: 1

View file

@ -1,74 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/stapio-possible-circular-locking-dependency
# Description: Test for BZ#1020207 (stapio possible circular locking dependency)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# 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
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=\$(mktemp -d)"
rlRun "pushd $TMPDIR"
cat > test5.stap <<EOF
global dummy
probe end { printf("dummy: %d\n", dummy); }
probe kernel.trace("__extent_writepage") { dummy = dummy + 1; }
EOF
cat > reproduce.sh <<EOF
#!/bin/bash
i=0
while [ True ]; do
i=\$((i+1))
echo "Attempt \$i"
echo 3 > /proc/sys/vm/drop_caches
stap test5.stap -c "sleep 2"
if dmesg 2>&1 | grep "possible circular locking dependency detected"; then
dmesg
exit 1
fi
done
exit 0
EOF
rlRun "chmod +x reproduce.sh"
rlPhaseEnd
rlPhaseStartTest
TO=180 # timeout seconds
# when timeout TO is hit, exitcode 124 is returned
rlRun "timeout $TO ./reproduce.sh" 0,124
# if issue doesn't get reproduced within TO, the test will pass
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,15 +0,0 @@
summary: suspicious-RCU-usage
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 48h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1788662
extra-summary: /tools/systemtap/Regression/suspicious-RCU-usage
extra-task: /tools/systemtap/Regression/suspicious-RCU-usage
tier: 1

View file

@ -1,49 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/suspicious-RCU-usage
# Description: suspicious-RCU-usage
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2020 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartTest
dmesg1=$(mktemp)
dmesg2=$(mktemp)
diff=$(mktemp)
dmesg > $dmesg1
rlRun "stap -e 'probe kernel.trace(\"*\"){}' -t -u -v -c '/bin/true'"
sleep 10
dmesg > $dmesg2
rlRun "diff $dmesg1 $dmesg2 |& tee $diff"
# Reproduced on hpe-moonshot-02-c02.hpe1.lab.eng.bos.redhat.com
# using kernel-4.18.0-167.el8.aarch64+debug and systemtap-4.2-1.el8.aarch64.
rlRun "grep -F -i rcu $diff" 1
rm $dmesg{1,2} $diff
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,16 +0,0 @@
summary: Test for BZ#1004059 (syscall_get_arguments() returning wrong value)
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- perf
duration: 30m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1004059
extra-summary: /tools/systemtap/Regression/syscall-get-arguments-returning-wrong-value
extra-task: /tools/systemtap/Regression/syscall-get-arguments-returning-wrong-value
tier: 1

View file

@ -1,76 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/syscall-get-arguments-returning-wrong-value
# Description: Test for BZ#1004059 (syscall_get_arguments() returning wrong value)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# 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
ASMLINKAGE='';
uname -m | grep -E 'i[36]86' && \
ASMLINKAGE='asmlinkage();'
SCRIPT=$( mktemp )
cat > $SCRIPT <<-EOF
probe kernel.function("sys_open") {
$ASMLINKAGE
if (\$filename == pointer_arg(1)) {
exit();
} else {
error("Possible manifestation of rhbz1004059.");
}
}
EOF
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
}
rlJournalStart
rlPhaseStartTest
(
perf_probe_failed "sys_open" && exit
stap -p4 $SCRIPT >&/dev/null && p="" || p='-P'
rlRun "stap $p -v $SCRIPT -c 'cat /dev/null'"
)
rm $SCRIPT
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,15 +0,0 @@
summary: task-cwd-path-results-in-an-in-kernel-memory-leak
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 48h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1412691
extra-summary: /tools/systemtap/Regression/task-cwd-path-results-in-an-in-kernel-memory-leak
extra-task: /tools/systemtap/Regression/task-cwd-path-results-in-an-in-kernel-memory-leak
tier: 1

View file

@ -1,10 +0,0 @@
probe kprocess.exit
{
path=fullpath_struct_path(task_cwd_path(task_current()))
printf("%s\n", path)
}
#probe timer.s(240)
#{
# exit()
#}

View file

@ -1,46 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/task-cwd-path-results-in-an-in-kernel-memory-leak
# Description: task-cwd-path-results-in-an-in-kernel-memory-leak
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2017 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"
rlJournalStart
rlPhaseStartTest
EXTRA=""
arch | grep -F ppc64le && EXTRA='-P'
# We rely on (and check for) units to be kB
rlRun "test \"$( awk '/KernelStack/ {print $3}' /proc/meminfo )\" == \"kB\""
rlRun "STACK1=$(awk '/KernelStack/ {print $2}' /proc/meminfo)"
rlRun "stap $EXTRA -w reproducer.stp -c 'bash ./trigger.sh' -o /dev/null"
rlRun "STACK2=$(awk '/KernelStack/ {print $2}' /proc/meminfo)"
rlRun "test $((STACK2 - 1000)) -le $STACK1"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,7 +0,0 @@
#!/bin/bash
for i in `seq 1 2000`; do
ls / > /dev/null
done

View file

@ -1,15 +0,0 @@
summary: task-exe-file-results-in-an-file-struct-leak
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 48h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1430861
extra-summary: /tools/systemtap/Regression/task-exe-file-results-in-an-file-struct-leak
extra-task: /tools/systemtap/Regression/task-exe-file-results-in-an-file-struct-leak
tier: 1

View file

@ -1,6 +0,0 @@
probe kprocess.exit
{
t=task_current()
path=fullpath_struct_file(t, task_exe_file(t))
printf("%s\n", path)
}

View file

@ -1,5 +0,0 @@
probe kprocess.exit
{
path=fullpath_struct_path(task_cwd_path(task_current()))
printf("%s\n", path)
}

View file

@ -1,45 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/task-exe-file-results-in-an-file-struct-leak
# Description: task-exe-file-results-in-an-file-struct-leak
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2017 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"
rlJournalStart
rlPhaseStartTest
EXTRA=''
arch | grep -F ppc64le && EXTRA="-P"
rlRun "FILE_NR1=$(awk '{print $1}' /proc/sys/fs/file-nr)"
REPRODUCER=reproducer.stp
rlRun "stap -g -w $EXTRA --dump-functions | grep -F task_exe_file || REPRODUCER=reproducer2.stp"
rlRun "stap -w $EXTRA $REPRODUCER -c 'bash ./trigger.sh' -o /dev/null"
rlRun "FILE_NR2=$(awk '{print $1}' /proc/sys/fs/file-nr)"
rlRun "test $((FILE_NR2 - 1000)) -le $FILE_NR1"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,7 +0,0 @@
#!/bin/bash
for i in `seq 1 100000`; do
/bin/true
done

View file

@ -1,17 +0,0 @@
summary: Test for BZ#876848 (utrace taskfinder misses events when main thread)
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- gcc-c++
- kernel-debuginfo
duration: 15m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=876848
extra-summary: /tools/systemtap/Regression/utrace-taskfinder-misses-events
extra-task: /tools/systemtap/Regression/utrace-taskfinder-misses-events
tier: 1

View file

@ -1,35 +0,0 @@
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
int square (int x)
{
return (x * x);
}
void *my_thread(void *arg)
{
int x = 0;
int sqr;
while (true) {
sqr = square(5);
sleep(1);
}
return NULL;
}
int main()
{
pthread_t thread_id;
if (pthread_create(&thread_id, NULL, my_thread, NULL)) {
fprintf(stderr, "Error creating thread\n");
return 1;
}
if (pthread_join(thread_id, NULL)) {
fprintf(stderr, "Error joining thread\n");
return 2;
}
return 0;
}

View file

@ -1,28 +0,0 @@
#! /usr/bin/env stap
probe timer.sec(180)
{
printf("EXITONTIMEOUT\n");
exit()
}
probe process("./pthreadtestcase").function("square")
{
printf("USERSPACEFUNCTIONENTER\n")
printf("=> %s(%s)\n", probefunc(), $$parms)
}
probe process("./pthreadtestcase").function("square").return
{
printf("USERSPACEFUNCTIONLEAVE\n")
printf("<= %s\n", probefunc())
exit()
}
probe process("./pthreadtestcase").statement("*@pthreadtestcase.cpp:7")
{
printf("USERSPACEREACHEDLINE\n")
#printf(" x=%d, sqr=%d\n\n", $x, $sqr)
printf(" x=%d\n\n", $x)
}

View file

@ -1,77 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/utrace-taskfinder-misses-events
# Description: Test for BZ#876848 (utrace taskfinder misses events when main thread)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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
# if this testcase caused kernel crash and reboot, don't try to rerun it
[[ $REBOOTCOUNT -gt 0 ]] && exit 1
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=\$(mktemp -d)"
rlRun "cp pthreadtestcase.cpp pthreadtestcase.stp $TMPDIR"
rlRun "pushd $TMPDIR"
rlPhaseEnd
rlPhaseStart FAIL "Systemtap sanity check"
rlRun "stap --version"
rlRun "stap -v -e 'probe kernel.function(\"vfs_read\"){ exit() }'"
rlPhaseEnd
rlPhaseStart FAIL "Prepare pthreadtestcase, run it"
rlRun "g++ -g -o pthreadtestcase pthreadtestcase.cpp -lpthread"
killall -9 pthreadtestcase &> /dev/null
./pthreadtestcase &
MYPID=$!
sleep 3
rlRun "ps | grep '$MYPID.*pthreadtestcase$'"
rlPhaseEnd
rlPhaseStartTest
rlRun "stap -v pthreadtestcase.stp 2>&1 | tee mylog.txt"
rlRun "grep EXITONTIMEOUT mylog.txt" 1
for token in USERSPACEFUNCTIONENTER \
USERSPACEREACHEDLINE \
USERSPACEFUNCTIONLEAVE
do
rlRun "grep ^$token$ mylog.txt" 0
done
rlPhaseEnd
rlPhaseStart FAIL "Shut pthreadtestcase down"
# pthreadtestcase should still be running
# so killing it should certsinly succeed
rlRun "kill $MYPID"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalEnd

Some files were not shown because too many files have changed in this diff Show more