Include downstream/RHEL tests
Find new home for downstream RHEL tests. Upstream them. The set of tests used for fedora gating stays intact: The gating tests are only those having the tier1 tag set in their main.fmf file. The testplan plans/ci.fmf filters the others out from gating. The set of Fedora gating tests stays the same as it was before this change.
This commit is contained in:
parent
1b351ce0ad
commit
8d5d041590
@ -2,6 +2,7 @@ summary: CI Gating Plan
|
||||
discover:
|
||||
how: fmf
|
||||
directory: tests
|
||||
filter: 'tier: 1'
|
||||
prepare:
|
||||
how: install
|
||||
exclude:
|
||||
|
16
tests/Regression/PR16166/main.fmf
Normal file
16
tests/Regression/PR16166/main.fmf
Normal file
@ -0,0 +1,16 @@
|
||||
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
|
67
tests/Regression/PR16166/runtest.sh
Executable file
67
tests/Regression/PR16166/runtest.sh
Executable file
@ -0,0 +1,67 @@
|
||||
#!/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
|
155
tests/Regression/PR16166/towers.c
Normal file
155
tests/Regression/PR16166/towers.c
Normal file
@ -0,0 +1,155 @@
|
||||
# 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 (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;
|
||||
}
|
||||
|
31
tests/Regression/RHEL6Feature-cpp-backtraces/README
Normal file
31
tests/Regression/RHEL6Feature-cpp-backtraces/README
Normal file
@ -0,0 +1,31 @@
|
||||
|
||||
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.
|
@ -0,0 +1,15 @@
|
||||
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(); }
|
43
tests/Regression/RHEL6Feature-cpp-backtraces/classes.cpp
Normal file
43
tests/Regression/RHEL6Feature-cpp-backtraces/classes.cpp
Normal file
@ -0,0 +1,43 @@
|
||||
#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);
|
||||
}
|
16
tests/Regression/RHEL6Feature-cpp-backtraces/classes.hpp
Normal file
16
tests/Regression/RHEL6Feature-cpp-backtraces/classes.hpp
Normal file
@ -0,0 +1,16 @@
|
||||
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);
|
||||
};
|
142
tests/Regression/RHEL6Feature-cpp-backtraces/golden-ppc64-17.out
Normal file
142
tests/Regression/RHEL6Feature-cpp-backtraces/golden-ppc64-17.out
Normal file
@ -0,0 +1,142 @@
|
||||
publicB1
|
||||
privateB1
|
||||
publicA1
|
||||
publicA2
|
||||
privateA1
|
||||
privateA2
|
||||
recursiveA1: 3
|
||||
recursiveA1: 2
|
||||
recursiveA1: 1
|
||||
recursiveA1: 0
|
||||
================================================================================
|
||||
Probed function: [main]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
@ -0,0 +1,76 @@
|
||||
publicB1
|
||||
privateB1
|
||||
publicA1
|
||||
publicA2
|
||||
privateA1
|
||||
privateA2
|
||||
recursiveA1: 3
|
||||
recursiveA1: 2
|
||||
recursiveA1: 1
|
||||
recursiveA1: 0
|
||||
================================================================================
|
||||
Probed function: [main]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
[ADDRESS] [ADDRESS] ADDRESS (inexact)
|
||||
================================================================================
|
||||
Probed function: [publicB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
[ADDRESS] [ADDRESS] ADDRESS (inexact)
|
||||
================================================================================
|
||||
Probed function: [privateB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
[ADDRESS] [ADDRESS] ADDRESS (inexact)
|
||||
================================================================================
|
||||
Probed function: [publicA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
[ADDRESS] [ADDRESS] ADDRESS (inexact)
|
||||
================================================================================
|
||||
Probed function: [publicA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
[ADDRESS] [ADDRESS] ADDRESS (inexact)
|
||||
================================================================================
|
||||
Probed function: [privateA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
[ADDRESS] [ADDRESS] ADDRESS (inexact)
|
||||
================================================================================
|
||||
Probed function: [privateA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
[ADDRESS] [ADDRESS] ADDRESS (inexact)
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
[ADDRESS] [ADDRESS] ADDRESS (inexact)
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
[ADDRESS] [ADDRESS] ADDRESS (inexact)
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
[ADDRESS] [ADDRESS] ADDRESS (inexact)
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
[ADDRESS] [ADDRESS] ADDRESS (inexact)
|
@ -0,0 +1,65 @@
|
||||
publicB1
|
||||
privateB1
|
||||
publicA1
|
||||
publicA2
|
||||
privateA1
|
||||
privateA2
|
||||
recursiveA1: 3
|
||||
recursiveA1: 2
|
||||
recursiveA1: 1
|
||||
recursiveA1: 0
|
||||
================================================================================
|
||||
Probed function: [main]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
@ -0,0 +1,153 @@
|
||||
publicB1
|
||||
privateB1
|
||||
publicA1
|
||||
publicA2
|
||||
privateA1
|
||||
privateA2
|
||||
recursiveA1: 3
|
||||
recursiveA1: 2
|
||||
recursiveA1: 1
|
||||
recursiveA1: 0
|
||||
================================================================================
|
||||
Probed function: [main]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
@ -0,0 +1,142 @@
|
||||
publicB1
|
||||
privateB1
|
||||
publicA1
|
||||
publicA2
|
||||
privateA1
|
||||
privateA2
|
||||
recursiveA1: 3
|
||||
recursiveA1: 2
|
||||
recursiveA1: 1
|
||||
recursiveA1: 0
|
||||
================================================================================
|
||||
Probed function: [main]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
|
@ -0,0 +1,153 @@
|
||||
publicB1
|
||||
privateB1
|
||||
publicA1
|
||||
publicA2
|
||||
privateA1
|
||||
privateA2
|
||||
recursiveA1: 3
|
||||
recursiveA1: 2
|
||||
recursiveA1: 1
|
||||
recursiveA1: 0
|
||||
================================================================================
|
||||
Probed function: [main]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
@ -0,0 +1,153 @@
|
||||
publicB1
|
||||
privateB1
|
||||
publicA1
|
||||
publicA2
|
||||
privateA1
|
||||
privateA2
|
||||
recursiveA1: 3
|
||||
recursiveA1: 2
|
||||
recursiveA1: 1
|
||||
recursiveA1: 0
|
||||
================================================================================
|
||||
Probed function: [main]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
142
tests/Regression/RHEL6Feature-cpp-backtraces/golden.out
Normal file
142
tests/Regression/RHEL6Feature-cpp-backtraces/golden.out
Normal file
@ -0,0 +1,142 @@
|
||||
publicB1
|
||||
privateB1
|
||||
publicA1
|
||||
publicA2
|
||||
privateA1
|
||||
privateA2
|
||||
recursiveA1: 3
|
||||
recursiveA1: 2
|
||||
recursiveA1: 1
|
||||
recursiveA1: 0
|
||||
================================================================================
|
||||
Probed function: [main]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateB1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [publicA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [privateA2]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
||||
================================================================================
|
||||
Probed function: [recursiveA1]
|
||||
|
||||
Backtrace:
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
|
||||
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
|
10
tests/Regression/RHEL6Feature-cpp-backtraces/main.cpp
Normal file
10
tests/Regression/RHEL6Feature-cpp-backtraces/main.cpp
Normal file
@ -0,0 +1,10 @@
|
||||
#include "classes.hpp"
|
||||
|
||||
int main(){
|
||||
A a;
|
||||
B b;
|
||||
|
||||
b.publicB1(a);
|
||||
return 0;
|
||||
}
|
||||
|
14
tests/Regression/RHEL6Feature-cpp-backtraces/main.fmf
Normal file
14
tests/Regression/RHEL6Feature-cpp-backtraces/main.fmf
Normal file
@ -0,0 +1,14 @@
|
||||
summary: Tests backtracking in C++ programs
|
||||
description: ''
|
||||
contact: Petr Muller <pmuller@redhat.com>
|
||||
component:
|
||||
- systemtap
|
||||
test: ./runtest.sh
|
||||
framework: beakerlib
|
||||
recommend:
|
||||
- systemtap
|
||||
- gcc-c++
|
||||
- glibc-debuginfo
|
||||
duration: 10m
|
||||
extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces
|
||||
extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces
|
116
tests/Regression/RHEL6Feature-cpp-backtraces/runtest.sh
Executable file
116
tests/Regression/RHEL6Feature-cpp-backtraces/runtest.sh
Executable file
@ -0,0 +1,116 @@
|
||||
#!/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
|
||||
|
||||
PACKAGE="systemtap"
|
||||
|
||||
inputAs_rlLog(){
|
||||
while read line
|
||||
do
|
||||
rlLog "$line"
|
||||
done
|
||||
}
|
||||
|
||||
compareAndLog(){
|
||||
rlAssertNotDiffer "$1" "$2"
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
rlLog "Difference:"
|
||||
diff -u "$1" "$2" | inputAs_rlLog
|
||||
fi
|
||||
}
|
||||
|
||||
rlJournalStart
|
||||
|
||||
rlPhaseStartSetup
|
||||
rlRun "g++ classes.cpp main.cpp -g -o classes"
|
||||
rlAssertRpm glibc # show NVR
|
||||
rlAssertRpm glibc-debuginfo
|
||||
rlRun "stap-prep" 0-255
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest
|
||||
rlRun "stap --ldd backtrackator.stp -c ./classes > output.out"
|
||||
rlRun "cp output.out unprocessed.out"
|
||||
rlLog "Processing output"
|
||||
rlRun "sed -i -r -e 's/0x[0-9a-f]+/ADDRESS/g' 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 "sed -i -r -e 's!\[((.*\/.*)|(classes))\]!\[PATH\]!g' output.out"
|
||||
# http://stackoverflow.com/questions/13963150/what-does-the-gcc-function-suffix-isra-mean
|
||||
rlIsRHEL '>=' 7 && arch | grep -q ppc && \
|
||||
rlRun "sed -i 's/generic_start_main.isra.0/generic_start_main/' output.out"
|
||||
|
||||
if rlIsRHEL '>=' 9; then
|
||||
[[ "`uname -m`" =~ "ppc64" ]] && \
|
||||
rlRun "cat golden.el9.`arch`.out > golden-ppc64-17.out" || \
|
||||
rlRun "cat golden.el9.`arch`.out > golden.out"
|
||||
fi
|
||||
|
||||
# RHEL-9 s390x runtime/stack-s390.c:63:52: error: ‘ASYNC_SIZE’ undeclared
|
||||
# (PAGE_SIZE << 1) on stap side seems to work it around
|
||||
|
||||
|
||||
if [ "`uname -m`" == "s390x" ] && ( rlIsRHEL 5 || rlIsRHEL 4 )
|
||||
then
|
||||
rlLog "Detected we are running on: s390x && RHEL <= 5"
|
||||
rlLog "Using special expected output"
|
||||
compareAndLog golden-s390x.out output.out
|
||||
elif [ "`uname -m`" == "ppc64" ] && ( rlIsRHEL 5 || rlIsRHEL 4 )
|
||||
then
|
||||
rlLog "Detected we are running on: ppc64 && RHEL <= 5"
|
||||
rlLog "Using special expected output"
|
||||
compareAndLog golden-ppc64.out output.out
|
||||
elif [[ "`uname -m`" =~ "ppc64" ]]
|
||||
then
|
||||
rlLog "Detected we are running on: ppc64"
|
||||
rlLog "Using special expected output"
|
||||
compareAndLog golden-ppc64-17.out output.out
|
||||
else
|
||||
rlLog "Detected we are running on: nothing special"
|
||||
rlLog "Using generic expected output"
|
||||
compareAndLog golden.out output.out
|
||||
fi
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartCleanup
|
||||
rlFileSubmit output.out
|
||||
rlFileSubmit golden.out
|
||||
rlFileSubmit unprocessed.out
|
||||
rlRun "rm -f classes output.out unprocessed.out"
|
||||
rlPhaseEnd
|
||||
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
@ -0,0 +1,39 @@
|
||||
#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
|
||||
}
|
16
tests/Regression/RHEL6Feature-cpp-ctors-and-dtors/golden.out
Normal file
16
tests/Regression/RHEL6Feature-cpp-ctors-and-dtors/golden.out
Normal file
@ -0,0 +1,16 @@
|
||||
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
|
13
tests/Regression/RHEL6Feature-cpp-ctors-and-dtors/main.fmf
Normal file
13
tests/Regression/RHEL6Feature-cpp-ctors-and-dtors/main.fmf
Normal file
@ -0,0 +1,13 @@
|
||||
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
|
52
tests/Regression/RHEL6Feature-cpp-ctors-and-dtors/runtest.sh
Executable file
52
tests/Regression/RHEL6Feature-cpp-ctors-and-dtors/runtest.sh
Executable file
@ -0,0 +1,52 @@
|
||||
#!/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
|
@ -0,0 +1,23 @@
|
||||
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");
|
||||
//}
|
56
tests/Regression/RHEL6Feature-cpp-inheritance/classes.cpp
Normal file
56
tests/Regression/RHEL6Feature-cpp-inheritance/classes.cpp
Normal file
@ -0,0 +1,56 @@
|
||||
#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;
|
||||
}
|
13
tests/Regression/RHEL6Feature-cpp-inheritance/main.fmf
Normal file
13
tests/Regression/RHEL6Feature-cpp-inheritance/main.fmf
Normal file
@ -0,0 +1,13 @@
|
||||
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
|
56
tests/Regression/RHEL6Feature-cpp-inheritance/runtest.sh
Executable file
56
tests/Regression/RHEL6Feature-cpp-inheritance/runtest.sh
Executable file
@ -0,0 +1,56 @@
|
||||
#!/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
|
@ -0,0 +1,6 @@
|
||||
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");}
|
71
tests/Regression/RHEL6Feature-cpp-methods/classes.cpp
Normal file
71
tests/Regression/RHEL6Feature-cpp-methods/classes.cpp
Normal file
@ -0,0 +1,71 @@
|
||||
__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;
|
||||
}
|
70
tests/Regression/RHEL6Feature-cpp-methods/golden.el7.out
Normal file
70
tests/Regression/RHEL6Feature-cpp-methods/golden.el7.out
Normal file
@ -0,0 +1,70 @@
|
||||
StandaloneFunction start: _Z18StandaloneFunctionv
|
||||
StandaloneFunction end: main
|
||||
StandaloneFunction start: _ZN5inner18StandaloneFunctionEv
|
||||
inner::StandaloneFunction start: _ZN5inner18StandaloneFunctionEv
|
||||
StandaloneFunction end: main
|
||||
inner::StandaloneFunction end: main
|
||||
StandaloneFunction start: _ZN9moreinner18StandaloneFunctionEv
|
||||
moreinner::StandaloneFunction start: _ZN9moreinner18StandaloneFunctionEv
|
||||
StandaloneFunction end: main
|
||||
moreinner::StandaloneFunction end: main
|
||||
puMethod start: _ZN6CLASS18puMethodEv
|
||||
prMethod start: _ZN6CLASS18prMethodEv
|
||||
prMethod end: _ZN6CLASS18puMethodEv
|
||||
puMethod end: main
|
||||
stMethod start: _ZN6CLASS18stMethodEv
|
||||
stMethod end: main
|
||||
puMethod start: _ZN5inner6CLASS18puMethodEv
|
||||
inner::puMethod start: _ZN5inner6CLASS18puMethodEv
|
||||
prMethod start: _ZN5inner6CLASS18prMethodEv
|
||||
inner::prMethod start: _ZN5inner6CLASS18prMethodEv
|
||||
prMethod end: _ZN5inner6CLASS18puMethodEv
|
||||
inner::prMethod end: _ZN5inner6CLASS18puMethodEv
|
||||
puMethod end: main
|
||||
inner::puMethod end: main
|
||||
stMethod start: _ZN5inner6CLASS18stMethodEv
|
||||
inner::stMethod start: _ZN5inner6CLASS18stMethodEv
|
||||
stMethod end: main
|
||||
inner::stMethod end: main
|
||||
puMethod start: _ZN9moreinner6CLASS18puMethodEv
|
||||
moreinner::puMethod start: _ZN9moreinner6CLASS18puMethodEv
|
||||
prMethod start: _ZN9moreinner6CLASS18prMethodEv
|
||||
moreinner::prMethod start: _ZN9moreinner6CLASS18prMethodEv
|
||||
prMethod end: _ZN9moreinner6CLASS18puMethodEv
|
||||
moreinner::prMethod end: _ZN9moreinner6CLASS18puMethodEv
|
||||
puMethod end: main
|
||||
moreinner::puMethod end: main
|
||||
stMethod start: _ZN9moreinner6CLASS18stMethodEv
|
||||
moreinner::stMethod start: _ZN9moreinner6CLASS18stMethodEv
|
||||
stMethod end: main
|
||||
moreinner::stMethod end: main
|
||||
puMethod start: _ZN6CLASS18puMethodEv
|
||||
prMethod start: _ZN6CLASS18prMethodEv
|
||||
prMethod end: _ZN6CLASS18puMethodEv
|
||||
puMethod end: main
|
||||
stMethod start: _ZN6CLASS18stMethodEv
|
||||
stMethod end: main
|
||||
puMethod start: _ZN5inner6CLASS18puMethodEv
|
||||
inner::puMethod start: _ZN5inner6CLASS18puMethodEv
|
||||
prMethod start: _ZN5inner6CLASS18prMethodEv
|
||||
inner::prMethod start: _ZN5inner6CLASS18prMethodEv
|
||||
prMethod end: _ZN5inner6CLASS18puMethodEv
|
||||
inner::prMethod end: _ZN5inner6CLASS18puMethodEv
|
||||
puMethod end: main
|
||||
inner::puMethod end: main
|
||||
stMethod start: _ZN5inner6CLASS18stMethodEv
|
||||
inner::stMethod start: _ZN5inner6CLASS18stMethodEv
|
||||
stMethod end: main
|
||||
inner::stMethod end: main
|
||||
puMethod start: _ZN9moreinner6CLASS18puMethodEv
|
||||
moreinner::puMethod start: _ZN9moreinner6CLASS18puMethodEv
|
||||
prMethod start: _ZN9moreinner6CLASS18prMethodEv
|
||||
moreinner::prMethod start: _ZN9moreinner6CLASS18prMethodEv
|
||||
prMethod end: _ZN9moreinner6CLASS18puMethodEv
|
||||
moreinner::prMethod end: _ZN9moreinner6CLASS18puMethodEv
|
||||
puMethod end: main
|
||||
moreinner::puMethod end: main
|
||||
stMethod start: _ZN9moreinner6CLASS18stMethodEv
|
||||
moreinner::stMethod start: _ZN9moreinner6CLASS18stMethodEv
|
||||
stMethod end: main
|
||||
moreinner::stMethod end: main
|
83
tests/Regression/RHEL6Feature-cpp-methods/golden.el8.out
Normal file
83
tests/Regression/RHEL6Feature-cpp-methods/golden.el8.out
Normal file
@ -0,0 +1,83 @@
|
||||
StandaloneFunction start: _Z18StandaloneFunctionv
|
||||
StandaloneFunction end: main
|
||||
StandaloneFunction start: _ZN5inner18StandaloneFunctionEv
|
||||
inner::StandaloneFunction start: _ZN5inner18StandaloneFunctionEv
|
||||
StandaloneFunction end: main
|
||||
inner::StandaloneFunction end: main
|
||||
StandaloneFunction start: _ZN9moreinner18StandaloneFunctionEv
|
||||
moreinner::StandaloneFunction start: _ZN9moreinner18StandaloneFunctionEv
|
||||
StandaloneFunction end: main
|
||||
moreinner::StandaloneFunction end: main
|
||||
puMethod start: _ZN6CLASS18puMethodEv
|
||||
prMethod start: _ZN6CLASS18prMethodEv
|
||||
prMethod end: _ZN6CLASS18puMethodEv
|
||||
puMethod end: main
|
||||
stMethod start: _ZN6CLASS18stMethodEv
|
||||
stMethod end: main
|
||||
puMethod start: _ZN5inner6CLASS18puMethodEv
|
||||
inner::puMethod start: _ZN5inner6CLASS18puMethodEv
|
||||
prMethod start: _ZN5inner6CLASS18prMethodEv
|
||||
inner::prMethod start: _ZN5inner6CLASS18prMethodEv
|
||||
prMethod end: _ZN5inner6CLASS18puMethodEv
|
||||
inner::prMethod end: _ZN5inner6CLASS18puMethodEv
|
||||
puMethod end: main
|
||||
inner::puMethod end: main
|
||||
stMethod start: _ZN5inner6CLASS18stMethodEv
|
||||
inner::stMethod start: _ZN5inner6CLASS18stMethodEv
|
||||
stMethod end: main
|
||||
inner::stMethod end: main
|
||||
puMethod start: _ZN9moreinner6CLASS18puMethodEv
|
||||
moreinner::puMethod start: _ZN9moreinner6CLASS18puMethodEv
|
||||
prMethod start: _ZN9moreinner6CLASS18prMethodEv
|
||||
moreinner::prMethod start: _ZN9moreinner6CLASS18prMethodEv
|
||||
prMethod end: _ZN9moreinner6CLASS18puMethodEv
|
||||
moreinner::prMethod end: _ZN9moreinner6CLASS18puMethodEv
|
||||
puMethod end: main
|
||||
moreinner::puMethod end: main
|
||||
stMethod start: _ZN9moreinner6CLASS18stMethodEv
|
||||
moreinner::stMethod start: _ZN9moreinner6CLASS18stMethodEv
|
||||
stMethod end: main
|
||||
moreinner::stMethod end: main
|
||||
puMethod start: _ZN6CLASS18puMethodEv
|
||||
prMethod start: _ZN6CLASS18prMethodEv
|
||||
prMethod end: _ZN6CLASS18puMethodEv
|
||||
puMethod end: main
|
||||
stMethod start: _ZN6CLASS18stMethodEv
|
||||
stMethod end: main
|
||||
puMethod start: _ZN5inner6CLASS18puMethodEv
|
||||
inner::puMethod start: _ZN5inner6CLASS18puMethodEv
|
||||
prMethod start: _ZN5inner6CLASS18prMethodEv
|
||||
inner::prMethod start: _ZN5inner6CLASS18prMethodEv
|
||||
prMethod end: _ZN5inner6CLASS18puMethodEv
|
||||
inner::prMethod end: _ZN5inner6CLASS18puMethodEv
|
||||
puMethod end: main
|
||||
inner::puMethod end: main
|
||||
stMethod start: _ZN5inner6CLASS18stMethodEv
|
||||
inner::stMethod start: _ZN5inner6CLASS18stMethodEv
|
||||
stMethod end: main
|
||||
inner::stMethod end: main
|
||||
puMethod start: _ZN9moreinner6CLASS18puMethodEv
|
||||
moreinner::puMethod start: _ZN9moreinner6CLASS18puMethodEv
|
||||
prMethod start: _ZN9moreinner6CLASS18prMethodEv
|
||||
moreinner::prMethod start: _ZN9moreinner6CLASS18prMethodEv
|
||||
prMethod end: _ZN9moreinner6CLASS18puMethodEv
|
||||
moreinner::prMethod end: _ZN9moreinner6CLASS18puMethodEv
|
||||
puMethod end: main
|
||||
moreinner::puMethod end: main
|
||||
stMethod start: _ZN9moreinner6CLASS18stMethodEv
|
||||
moreinner::stMethod start: _ZN9moreinner6CLASS18stMethodEv
|
||||
stMethod end: main
|
||||
moreinner::stMethod end: main
|
||||
__StandaloneFunction=0
|
||||
__hitcount=70
|
||||
__inner_StandaloneFunction=0
|
||||
__moreinner_StandaloneFunction=0
|
||||
__stMethod=0
|
||||
__inner_CLASS1_stMethod=0
|
||||
__moreinner_star_stMethod=0
|
||||
__prMethod=0
|
||||
__inner_CLASS1_prMethod=0
|
||||
__moreinner_star_prMethod=0
|
||||
__puMethod=0
|
||||
__inner_CLASS1_puMethod=0
|
||||
__moreinner_star_puMethod=0
|
70
tests/Regression/RHEL6Feature-cpp-methods/golden.out
Normal file
70
tests/Regression/RHEL6Feature-cpp-methods/golden.out
Normal file
@ -0,0 +1,70 @@
|
||||
StandaloneFunction start: StandaloneFunction
|
||||
StandaloneFunction end: StandaloneFunction
|
||||
StandaloneFunction start: StandaloneFunction
|
||||
inner::StandaloneFunction start: inner::StandaloneFunction
|
||||
inner::StandaloneFunction end: inner::StandaloneFunction
|
||||
StandaloneFunction end: StandaloneFunction
|
||||
StandaloneFunction start: StandaloneFunction
|
||||
moreinner::StandaloneFunction start: moreinner::StandaloneFunction
|
||||
moreinner::StandaloneFunction end: moreinner::StandaloneFunction
|
||||
StandaloneFunction end: StandaloneFunction
|
||||
puMethod start: puMethod
|
||||
prMethod start: prMethod
|
||||
prMethod end: prMethod
|
||||
puMethod end: puMethod
|
||||
stMethod start: stMethod
|
||||
stMethod end: stMethod
|
||||
puMethod start: puMethod
|
||||
inner::puMethod start: inner::CLASS1::puMethod
|
||||
prMethod start: prMethod
|
||||
inner::prMethod start: inner::CLASS1::prMethod
|
||||
inner::prMethod end: inner::CLASS1::prMethod
|
||||
prMethod end: prMethod
|
||||
inner::puMethod end: inner::CLASS1::puMethod
|
||||
puMethod end: puMethod
|
||||
stMethod start: stMethod
|
||||
inner::stMethod start: inner::CLASS1::stMethod
|
||||
inner::stMethod end: inner::CLASS1::stMethod
|
||||
stMethod end: stMethod
|
||||
puMethod start: puMethod
|
||||
moreinner::puMethod start: moreinner::CLASS1::puMethod
|
||||
prMethod start: prMethod
|
||||
moreinner::prMethod start: moreinner::CLASS1::prMethod
|
||||
moreinner::prMethod end: moreinner::CLASS1::prMethod
|
||||
prMethod end: prMethod
|
||||
moreinner::puMethod end: moreinner::CLASS1::puMethod
|
||||
puMethod end: puMethod
|
||||
stMethod start: stMethod
|
||||
moreinner::stMethod start: moreinner::CLASS1::stMethod
|
||||
moreinner::stMethod end: moreinner::CLASS1::stMethod
|
||||
stMethod end: stMethod
|
||||
puMethod start: puMethod
|
||||
prMethod start: prMethod
|
||||
prMethod end: prMethod
|
||||
puMethod end: puMethod
|
||||
stMethod start: stMethod
|
||||
stMethod end: stMethod
|
||||
puMethod start: puMethod
|
||||
inner::puMethod start: inner::CLASS1::puMethod
|
||||
prMethod start: prMethod
|
||||
inner::prMethod start: inner::CLASS1::prMethod
|
||||
inner::prMethod end: inner::CLASS1::prMethod
|
||||
prMethod end: prMethod
|
||||
inner::puMethod end: inner::CLASS1::puMethod
|
||||
puMethod end: puMethod
|
||||
stMethod start: stMethod
|
||||
inner::stMethod start: inner::CLASS1::stMethod
|
||||
inner::stMethod end: inner::CLASS1::stMethod
|
||||
stMethod end: stMethod
|
||||
puMethod start: puMethod
|
||||
moreinner::puMethod start: moreinner::CLASS1::puMethod
|
||||
prMethod start: prMethod
|
||||
moreinner::prMethod start: moreinner::CLASS1::prMethod
|
||||
moreinner::prMethod end: moreinner::CLASS1::prMethod
|
||||
prMethod end: prMethod
|
||||
moreinner::puMethod end: moreinner::CLASS1::puMethod
|
||||
puMethod end: puMethod
|
||||
stMethod start: stMethod
|
||||
moreinner::stMethod start: moreinner::CLASS1::stMethod
|
||||
moreinner::stMethod end: moreinner::CLASS1::stMethod
|
||||
stMethod end: stMethod
|
13
tests/Regression/RHEL6Feature-cpp-methods/golden_summary.out
Normal file
13
tests/Regression/RHEL6Feature-cpp-methods/golden_summary.out
Normal file
@ -0,0 +1,13 @@
|
||||
__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
|
13
tests/Regression/RHEL6Feature-cpp-methods/main.fmf
Normal file
13
tests/Regression/RHEL6Feature-cpp-methods/main.fmf
Normal file
@ -0,0 +1,13 @@
|
||||
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
|
72
tests/Regression/RHEL6Feature-cpp-methods/runtest.sh
Executable file
72
tests/Regression/RHEL6Feature-cpp-methods/runtest.sh
Executable file
@ -0,0 +1,72 @@
|
||||
#!/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"
|
||||
|
||||
rlJournalStart
|
||||
|
||||
rlPhaseStartSetup
|
||||
rlRun "stap-prep" 0-255
|
||||
rlRun "g++ -O0 classes.cpp -o classes -g"
|
||||
|
||||
rlIsRHEL 6 && COMPAT='--compatible=1.8'
|
||||
# rlIsRHEL 7 && cp -f golden.el7.out golden.out
|
||||
# rlIsRHEL 8 && cp -f golden.el8.out golden.out
|
||||
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"
|
||||
|
||||
# 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.out summary.out" || (
|
||||
rlRun "cat golden_summary.out"
|
||||
rlRun "cat summary.out"
|
||||
)
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartCleanup
|
||||
rlFileSubmit golden.out
|
||||
rlFileSubmit output.out
|
||||
|
||||
rlRun "rm -f output.out classes"
|
||||
rlPhaseEnd
|
||||
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
162
tests/Regression/RHEL6Feature-cpp-methods/tracker.stp
Normal file
162
tests/Regression/RHEL6Feature-cpp-methods/tracker.stp
Normal file
@ -0,0 +1,162 @@
|
||||
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());
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,14 @@
|
||||
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
|
49
tests/Regression/RHEL7-5-backtraces-no-longer-work-with-systemtap/runtest.sh
Executable file
49
tests/Regression/RHEL7-5-backtraces-no-longer-work-with-systemtap/runtest.sh
Executable file
@ -0,0 +1,49 @@
|
||||
#!/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
|
63
tests/Regression/bz544960-no-cfa_ops-supplied/README
Normal file
63
tests/Regression/bz544960-no-cfa_ops-supplied/README
Normal file
@ -0,0 +1,63 @@
|
||||
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)
|
||||
|
@ -0,0 +1,8 @@
|
||||
probe syscall.bdflush {
|
||||
printf("%s\n", name)
|
||||
printf("%s\n", argstr)
|
||||
}
|
||||
|
||||
probe syscall.bdflush.return {
|
||||
printf("%s\n", name)
|
||||
}
|
14
tests/Regression/bz544960-no-cfa_ops-supplied/main.fmf
Normal file
14
tests/Regression/bz544960-no-cfa_ops-supplied/main.fmf
Normal file
@ -0,0 +1,14 @@
|
||||
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
|
19
tests/Regression/bz544960-no-cfa_ops-supplied/readpages.stp
Normal file
19
tests/Regression/bz544960-no-cfa_ops-supplied/readpages.stp
Normal file
@ -0,0 +1,19 @@
|
||||
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);
|
||||
}
|
48
tests/Regression/bz544960-no-cfa_ops-supplied/runtest.sh
Executable file
48
tests/Regression/bz544960-no-cfa_ops-supplied/runtest.sh
Executable file
@ -0,0 +1,48 @@
|
||||
#!/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
|
@ -0,0 +1,7 @@
|
||||
probe tcp.sendmsg {
|
||||
printf("%d\n", size)
|
||||
}
|
||||
|
||||
probe tcp.sendmsg.return {
|
||||
printf("%d\n", size)
|
||||
}
|
15
tests/Regression/bz706185-various-build-and-run/main.fmf
Normal file
15
tests/Regression/bz706185-various-build-and-run/main.fmf
Normal file
@ -0,0 +1,15 @@
|
||||
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
|
87
tests/Regression/bz706185-various-build-and-run/runtest.sh
Executable file
87
tests/Regression/bz706185-various-build-and-run/runtest.sh
Executable file
@ -0,0 +1,87 @@
|
||||
#!/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
|
@ -0,0 +1 @@
|
||||
stap -v softirq.stp
|
@ -0,0 +1,3 @@
|
||||
probe softirq.entry { println(">>> softirq") }
|
||||
probe softirq.exit { println("<<< softirq")}
|
||||
probe timer.ms(5000) { exit() }
|
@ -0,0 +1,15 @@
|
||||
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
|
57
tests/Regression/dtrace-create-Wall-Wextra-pedantic-clean-code/runtest.sh
Executable file
57
tests/Regression/dtrace-create-Wall-Wextra-pedantic-clean-code/runtest.sh
Executable file
@ -0,0 +1,57 @@
|
||||
#!/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
|
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -xe
|
||||
|
||||
rm -rf ~/.debuginfod_client_cache ~/.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
|
||||
|
||||
|
@ -0,0 +1,14 @@
|
||||
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
|
52
tests/Regression/elfutils-debuginfod-client-not-being-called/runtest.sh
Executable file
52
tests/Regression/elfutils-debuginfod-client-not-being-called/runtest.sh
Executable file
@ -0,0 +1,52 @@
|
||||
#!/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
|
@ -0,0 +1,8 @@
|
||||
probe begin
|
||||
{
|
||||
printf ( "hello trace : printf\n")
|
||||
printk (20,"hello trace : printk")
|
||||
ftrace ( "hello trace : ftrace\n")
|
||||
exit ()
|
||||
}
|
||||
|
@ -0,0 +1,14 @@
|
||||
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
|
47
tests/Regression/ftrace-logging-tapset-not-working-as-expected-in/runtest.sh
Executable file
47
tests/Regression/ftrace-logging-tapset-not-working-as-expected-in/runtest.sh
Executable file
@ -0,0 +1,47 @@
|
||||
#!/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 | fgrep -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
|
16
tests/Regression/ipv6-tapset-support/main.fmf
Normal file
16
tests/Regression/ipv6-tapset-support/main.fmf
Normal file
@ -0,0 +1,16 @@
|
||||
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
|
12
tests/Regression/ipv6-tapset-support/nfsd.proc.lookup.stp
Executable file
12
tests/Regression/ipv6-tapset-support/nfsd.proc.lookup.stp
Executable file
@ -0,0 +1,12 @@
|
||||
#!/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 ();
|
||||
}
|
||||
|
76
tests/Regression/ipv6-tapset-support/runtest.sh
Executable file
76
tests/Regression/ipv6-tapset-support/runtest.sh
Executable file
@ -0,0 +1,76 @@
|
||||
#!/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
|
||||
|
||||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
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
|
||||
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
|
15
tests/Regression/irq-vector-tracepoints/main.fmf
Normal file
15
tests/Regression/irq-vector-tracepoints/main.fmf
Normal file
@ -0,0 +1,15 @@
|
||||
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
|
74
tests/Regression/irq-vector-tracepoints/runtest.sh
Executable file
74
tests/Regression/irq-vector-tracepoints/runtest.sh
Executable file
@ -0,0 +1,74 @@
|
||||
#!/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
|
14
tests/Regression/netdev-receive/main.fmf
Normal file
14
tests/Regression/netdev-receive/main.fmf
Normal file
@ -0,0 +1,14 @@
|
||||
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
|
44
tests/Regression/netdev-receive/runtest.sh
Executable file
44
tests/Regression/netdev-receive/runtest.sh
Executable file
@ -0,0 +1,44 @@
|
||||
#!/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"
|
||||
TMPFILE=$(mktemp)
|
||||
|
||||
rlJournalStart
|
||||
rlPhaseStartTest
|
||||
# Here we rely on that netdev.receive gets hit immediately without us explicitly triggering it.
|
||||
# Not all rhel-7 stap versions have -T already, so we use -E instead.
|
||||
rlRun "stap -o $TMPFILE -ve 'probe netdev.receive{log(\"HIT\") exit()}' -E 'probe timer.s(10) {log(\"TIMEOUT\") exit()}'"
|
||||
rlRun "cat $TMPFILE"
|
||||
rlRun "grep HIT $TMPFILE"
|
||||
rlRun "grep TIMEOUT $TMPFILE" 1
|
||||
rlPhaseEnd
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
16
tests/Regression/pass-4-failure-netfilter-examples/main.fmf
Normal file
16
tests/Regression/pass-4-failure-netfilter-examples/main.fmf
Normal file
@ -0,0 +1,16 @@
|
||||
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
|
55
tests/Regression/pass-4-failure-netfilter-examples/runtest.sh
Executable file
55
tests/Regression/pass-4-failure-netfilter-examples/runtest.sh
Executable file
@ -0,0 +1,55 @@
|
||||
#!/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 | fgrep systemtap-testsuite"
|
||||
rlPhaseEnd
|
||||
|
||||
rpm -qa | grep systemtap-testsuite | xargs rpm -ql \
|
||||
| egrep 'netfilter_drop.stp|netfilter_summary.stp' \
|
||||
| while read line; do
|
||||
rlPhaseStart FAIL "Testing $line"
|
||||
rlRun "stap -p4 $line -v -g TCP 1" && \
|
||||
echo $line >> $TESTS
|
||||
rlPhaseEnd
|
||||
done
|
||||
|
||||
rlPhaseStart FAIL "Check what was tested"
|
||||
rlRun "grep netfilter_drop.stp $TESTS"
|
||||
rlRun "grep netfilter_summary.stp $TESTS"
|
||||
rm -f $TESTS
|
||||
rlPhaseEnd
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
@ -1,10 +1,5 @@
|
||||
summary: Systemtap static probes test
|
||||
description: |
|
||||
This test checks basic functionality of Python's systemtap static
|
||||
probes. It runs list & top systemtap scripts (examples from the
|
||||
python rpm) and then a python script using the "random" module.
|
||||
Finally it checks that the "random" module is correctly listed in
|
||||
the output of both systemtap scripts.
|
||||
description: Systemtap static probes test
|
||||
contact: Petr Splichal <psplicha@redhat.com>
|
||||
component:
|
||||
- python
|
||||
@ -21,3 +16,4 @@ recommend:
|
||||
duration: 15m
|
||||
extra-summary: /CoreOS/python/Sanity/systemtap
|
||||
extra-task: /CoreOS/python/Sanity/systemtap
|
||||
tier: 1
|
||||
|
16
tests/Regression/second-command-not-captured/main.fmf
Normal file
16
tests/Regression/second-command-not-captured/main.fmf
Normal file
@ -0,0 +1,16 @@
|
||||
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
|
@ -0,0 +1,7 @@
|
||||
probe ruby.method.entry, ruby.cmethod.entry {
|
||||
printf("%d -> %s::%s %s:%d\n", tid(), classname, methodname, file, line);
|
||||
}
|
||||
|
||||
probe ruby.method.return, ruby.cmethod.return {
|
||||
printf("%d <- %s::%s %s:%d\n", tid(), classname, methodname, file, line);
|
||||
}
|
42
tests/Regression/second-command-not-captured/runtest.sh
Executable file
42
tests/Regression/second-command-not-captured/runtest.sh
Executable file
@ -0,0 +1,42 @@
|
||||
#!/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 -s 100 -v ./ruby-exercise.stp -c ./test.sh -o stap.log"
|
||||
rlRun "grep 'Array::push' stap.log" ||
|
||||
rlFileSubmit "stap.log"
|
||||
rlPhaseEnd
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
7
tests/Regression/second-command-not-captured/test.sh
Executable file
7
tests/Regression/second-command-not-captured/test.sh
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
ruby -e 'puts "ABC"'
|
||||
ruby -e '[1, 2, 3].push(4)'
|
||||
sleep 10
|
@ -0,0 +1,23 @@
|
||||
summary: selected-parts-of-upstream-testsuite
|
||||
description: ''
|
||||
contact: Martin Cermak <mcermak@redhat.com>
|
||||
component:
|
||||
- systemtap
|
||||
test: ./runtest.sh
|
||||
framework: beakerlib
|
||||
recommend:
|
||||
- systemtap
|
||||
- libstdc++
|
||||
- dejagnu
|
||||
- elfutils-devel
|
||||
- gettext
|
||||
- libgcc
|
||||
- glibc-devel
|
||||
- gcc-c++
|
||||
- libstdc++-devel
|
||||
- dyninst
|
||||
- dyninst-devel
|
||||
- systemtap-testsuite
|
||||
duration: 48h
|
||||
extra-summary: /tools/systemtap/Regression/selected-parts-of-upstream-testsuite
|
||||
extra-task: /tools/systemtap/Regression/selected-parts-of-upstream-testsuite
|
184
tests/Regression/selected-parts-of-upstream-testsuite/runtest.sh
Executable file
184
tests/Regression/selected-parts-of-upstream-testsuite/runtest.sh
Executable file
@ -0,0 +1,184 @@
|
||||
#!/bin/bash
|
||||
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# runtest.sh of /tools/systemtap/Regression/selected-parts-of-upstream-testsuite
|
||||
# Description: selected-parts-of-upstream-testsuite
|
||||
# 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/.
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
# Be tolerant about selinux
|
||||
export AVC_ERROR='+no_avc_check'
|
||||
|
||||
# Include Beaker environment
|
||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||
|
||||
DMESG1=$(mktemp)
|
||||
DMESG2=$(mktemp)
|
||||
|
||||
PACKAGE="systemtap"
|
||||
|
||||
SUBTESTS="\
|
||||
attach_detach.exp \
|
||||
bz1126645.exp \
|
||||
bz1214176.exp \
|
||||
bz1252436.exp \
|
||||
exelib.exp \
|
||||
pr22005.exp \
|
||||
server.exp \
|
||||
systemtap-service.exp \
|
||||
task_dentry_path.exp \
|
||||
task_paths.exp \
|
||||
tracepoints.exp \
|
||||
"
|
||||
|
||||
blacklist_subtest()
|
||||
{
|
||||
token=${1/\//\\/}
|
||||
SUBTESTS=${SUBTESTS/$token/}
|
||||
}
|
||||
|
||||
P4TESTS="\
|
||||
buildok/nfs-all-probes.stp \
|
||||
buildok/nfs-detailed.stp \
|
||||
buildok/nfs-fop.check_flags.stp \
|
||||
buildok/nfs_proc-detailed.stp \
|
||||
buildok/nfsd-all-probes.stp \
|
||||
buildok/nfsd-detailed.stp \
|
||||
systemtap.examples/io/nfs_func_users.stp \
|
||||
systemtap.examples/network/nfsdtop.stp \
|
||||
"
|
||||
|
||||
blacklist_p4()
|
||||
{
|
||||
token=${1/\//\\/}
|
||||
P4TESTS=${P4TESTS/$token/}
|
||||
}
|
||||
|
||||
if [[ $(rpm --eval '%{rhel}') -ge 8 ]]; then
|
||||
# mjw authored that testcase - had been notified
|
||||
arch | fgrep 'x86_64' && blacklist_subtest 'exelib.exp'
|
||||
|
||||
blacklist_p4 'buildok/nfs-fop.check_flags.stp'
|
||||
blacklist_p4 'buildok/nfs_proc-detailed.stp'
|
||||
blacklist_p4 'buildok/nfsd-detailed.stp'
|
||||
# bz1709831
|
||||
blacklist_p4 'buildok/nfs-detailed.stp'
|
||||
arch | fgrep -q ppc64le && blacklist_p4 'buildok/nfs-all-probes.stp'
|
||||
elif [[ $(rpm --eval '%{rhel}') -eq 7 ]]; then
|
||||
# RHEL-ALT
|
||||
if rpm -qi kernel | fgrep -q kernel-alt; then
|
||||
# at_var.exp is expected to fail on Pegas - https://bugzilla.redhat.com/show_bug.cgi?id=1165848#c7
|
||||
blacklist_subtest 'at_var.exp'
|
||||
fi
|
||||
|
||||
# bz1107616, bz1698737
|
||||
blacklist_p4 'buildok/nfsd-detailed.stp'
|
||||
if arch | fgrep -q ppc64le; then
|
||||
blacklist_p4 'buildok/nfs-all-probes.stp'
|
||||
blacklist_p4 'buildok/nfs-detailed.stp'
|
||||
blacklist_p4 'buildok/nfsd-all-probes.stp'
|
||||
fi
|
||||
elif [[ $(rpm --eval '%{rhel}') -le 6 ]]; then
|
||||
true
|
||||
fi
|
||||
|
||||
which stap | fgrep -q toolset && blacklist_subtest 'modules_out_of_tree.exp'
|
||||
|
||||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
TESTSUITERPM="$(rpm --queryformat='%{name}\n' -qf $(which stap) | head -1 | grep -o '.*systemtap')-testsuite"
|
||||
rlLogInfo "$(rpm -q $TESTSUITERPM)"
|
||||
TESTSUITEDIR="$(rpm -ql $TESTSUITERPM | grep -o '.*share/systemtap/testsuite/' | head -1)"
|
||||
rlLogInfo "$TESTSUITEDIR"
|
||||
|
||||
# For devtoolset, compat arch support was dropped for non-x86_64 arches. Ref: bz1493500
|
||||
if echo $TESTSUITEDIR | grep -q toolset && arch | egrep -q '^(ppc64|s390x)$'; then
|
||||
sed -i '/^proc arch_compile_flags/,/^}/d' $TESTSUITEDIR/lib/compile_flags.exp
|
||||
echo 'proc arch_compile_flags {} { return 1 }' >> $TESTSUITEDIR/lib/compile_flags.exp
|
||||
fi
|
||||
|
||||
# Need to suppress warnings so that task_dentry_path.exp can pass
|
||||
# And --skip-badvars to let task_paths.exp pass
|
||||
rlRun "sed -i 's/--rlimit-cpu=850/-w --skip-badvars \0/' $TESTSUITEDIR/lib/systemtap.exp"
|
||||
|
||||
rlServiceStop firewalld
|
||||
rlServiceStop iptables
|
||||
rlServiceStop ip6tables
|
||||
rlServiceStart avahi-daemon
|
||||
rlRun "rpm -qa | grep ^kernel | grep -v `uname -r` | xargs rpm -e" 0-255
|
||||
rlRun "stap-prep" 0,127
|
||||
PKGMGR="yum --skip-broken --nogpgcheck"
|
||||
rpm -q dnf && PKGMGR="dnf --setopt=strict=0 --nogpgcheck"
|
||||
rlRun "$PKGMGR -y install --setopt=multilib_policy=all libstdc++ dejagnu elfutils-devel gettext libgcc glibc-devel gcc-c++ libstdc++-devel dyninst dyninst-devel"
|
||||
rlRun "sysctl -w kernel.panic=1"
|
||||
rlRun "sysctl -w kernel.panic_on_oops=1"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest
|
||||
rlRun "cd $TESTSUITEDIR"
|
||||
rlRun "make clean"
|
||||
rlRun "dmesg > $DMESG1"
|
||||
rlRun "make installcheck RUNTESTFLAGS=\"${RUNTESTFLAGS:-$SUBTESTS}\""
|
||||
rlRun "dmesg > $DMESG2"
|
||||
rlLogInfo "$SUBTESTS"
|
||||
rlDejaSum "systemtap.sum"
|
||||
rlFileSubmit "systemtap.log"
|
||||
rlFileSubmit "systemtap.sum"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStart FAIL "Run selected -p4 tests"
|
||||
for t in $P4TESTS; do
|
||||
rlLogInfo "Trying to compile $t without prologue search ..."
|
||||
ADDSWITCHES=''
|
||||
stap $ADDSWITCHES -w -o /dev/null -p4 $t || ADDSWITCHES='-P'
|
||||
rlRun "stap $ADDSWITCHES -w -p4 $t"
|
||||
done
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStart FAIL "Check for BUG: in dmesg"
|
||||
rlRun "diff $DMESG1 $DMESG2" 0-255
|
||||
rlRun "diff $DMESG1 $DMESG2 | grep 'BUG:'" 1
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStart FAIL "Evaluate test results"
|
||||
TEMPLOG=$(mktemp)
|
||||
rlRun "cp systemtap.sum $TEMPLOG"
|
||||
# BLACKLIST
|
||||
if which stap | grep -q toolset; then
|
||||
rlLogInfo "Ignore boot time probing subtest FAILures per bz1121363#c20 for devtoolset"
|
||||
sed -i '/^FAIL: stap-service::boot probing - install script/d' $TEMPLOG
|
||||
sed -i '/^FAIL: stap-service::boot probing - check script/d' $TEMPLOG
|
||||
fi
|
||||
# check for failures
|
||||
rlRun "grep ^PASS $TEMPLOG" 0 "Assert a/some PASS"
|
||||
rlRun "grep ^FAIL $TEMPLOG" 1 "Assert no FAIL"
|
||||
rm -f $TEMPLOG
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartCleanup
|
||||
rlServiceRestore firewalld
|
||||
rlServiceRestore iptables
|
||||
rlServiceRestore ip6tables
|
||||
rlServiceRestore avahi-daemon
|
||||
rlPhaseEnd
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
14
tests/Regression/semantic-error-nfs-proc-read_setup/main.fmf
Normal file
14
tests/Regression/semantic-error-nfs-proc-read_setup/main.fmf
Normal file
@ -0,0 +1,14 @@
|
||||
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
|
@ -0,0 +1,5 @@
|
||||
probe nfs.proc.read_setup{
|
||||
println("nfs.proc.read_setup server_ip: ", server_ip);
|
||||
println("nfs.proc.read_setup prot: ", prot);
|
||||
}
|
||||
|
45
tests/Regression/semantic-error-nfs-proc-read_setup/runtest.sh
Executable file
45
tests/Regression/semantic-error-nfs-proc-read_setup/runtest.sh
Executable file
@ -0,0 +1,45 @@
|
||||
#!/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
|
14
tests/Regression/semantic-errors-bz1062076/main.fmf
Normal file
14
tests/Regression/semantic-errors-bz1062076/main.fmf
Normal file
@ -0,0 +1,14 @@
|
||||
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
|
40
tests/Regression/semantic-errors-bz1062076/runtest.sh
Executable file
40
tests/Regression/semantic-errors-bz1062076/runtest.sh
Executable file
@ -0,0 +1,40 @@
|
||||
#!/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 "Check if we might want to try out prologue search"
|
||||
p=""
|
||||
stap -vp4 sript.stp >& /dev/null || p="-P"
|
||||
rlRun "stap $p -vp4 script.stp"
|
||||
rlPhaseEnd
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
3
tests/Regression/semantic-errors-bz1062076/script.stp
Normal file
3
tests/Regression/semantic-errors-bz1062076/script.stp
Normal file
@ -0,0 +1,3 @@
|
||||
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 ) }
|
17
tests/Regression/semantic-errors-bz953776/main.fmf
Normal file
17
tests/Regression/semantic-errors-bz953776/main.fmf
Normal file
@ -0,0 +1,17 @@
|
||||
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
|
161
tests/Regression/semantic-errors-bz953776/runtest.sh
Executable file
161
tests/Regression/semantic-errors-bz953776/runtest.sh
Executable file
@ -0,0 +1,161 @@
|
||||
#!/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
|
||||
# ( fgrep RESULT: /tmp/typescript | sort -u )
|
||||
rlPhaseStart FAIL 'case-6'
|
||||
rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.shutdown_client { println(servername) }'"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStart FAIL 'case-7'
|
||||
rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.bind_new_program { println(servername) }'"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStart FAIL 'case-8'
|
||||
rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.bind_new_program { println(servername, vers) }'"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartCleanup
|
||||
rlRun "popd"
|
||||
rlRun "rm -r $TMPDIR"
|
||||
rlPhaseEnd
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
@ -1,4 +1,4 @@
|
||||
summary: suns small tests
|
||||
summary: Small tests
|
||||
description: ''
|
||||
contact: Martin Cermak <mcermak@redhat.com>
|
||||
component:
|
||||
@ -12,3 +12,4 @@ recommend:
|
||||
duration: 10m
|
||||
extra-summary: /tools/systemtap/Regression/small-tests
|
||||
extra-task: /tools/systemtap/Regression/small-tests
|
||||
tier: 1
|
||||
|
@ -179,5 +179,44 @@ rlJournalStart
|
||||
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 |\
|
||||
fgrep '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
|
||||
|
14
tests/Regression/stap-ERROR-Build-id-mismatch-with/main.fmf
Normal file
14
tests/Regression/stap-ERROR-Build-id-mismatch-with/main.fmf
Normal file
@ -0,0 +1,14 @@
|
||||
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
|
43
tests/Regression/stap-ERROR-Build-id-mismatch-with/runtest.sh
Executable file
43
tests/Regression/stap-ERROR-Build-id-mismatch-with/runtest.sh
Executable file
@ -0,0 +1,43 @@
|
||||
#!/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
|
@ -0,0 +1,15 @@
|
||||
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
|
74
tests/Regression/stapio-possible-circular-locking-dependency/runtest.sh
Executable file
74
tests/Regression/stapio-possible-circular-locking-dependency/runtest.sh
Executable file
@ -0,0 +1,74 @@
|
||||
#!/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
|
14
tests/Regression/suspicious-RCU-usage/main.fmf
Normal file
14
tests/Regression/suspicious-RCU-usage/main.fmf
Normal file
@ -0,0 +1,14 @@
|
||||
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
|
49
tests/Regression/suspicious-RCU-usage/runtest.sh
Executable file
49
tests/Regression/suspicious-RCU-usage/runtest.sh
Executable file
@ -0,0 +1,49 @@
|
||||
#!/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 "fgrep -i rcu $diff" 1
|
||||
rm $dmesg{1,2} $diff
|
||||
rlPhaseEnd
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
@ -0,0 +1,15 @@
|
||||
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
|
76
tests/Regression/syscall-get-arguments-returning-wrong-value/runtest.sh
Executable file
76
tests/Regression/syscall-get-arguments-returning-wrong-value/runtest.sh
Executable file
@ -0,0 +1,76 @@
|
||||
#!/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
|
@ -0,0 +1,14 @@
|
||||
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
|
@ -0,0 +1,10 @@
|
||||
probe kprocess.exit
|
||||
{
|
||||
path=fullpath_struct_path(task_cwd_path(task_current()))
|
||||
printf("%s\n", path)
|
||||
}
|
||||
|
||||
#probe timer.s(240)
|
||||
#{
|
||||
# exit()
|
||||
#}
|
@ -0,0 +1,46 @@
|
||||
#!/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 | fgrep 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
|
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
for i in `seq 1 2000`; do
|
||||
ls / > /dev/null
|
||||
done
|
||||
|
||||
|
@ -0,0 +1,14 @@
|
||||
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
|
@ -0,0 +1,6 @@
|
||||
probe kprocess.exit
|
||||
{
|
||||
t=task_current()
|
||||
path=fullpath_struct_file(t, task_exe_file(t))
|
||||
printf("%s\n", path)
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
probe kprocess.exit
|
||||
{
|
||||
path=fullpath_struct_path(task_cwd_path(task_current()))
|
||||
printf("%s\n", path)
|
||||
}
|
45
tests/Regression/task-exe-file-results-in-an-file-struct-leak/runtest.sh
Executable file
45
tests/Regression/task-exe-file-results-in-an-file-struct-leak/runtest.sh
Executable file
@ -0,0 +1,45 @@
|
||||
#!/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 | fgrep ppc64le && EXTRA="-P"
|
||||
rlRun "FILE_NR1=$(awk '{print $1}' /proc/sys/fs/file-nr)"
|
||||
REPRODUCER=reproducer.stp
|
||||
rlRun "stap -g -w $EXTRA --dump-functions | fgrep 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
|
7
tests/Regression/task-exe-file-results-in-an-file-struct-leak/trigger.sh
Executable file
7
tests/Regression/task-exe-file-results-in-an-file-struct-leak/trigger.sh
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
for i in `seq 1 100000`; do
|
||||
/bin/true
|
||||
done
|
||||
|
||||
|
158
tests/Regression/testsuite-upstream-raw/check_BPF.sh
Executable file
158
tests/Regression/testsuite-upstream-raw/check_BPF.sh
Executable file
@ -0,0 +1,158 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Show the testcase list on demand.
|
||||
if [[ "$1" == "TCLIST" ]]; then
|
||||
if [[ "$(arch)" == "s390x" ]]; then
|
||||
# Save the s390x machine time (regardless the rhel major):
|
||||
# Almost all the testcases are failing there, and those, that
|
||||
# do not, are flaky.
|
||||
echo -n "notest.exp"
|
||||
else
|
||||
echo -n "bpf-asm.exp bpf.exp"
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
_LOG=systemtap.check
|
||||
cp systemtap.sum $_LOG
|
||||
|
||||
_cleanup()
|
||||
{
|
||||
rm $_LOG
|
||||
}
|
||||
trap _cleanup EXIT
|
||||
|
||||
set -xe
|
||||
|
||||
EXPECTED_PASSES_TRESHOLD=-1
|
||||
|
||||
if test $(rpm --eval '0%{rhel}') -eq 8; then
|
||||
# systemtap-4.0-7.el8, kernel-4.18.0-64.el8
|
||||
case `arch` in
|
||||
x86_64)
|
||||
EXPECTED_PASSES_TRESHOLD=55
|
||||
sed -i '/FAIL: bigmap1.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: cast_op_tracepoint.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: logging1.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: perf1.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: pr23875_loop.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: pr23875_smash.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: reg_alloc3.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: string3.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: timer1.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: timer2.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: tracepoint1.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: tracepoint1.stp/d' $_LOG || :
|
||||
;;
|
||||
aarch64)
|
||||
EXPECTED_PASSES_TRESHOLD=58
|
||||
sed -i '/FAIL: bigmap1.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: logging1.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: perf1.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: perf2.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: pr23875_loop.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: pr23875_smash.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: reg_alloc3.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: string3.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: timer2.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: tracepoint1.stp/d' $_LOG || :
|
||||
;;
|
||||
ppc64le)
|
||||
EXPECTED_PASSES_TRESHOLD=53
|
||||
sed -i '/FAIL: array.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: array_preinit.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: context_vars1.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: context_vars2.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: context_vars2.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: context_vars3.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: globals2.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: globals3.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: kprobes.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: logging1.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: perf1.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: perf2.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: pr23875_loop.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: pr23875_loop.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: pr23875_smash.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: reg_alloc3.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: string3.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: timer2.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: tracepoint1.stp/d' $_LOG || :
|
||||
;;
|
||||
s390x)
|
||||
# Many testcases fail for s390x, many of them are flaky
|
||||
# Not worth testing at all at this stage at all probably.
|
||||
echo "INFO: UNSUPPORTED RHEL7 ARCHITECTIRE ($(arch))"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "ERROR: UNSUPPORTED RHEL8 ARCHITECTIRE"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
elif test $(rpm --eval '0%{rhel}') -eq 7; then
|
||||
case `arch` in
|
||||
x86_64)
|
||||
# (rhel7) systemtap-3.3-3.el7.x86_64, kernel-3.10.0-993.el7.x86_64
|
||||
if test $(rpm -q --queryformat='%{version}\n' kernel | awk -F. '{print $1}') -eq 3; then
|
||||
EXPECTED_PASSES_TRESHOLD=32
|
||||
sed -i '/FAIL: cast_op_tracepoint.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: perf2.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: reg_alloc3.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: tracepoint1.stp/d' $_LOG || :
|
||||
elif test $(rpm -q --queryformat='%{version}\n' kernel | awk -F. '{print $1}') -eq 4; then
|
||||
# (rhel-alt-7) systemtap-3.3-3.el7.x86_64, kernel-4.14.0-115.el7a.x86_64
|
||||
echo "ERROR: known bug on rhel-alt ('map entry 0: Function not implemented')"
|
||||
echo "<@fche> # CONFIG_BPF_SYSCALL is not set"
|
||||
exit 0
|
||||
else
|
||||
echo "ERROR: UNSUPPORTED RHEL7 KERNEL VERSION"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "INFO: UNSUPPORTED RHEL7 ARCHITECTIRE ($(arch))"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
elif test $(rpm --eval '0%{fedora}') -eq 29; then
|
||||
case `arch` in
|
||||
x86_64)
|
||||
EXPECTED_PASSES_TRESHOLD=33
|
||||
sed -i '/FAIL: array.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: bigmap1.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: cast_op_tracepoint.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: no_end.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: printf.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: reg_alloc3.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: string1.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: timer2.stp/d' $_LOG || :
|
||||
sed -i '/FAIL: tracepoint1.stp/d' $_LOG || :
|
||||
;;
|
||||
*)
|
||||
# No test results for other arches yet
|
||||
true;
|
||||
;;
|
||||
esac
|
||||
else
|
||||
echo "ERROR: UNSUPPORTED RHELMAJOR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
true _v_v_v_v_v_v_v_v_v_v_v_ UNEXPECTED FAILURES: _v_v_v_v_v_v_v_v_v_v_v_v_v_v_
|
||||
fgrep 'FAIL: ' $_LOG || :
|
||||
true -^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-
|
||||
|
||||
|
||||
EXPECTED_PASSES=$(grep -a '^PASS: ' $_LOG | wc -l)
|
||||
UNEXPECTED_FAILURES=$(grep -a '^FAIL: ' $_LOG | wc -l)
|
||||
|
||||
test ${EXPECTED_PASSES_TRESHOLD} -gt 1
|
||||
test 0${EXPECTED_PASSES} -ge 0${EXPECTED_PASSES_TRESHOLD}
|
||||
test 0${UNEXPECTED_FAILURES} -eq 0
|
||||
|
||||
rm $_LOG
|
||||
|
||||
set +xe
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user