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
|
||||
product_versions:
|
||||
- fedora-*
|
||||
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
|
||||
- rhel-10
|
||||
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}
|
||||
--- !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.tier0.functional}
|
||||
- !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
|
||||
adjust:
|
||||
- when: distro == fedora
|
||||
discover+:
|
||||
filter: 'tier: 1'
|
||||
environment+:
|
||||
DEBUGINFOD_URLS: https://debuginfod.fedoraproject.org/
|
||||
DEBUGINFOD_TIMEOUT: 300
|
||||
- when: distro == rhel
|
||||
environment+:
|
||||
DEBUGINFOD_URLS: https://debuginfod.usersys.redhat.com/
|
||||
DEBUGINFOD_TIMEOUT: 300
|
||||
discover:
|
||||
how: fmf
|
||||
directory: tests
|
||||
how: fmf
|
||||
url: https://src.fedoraproject.org/tests/systemtap-gating.git
|
||||
ref: main
|
||||
directory: tests
|
||||
prepare:
|
||||
- name: prepare
|
||||
how: shell
|
||||
script: ./plans/prepare.sh
|
||||
- name: prepare
|
||||
how: shell
|
||||
script: ./plans/prepare.sh
|
||||
execute:
|
||||
how: tmt
|
||||
how: tmt
|
||||
|
@ -1,28 +1,9 @@
|
||||
#!/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
|
||||
|
||||
source /etc/os-release
|
||||
|
||||
# Install needed packages
|
||||
if [ "$ID" == "fedora" ]; then
|
||||
stap-prep || __fedora_install_deps
|
||||
fi
|
||||
dnf -y install /usr/bin/stap-prep
|
||||
stap-prep
|
||||
|
||||
# Report installed packages
|
||||
|
@ -121,7 +121,7 @@ m stapdev stapdev
|
||||
Name: systemtap
|
||||
# PRERELEASE
|
||||
Version: 5.1
|
||||
Release: 2%{?release_override}%{?dist}
|
||||
Release: 3%{?release_override}%{?dist}
|
||||
# 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
|
||||
Patch1: RHEL-36201a.patch
|
||||
Patch2: RHEL-36201b.patch
|
||||
Patch3: PR31495.patch
|
||||
|
||||
# Build*
|
||||
BuildRequires: make
|
||||
@ -401,7 +402,7 @@ with the optional dtrace-compatibility preprocessor to process related
|
||||
|
||||
%package testsuite
|
||||
Summary: Instrumentation System Testsuite
|
||||
License: GPL-2.0-or-later AND GPL AND GPL-2.0-only AND GPL-3.0-or-later AND MIT
|
||||
License: GPL-2.0-or-later AND GPL-2.0-only AND GPL-3.0-or-later AND MIT
|
||||
URL: http://sourceware.org/systemtap/
|
||||
Requires: systemtap = %{version}-%{release}
|
||||
Requires: systemtap-sdt-devel = %{version}-%{release}
|
||||
@ -587,6 +588,7 @@ or within a container.
|
||||
%setup -q
|
||||
%patch -P1 -p1
|
||||
%patch -P2 -p1
|
||||
%patch -P3 -p1
|
||||
|
||||
%build
|
||||
|
||||
@ -1314,6 +1316,11 @@ exit 0
|
||||
|
||||
# PRERELEASE
|
||||
%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
|
||||
- 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