Related: RHEL-29529

This commit is contained in:
Martin Cermak 2024-05-17 09:58:51 +02:00
parent 1f738f508c
commit 0ffbb1f0c6
120 changed files with 49 additions and 4239 deletions

29
PR31495.patch Normal file
View 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=""

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,67 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/PR16166
# Description: Test for BZ#1054962 (Backport PR16166 stap -vvv causes SIGSEGV when)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=\$(mktemp -d)"
rlRun "cp towers.c $TMPDIR/"
rlRun "pushd $TMPDIR"
rlRun "gcc -g towers.c -o towers.x"
cat > script.stp <<-EOF
global x
probe perf.hw.cpu_cycles.process("towers.x").counter("a") {}
probe process("towers.x").function("main")
{
# wrong type
x = "b" . @perf("a")
}
EOF
rlRun "which valgrind"
rlRun "valgrind --version"
rlPhaseEnd
rlPhaseStartTest
# following is expected to fail
rlRun "valgrind --log-file=output.txt stap -vvv script.stp" 1
# ... but not to segfault
rlRun "grep SIGSEGV output.txt" 1
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,66 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces
# Description: Tests backtracking in C++ programs
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
. /etc/os-release || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlRun "g++ classes.cpp main.cpp -g -o classes"
rlRun "stap-prep" 0-255
rlPhaseEnd
rlPhaseStartTest
rlRun "stap --ldd backtrackator.stp -c ./classes -o output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicA1[A-Za-z0-9]*/publicA1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicA2[A-Za-z0-9]*/publicA2/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateA1[A-Za-z0-9]*/privateA1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateA2[A-Za-z0-9]*/privateA2/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*recursiveA1[A-Za-z0-9]*/recursiveA1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicB1[A-Za-z0-9]*/publicB1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateB1[A-Za-z0-9]*/privateB1/g' output.out"
rlRun "grep -o -e publicA1 -e publicA2 -e privateA1 -e privateA2 -e recursiveA1 \
-e publicB1 -e privateB1 -e 'Probed function:.*' -e '=*' \
output.out > output.processed"
rlRun "diff output.processed golden.out"
rlPhaseEnd
rlPhaseStartCleanup
rlFileSubmit output.out
rlFileSubmit output.processed
rlFileSubmit golden.out
rlRun "rm -f output.out output.processed"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

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

View File

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

View File

@ -1,52 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-ctors-and-dtors
# Description: Tests probing constructors and destructors
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlRun "g++ classes.cpp -g -o classes"
rlPhaseEnd
rlPhaseStartTest
rlRun "stap -c ./classes tracker.stp -o output.out"
rlAssertNotDiffer golden.out output.out
rlPhaseEnd
rlPhaseStartCleanup
rlFileSubmit "output.out"
rlFileSubmit "golden.out"
rlRun "rm -rf classes output.out"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

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

View File

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

View File

@ -1,56 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-inheritance
# Description: Tests systemtap handling inheritance
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
# if this testcase caused kernel crash and reboot, don't try to rerun it
[[ $REBOOTCOUNT -gt 0 ]] && exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlRun "g++ classes.cpp -o classes -g"
rlRun "./classes > program.out" 0 "Preparing the golden output"
rlPhaseEnd
rlPhaseStartTest
rlRun "stap -c ./classes tracker.stp -o stap.out"
rlAssertNotDiffer program.out stap.out
rlPhaseEnd
rlPhaseStartCleanup
rlFileSubmit program.out
rlFileSubmit stap.out
rlRun "rm -f classes stap.out program.out"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

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

View File

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

View File

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

View File

@ -1,72 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-methods
# Description: Tests C++ methods
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
export LANG=C
rlJournalStart
rlPhaseStartSetup
rlRun "stap-prep" 0-255
rlRun "g++ -O0 classes.cpp -o classes -g"
rlPhaseEnd
rlPhaseStartTest
rlRun "stap $COMPAT -c ./classes tracker.stp -o output.out"
# Stop comparing literally against a golden file,
# do a sanity check instead. The literal golden file check
# sort of regressed between rhel-8.2 and rhel-8.3
# rlRun "diff golden.out output.out"
rlRun "grep ^__ output.out | sort > summary.out"
# The way sort works across test systems may differ
# esp wrt whether capitals go first or not, so let's sort
# the golden_summary.out first using actual defaults
# slash LANG etc...
rlRun "sort golden_summary.out > golden_summary.sort"
# RHEL6: covert hex to dec:
rlRun "sed -i 's/0x0/0/' summary.out"
rlRun "sed -i 's/0x46/70/' summary.out"
# Sanity check
rlRun "diff golden_summary.sort summary.out" || (
rlRun "cat golden_summary.out"
rlRun "cat summary.out"
)
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm -f golden_summary.sort output.out summary.out classes"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,49 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/bz544960-no-cfa_ops-supplied
# Description: What the test does
# Author: Martin Hatina <mhatina@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
_SCRIPTS="readpages.stp tcp.sendmsg.stp bdflush.stp"
rlJournalStart
rlPhaseStartTest
rlLogInfo "Checking whether we might want to try prologue search."
p=""
for s in $_SCRIPTS; do
stap -vp4 $s >& /dev/null || p="-P"
done
for s in $_SCRIPTS; do
rlRun "stap $p -vp4 $s"
done
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

@ -1,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

View File

@ -1,87 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/bz706185-various-build-and-run
# Description: Test containing several build and run testcases.
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2011 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlRun "rpm -qf $(which stap)"
rlRun "uname -r"
rlPhaseEnd
rlPhaseStartTest "Build testcases"
export STAPOUT=`mktemp`
export TRACOUT=`mktemp`
for testcase in *.stp
do
rlLog "Testcase: $testcase"
rlRun "stap -v -p4 $testcase -m testcase --poison-cache &>$STAPOUT" 0 "Building testcase: $testcase"
if [ $? -ne 0 ]
then
rlLog "=== systemtap output start"
while read line
do
rlLog "$line"
done < $STAPOUT
rlLog "=== systemtap output end"
fi
rm -f testcase.ko
rm -f $STAPOUT
done
rlPhaseEnd
rlPhaseStartTest "Run testcases"
for testcase in *.run
do
rlLog "Testcase: $testcase"
COMMAND="`cat $testcase`"
COMMAND="$COMMAND -o $TRACOUT $testcase --poison-cache &>$STAPOUT"
rlLog "Assembled command: [$COMMAND]"
rlRun "$COMMAND" 0 "Running testcase: $testcase"
if [ $? -ne 0 ]
then
rlLog "=== systemtap output start"
while read line; do rlLog "$line"; done < $STAPOUT
rlLog "=== systemtap output end"
rlLog ""
rlLog "=== tracing output start"
while read line; do rlLog "$line"; done < $TRACOUT
rlLog "=== tracing output end"
fi
rm -f $STAPOUT $TRACOUT
done
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm -f $STAPOUT $TRACOUT"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

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

View File

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

View File

@ -1,57 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/dtrace-create-Wall-Wextra-pedantic-clean-code
# Description: dtrace-create-Wall-Wextra-pedantic-clean-code
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=$(mktemp -d)"
rlRun "pushd $TMPDIR"
rlPhaseEnd
rlPhaseStart WARN "Info"
rlRun "which dtrace"
rlPhaseEnd
rlPhaseStartTest
rlRun "printf \"provider xxx { probe xxx(); };\n\" > xxx"
rlRun "dtrace -G -k -s xxx &> dtrace.out"
rlRun "cat dtrace.out"
rlRun "CF=$( awk '/^source:/ {print $2}' dtrace.out )"
rlRun "gcc -c -Wall -Wextra -pedantic $CF 2>&1 | tee gcc.out"
rlRun "grep -i warning gcc.out" 1
rlRun "grep -i error gcc.out" 1
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,79 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/ipv6-tapset-support
# Description: Test for BZ#822503 (ipv6 tapset support)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
. /etc/os-release || exit 1
rlJournalStart
rlPhaseStartSetup
rlLogInfo "Related bugs: Fedora rawhide 6.2.0-0.rc8.57.fc39.x86_64 bz2177192"
rlAssertRpm nfs-utils
rlRun "uname -r"
rlRun "which stap"
rlRun "TMPD=$(mktemp -d --tmpdir=$HOME tmp.XXXXXXX)"
rlRun "mkdir $TMPD/{A,B}"
rlRun "chmod --recursive 0777 $TMPD"
rlRun "STAPLOG=$(mktemp)"
rlServiceStart rpcbind
sleep 5
NFS_SERVICE=nfs
rlIsRHEL '>=8' && NFS_SERVICE=nfs-server
[ $ID == 'fedora' ] && test $VERSION_ID -ge 38 && NFS_SERVICE=nfs-server
rlServiceStart $NFS_SERVICE
sleep 10
rlRun "exportfs -ua"
rlRun "exportfs -i -o 'rw,no_root_squash' *:$TMPD/A"
rlPhaseEnd
rlPhaseStartTest
# ======= work around bz1605574
rlLogInfo "Let's check if we can compile the module."
rlLogInfo "In case we can't, we'll go ahead with prologue searching."
set -x
EXTRA_SWITCHES=''
stap -p4 nfsd.proc.lookup.stp || EXTRA_SWITCHES="-P"
set +x
# =============================
# mount is sufficient to invoke nfsd.proc.lookup
rlRun "stap $EXTRA_SWITCHES -v -c 'mount -t nfs -v [::1]:$TMPD/A $TMPD/B' nfsd.proc.lookup.stp |& tee $STAPLOG"
rlRun "umount $TMPD/B"
rlRun "grep 'Unsupported Address Family' $STAPLOG" 1
rlRun "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

View File

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

View File

@ -1,74 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/irq-vector-tracepoints
# Description: irq-vector-tracepoints
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=$(mktemp -d)"
rlRun "pushd $TMPDIR"
rlRun "mount -t debugfs /dev/null /sys/kernel/debug" 0-255
rlRun "test -d /sys/kernel/debug/tracing/events"
rlPhaseEnd
rlPhaseStart FAIL "Systemtap sanity check"
rlRun "stap --version"
rlRun "stap -v -e 'probe kernel.function(\"vfs_read\"){ exit() }'"
rlPhaseEnd
rlPhaseStart FAIL "Create list of all kernel tracepoints known to stap"
rlRun "stap -l 'kernel.trace(\"*\")' > tracepoints"
rlFileSubmit tracepoints
rlPhaseEnd
rlPhaseStart FAIL "Check irq_vectors"
dir='/sys/kernel/debug/tracing/events/irq_vectors'
if test -d $dir; then
for p in $( find $dir -mindepth 1 -type d | awk -F\/ '{print $NF}' ); do
rlLogInfo "Checking $p"
rlRun "grep -q $p tracepoints"
done
# additional checks
rlRun "stap -vp4 -e 'probe kernel.trace(\"local_timer_entry\") {println(pp())}'"
rlRun "stap -vp4 -e 'probe kernel.trace(\"reschedule_entry\") {println(pp())}'"
else
if arch | 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

View File

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

View File

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

View File

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

View File

@ -1,55 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/pass-4-failure-netfilter-examples
# Description: Test for BZ#1055778 (Pass 4 failure on RHEL7 for examples)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
TESTS=$(mktemp)
rlRun "rpm -qa | grep -F systemtap-testsuite"
rlPhaseEnd
rpm -qa | grep systemtap-testsuite | xargs rpm -ql \
| 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

View File

@ -1,22 +0,0 @@
#!/usr/bin/stap -v
/*
Example usage of the Python systemtap tapset to show a nested view of all
Python function calls (and returns) across the whole system.
Run this using
stap systemtap-example.stp
to instrument all Python processes on the system, or (for example) using
stap systemtap-example.stp -c COMMAND
to instrument a specific program (implemented in Python)
*/
probe python.function.entry
{
if ( filename =~ "random" )
printf("%s => %s in %s:%d\n", thread_indent(1), funcname, filename, lineno);
}
probe python.function.return
{
if ( filename =~ "random" )
printf("%s <= %s in %s:%d\n", thread_indent(-1), funcname, filename, lineno);
}

View File

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

View File

@ -1,86 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/python/Sanity/systemtap
# Description: Systemtap static probes test
# Author: Petr Splichal <psplicha@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2011 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
. /usr/share/beakerlib/beakerlib.sh || exit 1
. /etc/os-release || exit 1
# Packages to be tested
PACKAGES="${PACKAGES:-python3}"
# Other required packages
REQUIRES=${REQUIRES:-}
# Binary name parametrized
PYTHON="${PYTHON:-python3}"
package=$(rpm -qf --queryformat '%{name}\n' $(which $PYTHON))
collection_path=$(which python | sed 's/\/usr\/bin\/python//')
rlJournalStart
rlPhaseStartSetup
# rlAssertRpm --all
rlAssertRpm "systemtap"
rlLogInfo "Running on kernel: $(uname -r)"
rlRun "rpm -qa 'systemtap*'" 0 "Checking systemtap packages"
rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory"
rlRun "cp list.stp top.stp test.py $TmpDir" 0 "Copying scripts"
rlRun "pushd $TmpDir"
# Install needed debuginfo, best effort
rlLogInfo "DEBUGINFOD_URLS=$DEBUGINFOD_URLS"
rlLogInfo "DEBUGINFOD_TIMEOUT=$DEBUGINFOD_TIMEOUT"
rlRun "L=$(stap -p2 -e 'probe python.function.entry {exit()}' | awk -F\" '/process/ {print $2}')" 0-255
rlRun "debuginfo-install -y $L /usr/bin/python\*" 0-255
rlPhaseEnd
rlPhaseStartTest "Verifying ELF file for presence of .probes section"
for lib in ${collection_path}/usr/lib*/libpython*.so.* ; do
rlRun "eu-readelf -x .probes $lib" \
0 "Checking for .probes section within $lib"
done
rlPhaseEnd
# Note that typically you need to be root to run "stap" (or be within
# an appropriate group)
for script in list top; do
# bz2152970 is a known probem
[ "$ID" == "fedora" ] && [ "$script" == "top" ] && continue
rlPhaseStartTest "Test $script"
rlRun "rm -rf ~/.systemtap/cache" 0 "Cleaning cache"
rlRun "stap $script.stp -v -c \"$PYTHON test.py\" > $script" \
0 "Testing with $script.stp"
rlRun "tail -100 $script | col -b" 0 "Inspecting output"
rlRun "grep '/usr/lib.*python.*random.py' '$script'" \
0 "Checking for random in the $script output"
rlPhaseEnd
done
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,45 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/semantic-error-nfs-proc-read_setup
# Description: semantic-error-nfs-proc-read_setup
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartSetup
rlRun "uname -r"
rlRun "rpm -qa | grep ^kernel | sort"
rlRun "rpm -qa | grep systemtap | sort"
rlRun "which stap"
rlPhaseEnd
rlPhaseStartTest
rlRun "stap -v -p 2 nfs.proc.read_setup.stp"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

@ -1,41 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/semantic-errors-bz1062076
# Description: semantic-errors-bz1062076
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartTest
rlLogInfo "Related bugs: Fedora rawhide 6.2.0-0.rc8.57.fc39.x86_64 bz2177196"
rlLogInfo "Check if we might want to try out prologue search"
p=""
stap -vp4 script.stp >& /dev/null || p="-P"
rlRun "stap $p -vp4 script.stp"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

@ -1,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

View File

@ -1,161 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/semantic-errors-bz953776
# Description: semantic-errors-bz953776
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
_rhelmajor=$(rpm --eval '%{rhel}')
_arch=$(arch)
function perf_probe_failed ()
{
probe=$1
perf probe -d $probe ||:
perf probe --add $probe
retval=$?
test $retval -eq 0 && \
rlLogInfo "Running perf probe --add $probe PASSED" || \
rlLogInfo "Running perf probe --add $probe FAILED"
perf probe -d $probe ||:
if test $retval -eq 0; then
return 1
else
return 0
fi
}
function perf_found_none_of ()
{
ret=0
for f in "$@"; do
perf_probe_failed $f || ret=1
done
return $ret
}
rlJournalStart
# CHECK FOR PERF ----------------------------------------------
rlPhaseStart FAIL "CHECK FOR PERF"
rlRun "perf --version"
rlPhaseEnd
rlPhaseStartSetup
rlRun "TMPDIR=$(mktemp -d)"
rlRun "pushd $TMPDIR"
# prepare sigaltstack for case-5
cat > sigaltstack.c <<EOF
#define _XOPEN_SOURCE 700
#include <signal.h>
#include <unistd.h>
void handler(int sig)
{
write(2, "stack overflow\n", 15);
_exit(1);
}
unsigned infinite_recursion(unsigned x) {
return infinite_recursion(x)+1;
}
int main()
{
static char stack[SIGSTKSZ];
stack_t ss = {
.ss_size = SIGSTKSZ,
.ss_sp = stack,
};
struct sigaction sa = {
.sa_handler = handler,
.sa_flags = SA_ONSTACK
};
sigaltstack(&ss, 0);
sigfillset(&sa.sa_mask);
sigaction(SIGSEGV, &sa, 0);
infinite_recursion(0);
}
EOF
rlRun "gcc -o sigaltstack sigaltstack.c"
rlPhaseEnd
p=""
uname -m | grep -q ^ppc && p="-P"
p="$p -E 'probe timer.s(900){error(\"probe timeout after 15 minutes\")}'"
export p
rlPhaseStart FAIL 'case-1'
rlRun "stap $p -v -e 'probe syscall.close { println(fd); exit(); }'"
rlPhaseEnd
# After fixing bz1657681, this constraint can be removed
if [[ $(rpm --eval %rhel) -le 7 ]]; then
if arch | grep -vq ppc; then
rlPhaseStart FAIL 'case-2'
# https://bugzilla.redhat.com/show_bug.cgi?id=1657681
rlRun "stap $p -v -e 'probe socket.close { print(protocol); print(family); print(state); print(flags); print(type); exit() }'"
rlPhaseEnd
fi
fi
(
test $_rhelmajor -le 8 && exit
perf_found_none_of "sys_read" "__arm64_sys_read" "do_syscall_64" && exit
test $_rhelmajor -ge 9 && test $_arch = ppc64le -o $_arch = aarch64 && p="$p -p4" # no hits
rlPhaseStart FAIL 'case-3'
rlRun "stap $p -v -e 'probe kernel.function(\"sys_read\").return!, kernel.function(\"__arm64_sys_read\").return!, kernel.function(\"do_syscall_64\").return { println(probefunc()) exit()}'"
rlPhaseEnd
)
rlPhaseStart FAIL 'case-4'
rlRun "stap $p -v -e 'probe syscall.open, syscall.openat { if (\"open\" == execname()) println(argstr); exit() }'"
rlPhaseEnd
rlPhaseStart FAIL 'case-5'
rlRun "stap $p -ve 'probe syscall.sigaltstack { println(name); exit() }' -c './sigaltstack || true'"
rlPhaseEnd
# gcc 8.2.1->8.3.1 change related to systemtap debuginfo regression in rhel-8.1.0, kernel -84 -> -85
# https://bugzilla.redhat.com/show_bug.cgi?id=1709831#c17
# ( grep -F RESULT: /tmp/typescript | sort -u )
rlPhaseStart FAIL 'case-6'
rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.shutdown_client { println(servername) }'"
rlPhaseEnd
rlPhaseStart FAIL 'case-7'
rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.bind_new_program { println(servername) }'"
rlPhaseEnd
rlPhaseStart FAIL 'case-8'
rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.bind_new_program { println(servername, vers) }'"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

@ -1,215 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/small-tests
# Description: suns small tests
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
. /etc/os-release ||:
PACKAGE="systemtap"
_arch=$(arch)
function perf_probe_failed ()
{
probe=$1
perf probe -d $probe ||:
perf probe --add $probe
retval=$?
test $retval -eq 0 && \
rlLogInfo "Running perf probe --add $probe PASSED" || \
rlLogInfo "Running perf probe --add $probe FAILED"
perf probe -d $probe ||:
if test $retval -eq 0; then
return 1
else
return 0
fi
}
function perf_found_none_of ()
{
ret=0
for f in "$@"; do
perf_probe_failed $f || ret=1
done
return $ret
}
rlJournalStart
# Check the environment ---------------------------------------
rlPhaseStart WARN "Check the environment"
rlRun "rpm -qa | 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

View File

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

View File

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

View File

@ -1,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

View File

@ -1,74 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/stapio-possible-circular-locking-dependency
# Description: Test for BZ#1020207 (stapio possible circular locking dependency)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=\$(mktemp -d)"
rlRun "pushd $TMPDIR"
cat > test5.stap <<EOF
global dummy
probe end { printf("dummy: %d\n", dummy); }
probe kernel.trace("__extent_writepage") { dummy = dummy + 1; }
EOF
cat > reproduce.sh <<EOF
#!/bin/bash
i=0
while [ True ]; do
i=\$((i+1))
echo "Attempt \$i"
echo 3 > /proc/sys/vm/drop_caches
stap test5.stap -c "sleep 2"
if dmesg 2>&1 | grep "possible circular locking dependency detected"; then
dmesg
exit 1
fi
done
exit 0
EOF
rlRun "chmod +x reproduce.sh"
rlPhaseEnd
rlPhaseStartTest
TO=180 # timeout seconds
# when timeout TO is hit, exitcode 124 is returned
rlRun "timeout $TO ./reproduce.sh" 0,124
# if issue doesn't get reproduced within TO, the test will pass
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

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

View File

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

View File

@ -1,76 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/syscall-get-arguments-returning-wrong-value
# Description: Test for BZ#1004059 (syscall_get_arguments() returning wrong value)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
ASMLINKAGE='';
uname -m | 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

View File

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

View File

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

View File

@ -1,46 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/task-cwd-path-results-in-an-in-kernel-memory-leak
# Description: task-cwd-path-results-in-an-in-kernel-memory-leak
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2017 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartTest
EXTRA=""
arch | grep -F ppc64le && EXTRA='-P'
# We rely on (and check for) units to be kB
rlRun "test \"$( awk '/KernelStack/ {print $3}' /proc/meminfo )\" == \"kB\""
rlRun "STACK1=$(awk '/KernelStack/ {print $2}' /proc/meminfo)"
rlRun "stap $EXTRA -w reproducer.stp -c 'bash ./trigger.sh' -o /dev/null"
rlRun "STACK2=$(awk '/KernelStack/ {print $2}' /proc/meminfo)"
rlRun "test $((STACK2 - 1000)) -le $STACK1"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

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

View File

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

View File

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

View File

@ -1,45 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/task-exe-file-results-in-an-file-struct-leak
# Description: task-exe-file-results-in-an-file-struct-leak
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2017 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartTest
EXTRA=''
arch | grep -F ppc64le && EXTRA="-P"
rlRun "FILE_NR1=$(awk '{print $1}' /proc/sys/fs/file-nr)"
REPRODUCER=reproducer.stp
rlRun "stap -g -w $EXTRA --dump-functions | grep -F task_exe_file || REPRODUCER=reproducer2.stp"
rlRun "stap -w $EXTRA $REPRODUCER -c 'bash ./trigger.sh' -o /dev/null"
rlRun "FILE_NR2=$(awk '{print $1}' /proc/sys/fs/file-nr)"
rlRun "test $((FILE_NR2 - 1000)) -le $FILE_NR1"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

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

View File

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

View File

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

View File

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

View File

@ -1,77 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/utrace-taskfinder-misses-events
# Description: Test for BZ#876848 (utrace taskfinder misses events when main thread)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
# if this testcase caused kernel crash and reboot, don't try to rerun it
[[ $REBOOTCOUNT -gt 0 ]] && exit 1
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=\$(mktemp -d)"
rlRun "cp pthreadtestcase.cpp pthreadtestcase.stp $TMPDIR"
rlRun "pushd $TMPDIR"
rlPhaseEnd
rlPhaseStart FAIL "Systemtap sanity check"
rlRun "stap --version"
rlRun "stap -v -e 'probe kernel.function(\"vfs_read\"){ exit() }'"
rlPhaseEnd
rlPhaseStart FAIL "Prepare pthreadtestcase, run it"
rlRun "g++ -g -o pthreadtestcase pthreadtestcase.cpp -lpthread"
killall -9 pthreadtestcase &> /dev/null
./pthreadtestcase &
MYPID=$!
sleep 3
rlRun "ps | grep '$MYPID.*pthreadtestcase$'"
rlPhaseEnd
rlPhaseStartTest
rlRun "stap -v pthreadtestcase.stp 2>&1 | tee mylog.txt"
rlRun "grep EXITONTIMEOUT mylog.txt" 1
for token in USERSPACEFUNCTIONENTER \
USERSPACEREACHEDLINE \
USERSPACEFUNCTIONLEAVE
do
rlRun "grep ^$token$ mylog.txt" 0
done
rlPhaseEnd
rlPhaseStart FAIL "Shut pthreadtestcase down"
# pthreadtestcase should still be running
# so killing it should certsinly succeed
rlRun "kill $MYPID"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalEnd

View File

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