Related: RHEL-29529
This commit is contained in:
parent
1f738f508c
commit
0ffbb1f0c6
29
PR31495.patch
Normal file
29
PR31495.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
commit b87891f5aff91b8ebbda8d9218009495848f7747
|
||||||
|
Author: Martin Cermak <mcermak@redhat.com>
|
||||||
|
Date: Thu May 16 16:51:08 2024 +0200
|
||||||
|
|
||||||
|
PR31495: teach stap-prep to work with other RT kernels
|
||||||
|
|
||||||
|
diff --git a/stap-prep b/stap-prep
|
||||||
|
index 8b429f880..2bbb6bc2f 100755
|
||||||
|
--- a/stap-prep
|
||||||
|
+++ b/stap-prep
|
||||||
|
@@ -103,13 +103,16 @@ done
|
||||||
|
# 5.14.0-200.rt14.201.el9 ->
|
||||||
|
# "kernel-rt-debug-5.14.0-200.rt14.201.el9"
|
||||||
|
# OR?! "kernel-rt-5.14.0-200.rt14.201.el9"
|
||||||
|
-if expr "$UNAME" : ".*\.rt.*" >/dev/null;
|
||||||
|
+# OR??!"kernel-rt-5.14.0-447.el9.x86_64+rt"
|
||||||
|
+if expr "$UNAME" : ".*\.rt.*" || expr "$UNAME" : ".*\+rt.*" >/dev/null;
|
||||||
|
then
|
||||||
|
KERNEL=`echo $KERNEL | sed -e s,kernel,kernel-rt,`
|
||||||
|
fi
|
||||||
|
|
||||||
|
KERN_ARCH=`uname -m`
|
||||||
|
-KERN_REV=`echo $UNAME | sed s/.$KERN_ARCH//` # strip arch from uname
|
||||||
|
+# strip arch from uname, for kernels like 5.14.0-447.el9.x86_64+rt or
|
||||||
|
+# 6.9.0-0.rc2.1.el10.x86_64+rt strip the +rt suffix too
|
||||||
|
+KERN_REV=`echo $UNAME | sed s/.$KERN_ARCH// | sed s/\+rt$//`
|
||||||
|
if [ -x /usr/bin/dnf4 ]; then
|
||||||
|
DI="dnf4 debuginfo-install"
|
||||||
|
DI_DEPS=""
|
19
gating.yaml
19
gating.yaml
@ -1,22 +1,7 @@
|
|||||||
--- !Policy
|
--- !Policy
|
||||||
product_versions:
|
product_versions:
|
||||||
- fedora-*
|
- rhel-10
|
||||||
decision_context: bodhi_update_push_stable
|
|
||||||
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:
|
|
||||||
- rhel-8
|
|
||||||
decision_context: osci_compose_gate
|
decision_context: osci_compose_gate
|
||||||
rules:
|
rules:
|
||||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
|
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
||||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.rebuild.validation}
|
|
||||||
--- !Policy
|
|
||||||
product_versions:
|
|
||||||
- rhel-9
|
|
||||||
decision_context: osci_compose_gate
|
|
||||||
rules:
|
|
||||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
|
|
||||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.rebuild.validation}
|
- !PassingTestCaseRule {test_case_name: osci.brew-build.rebuild.validation}
|
||||||
|
25
plans/ci.fmf
25
plans/ci.fmf
@ -1,21 +1,12 @@
|
|||||||
summary: CI Gating Plan
|
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:
|
discover:
|
||||||
how: fmf
|
how: fmf
|
||||||
directory: tests
|
url: https://src.fedoraproject.org/tests/systemtap-gating.git
|
||||||
|
ref: main
|
||||||
|
directory: tests
|
||||||
prepare:
|
prepare:
|
||||||
- name: prepare
|
- name: prepare
|
||||||
how: shell
|
how: shell
|
||||||
script: ./plans/prepare.sh
|
script: ./plans/prepare.sh
|
||||||
execute:
|
execute:
|
||||||
how: tmt
|
how: tmt
|
||||||
|
@ -1,28 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# On Rawhide, the running kernel packages won't probably be avail in
|
|
||||||
# configured repos. Debuginfo isn't a problem, we access that using
|
|
||||||
# the debuginfod.
|
|
||||||
__fedora_install_deps ()
|
|
||||||
{
|
|
||||||
TMPD=$(mktemp -d)
|
|
||||||
pushd $TMPD
|
|
||||||
koji download-build --rpm kernel-`uname -r` --arch `uname -i`
|
|
||||||
koji download-build --rpm kernel-devel-`uname -r` --arch `uname -i`
|
|
||||||
koji download-build --rpm kernel-modules-`uname -r` --arch `uname -i`
|
|
||||||
dnf -y install kernel{,-devel,-modules}-`uname -r`.rpm
|
|
||||||
popd
|
|
||||||
rm -rf $TMPD
|
|
||||||
}
|
|
||||||
|
|
||||||
set -xe
|
set -xe
|
||||||
|
|
||||||
source /etc/os-release
|
|
||||||
|
|
||||||
# Install needed packages
|
# Install needed packages
|
||||||
if [ "$ID" == "fedora" ]; then
|
dnf -y install /usr/bin/stap-prep
|
||||||
stap-prep || __fedora_install_deps
|
|
||||||
fi
|
|
||||||
stap-prep
|
stap-prep
|
||||||
|
|
||||||
# Report installed packages
|
# Report installed packages
|
||||||
|
@ -121,7 +121,7 @@ m stapdev stapdev
|
|||||||
Name: systemtap
|
Name: systemtap
|
||||||
# PRERELEASE
|
# PRERELEASE
|
||||||
Version: 5.1
|
Version: 5.1
|
||||||
Release: 2%{?release_override}%{?dist}
|
Release: 3%{?release_override}%{?dist}
|
||||||
# for version, see also configure.ac
|
# for version, see also configure.ac
|
||||||
|
|
||||||
|
|
||||||
@ -159,6 +159,7 @@ URL: http://sourceware.org/systemtap/
|
|||||||
Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz
|
Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz
|
||||||
Patch1: RHEL-36201a.patch
|
Patch1: RHEL-36201a.patch
|
||||||
Patch2: RHEL-36201b.patch
|
Patch2: RHEL-36201b.patch
|
||||||
|
Patch3: PR31495.patch
|
||||||
|
|
||||||
# Build*
|
# Build*
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
@ -401,7 +402,7 @@ with the optional dtrace-compatibility preprocessor to process related
|
|||||||
|
|
||||||
%package testsuite
|
%package testsuite
|
||||||
Summary: Instrumentation System 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
|
License: GPL-2.0-or-later AND GPL-2.0-only AND GPL-3.0-or-later AND MIT
|
||||||
URL: http://sourceware.org/systemtap/
|
URL: http://sourceware.org/systemtap/
|
||||||
Requires: systemtap = %{version}-%{release}
|
Requires: systemtap = %{version}-%{release}
|
||||||
Requires: systemtap-sdt-devel = %{version}-%{release}
|
Requires: systemtap-sdt-devel = %{version}-%{release}
|
||||||
@ -587,6 +588,7 @@ or within a container.
|
|||||||
%setup -q
|
%setup -q
|
||||||
%patch -P1 -p1
|
%patch -P1 -p1
|
||||||
%patch -P2 -p1
|
%patch -P2 -p1
|
||||||
|
%patch -P3 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -1314,6 +1316,11 @@ exit 0
|
|||||||
|
|
||||||
# PRERELEASE
|
# PRERELEASE
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri May 17 2024 Martin Cermak <mcermak@redhat.com> - 5.1-3
|
||||||
|
- RHEL-29529
|
||||||
|
- RHEL-7318
|
||||||
|
- RHELMISC-3948
|
||||||
|
|
||||||
* Tue May 14 2024 William Cohen <wcohen@redhat.com> - 5.1-2
|
* Tue May 14 2024 William Cohen <wcohen@redhat.com> - 5.1-2
|
||||||
- RHEL-36201
|
- RHEL-36201
|
||||||
|
|
||||||
|
@ -1,17 +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
|
|
||||||
require:
|
|
||||||
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
|
|
@ -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
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
@ -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.
|
|
@ -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(); }
|
|
@ -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);
|
|
||||||
}
|
|
@ -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);
|
|
||||||
};
|
|
@ -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
|
|
@ -1,10 +0,0 @@
|
|||||||
#include "classes.hpp"
|
|
||||||
|
|
||||||
int main(){
|
|
||||||
A a;
|
|
||||||
B b;
|
|
||||||
|
|
||||||
b.publicB1(a);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
||||||
}
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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");
|
|
||||||
//}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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
|
|
@ -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
|
|
@ -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");}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -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
|
|
@ -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
|
|
@ -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)
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
|||||||
probe syscall.bdflush {
|
|
||||||
printf("%s\n", name)
|
|
||||||
printf("%s\n", argstr)
|
|
||||||
}
|
|
||||||
|
|
||||||
probe syscall.bdflush.return {
|
|
||||||
printf("%s\n", name)
|
|
||||||
}
|
|
@ -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
|
|
@ -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!") }
|
|
@ -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
|
|
@ -1,7 +0,0 @@
|
|||||||
probe tcp.sendmsg {
|
|
||||||
printf("%d\n", size)
|
|
||||||
}
|
|
||||||
|
|
||||||
probe tcp.sendmsg.return {
|
|
||||||
printf("%d\n", size)
|
|
||||||
}
|
|
@ -1,16 +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
|
|
||||||
require:
|
|
||||||
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
|
|
@ -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
|
|
@ -1 +0,0 @@
|
|||||||
stap -v softirq.stp
|
|
@ -1,3 +0,0 @@
|
|||||||
probe softirq.entry { println(">>> softirq") }
|
|
||||||
probe softirq.exit { println("<<< softirq")}
|
|
||||||
probe timer.ms(5000) { exit() }
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
||||||
|
|
||||||
|
|
@ -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
|
|
@ -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
|
|
@ -1,8 +0,0 @@
|
|||||||
probe begin
|
|
||||||
{
|
|
||||||
printf ( "hello trace : printf\n")
|
|
||||||
printk (20,"hello trace : printk")
|
|
||||||
ftrace ( "hello trace : ftrace\n")
|
|
||||||
exit ()
|
|
||||||
}
|
|
||||||
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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 ();
|
|
||||||
}
|
|
||||||
|
|
@ -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 "egrep '^\[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
|
|
@ -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
|
|
@ -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 | egrep '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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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 \
|
|
||||||
| egrep '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
|
|
@ -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);
|
|
||||||
}
|
|
@ -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
|
|
@ -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
|
|
@ -1,3 +0,0 @@
|
|||||||
import random, time
|
|
||||||
print(random.random())
|
|
||||||
time.sleep(3)
|
|
@ -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;
|
|
||||||
}
|
|
@ -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
|
|
@ -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);
|
|
||||||
}
|
|
@ -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
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
ruby -e 'puts "ABC"'
|
|
||||||
ruby -e '[1, 2, 3].push(4)'
|
|
||||||
sleep 10
|
|
@ -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
|
|
@ -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);
|
|
||||||
}
|
|
||||||
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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 ) }
|
|
@ -1,18 +0,0 @@
|
|||||||
summary: semantic-errors-bz953776
|
|
||||||
description: ''
|
|
||||||
contact: Martin Cermak <mcermak@redhat.com>
|
|
||||||
component:
|
|
||||||
- systemtap
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
require:
|
|
||||||
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
|
|
@ -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
|
|
@ -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
|
|
@ -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 | egrep '^(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
|
|
@ -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
|
|
@ -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
|
|
@ -1,16 +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
|
|
||||||
require:
|
|
||||||
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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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 | egrep '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
|
|
@ -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
|
|
@ -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()
|
|
||||||
#}
|
|
@ -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
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
for i in `seq 1 2000`; do
|
|
||||||
ls / > /dev/null
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
@ -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
|
|
@ -1,6 +0,0 @@
|
|||||||
probe kprocess.exit
|
|
||||||
{
|
|
||||||
t=task_current()
|
|
||||||
path=fullpath_struct_file(t, task_exe_file(t))
|
|
||||||
printf("%s\n", path)
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
probe kprocess.exit
|
|
||||||
{
|
|
||||||
path=fullpath_struct_path(task_cwd_path(task_current()))
|
|
||||||
printf("%s\n", path)
|
|
||||||
}
|
|
@ -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
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
for i in `seq 1 100000`; do
|
|
||||||
/bin/true
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
@ -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
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
@ -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)
|
|
||||||
}
|
|
||||||
|
|
@ -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
|
|
@ -1,15 +0,0 @@
|
|||||||
summary: wrong-data-returned-by-nfs-commit-done
|
|
||||||
description: ''
|
|
||||||
contact: Martin Cermak <mcermak@redhat.com>
|
|
||||||
component:
|
|
||||||
- systemtap
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- systemtap
|
|
||||||
duration: 2h
|
|
||||||
link:
|
|
||||||
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=920444
|
|
||||||
extra-summary: /tools/systemtap/Regression/wrong-data-returned-by-nfs-commit-done
|
|
||||||
extra-task: /tools/systemtap/Regression/wrong-data-returned-by-nfs-commit-done
|
|
||||||
tier: 1
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user