Related: RHEL-29529
This commit is contained in:
		
							parent
							
								
									1f738f508c
								
							
						
					
					
						commit
						0ffbb1f0c6
					
				
							
								
								
									
										29
									
								
								PR31495.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								PR31495.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | ||||
| commit b87891f5aff91b8ebbda8d9218009495848f7747 | ||||
| Author: Martin Cermak <mcermak@redhat.com> | ||||
| Date:   Thu May 16 16:51:08 2024 +0200 | ||||
| 
 | ||||
|     PR31495: teach stap-prep to work with other RT kernels | ||||
| 
 | ||||
| diff --git a/stap-prep b/stap-prep
 | ||||
| index 8b429f880..2bbb6bc2f 100755
 | ||||
| --- a/stap-prep
 | ||||
| +++ b/stap-prep
 | ||||
| @@ -103,13 +103,16 @@ done
 | ||||
|  # 5.14.0-200.rt14.201.el9 -> | ||||
|  #      "kernel-rt-debug-5.14.0-200.rt14.201.el9" | ||||
|  # OR?! "kernel-rt-5.14.0-200.rt14.201.el9" | ||||
| -if expr "$UNAME" : ".*\.rt.*" >/dev/null;
 | ||||
| +# OR??!"kernel-rt-5.14.0-447.el9.x86_64+rt"
 | ||||
| +if expr "$UNAME" : ".*\.rt.*" || expr "$UNAME" : ".*\+rt.*" >/dev/null;
 | ||||
|  then | ||||
|      KERNEL=`echo $KERNEL | sed -e s,kernel,kernel-rt,` | ||||
|  fi | ||||
|   | ||||
|  KERN_ARCH=`uname -m` | ||||
| -KERN_REV=`echo $UNAME | sed s/.$KERN_ARCH//` # strip arch from uname
 | ||||
| +# strip arch from uname, for kernels like 5.14.0-447.el9.x86_64+rt or
 | ||||
| +# 6.9.0-0.rc2.1.el10.x86_64+rt strip the +rt suffix too
 | ||||
| +KERN_REV=`echo $UNAME | sed s/.$KERN_ARCH// | sed s/\+rt$//`
 | ||||
|  if [ -x /usr/bin/dnf4 ]; then | ||||
|      DI="dnf4 debuginfo-install" | ||||
|      DI_DEPS="" | ||||
							
								
								
									
										19
									
								
								gating.yaml
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								gating.yaml
									
									
									
									
									
								
							| @ -1,22 +1,7 @@ | ||||
| --- !Policy | ||||
| product_versions: | ||||
|   - fedora-* | ||||
| decision_context: bodhi_update_push_stable | ||||
| subject_type: koji_build | ||||
| rules: | ||||
|   - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} | ||||
|   - !PassingTestCaseRule {test_case_name: baseos-qe.koji-build.scratch-build.validation} | ||||
| --- !Policy | ||||
| product_versions: | ||||
|   - rhel-8 | ||||
|   - rhel-10 | ||||
| decision_context: osci_compose_gate | ||||
| rules: | ||||
|   - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} | ||||
|   - !PassingTestCaseRule {test_case_name: osci.brew-build.rebuild.validation} | ||||
| --- !Policy | ||||
| product_versions: | ||||
|   - rhel-9 | ||||
| decision_context: osci_compose_gate | ||||
| rules: | ||||
|   - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} | ||||
|   - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} | ||||
|   - !PassingTestCaseRule {test_case_name: osci.brew-build.rebuild.validation} | ||||
|  | ||||
							
								
								
									
										13
									
								
								plans/ci.fmf
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								plans/ci.fmf
									
									
									
									
									
								
							| @ -1,17 +1,8 @@ | ||||
| summary: CI Gating Plan | ||||
| adjust: | ||||
|   - when: distro == fedora | ||||
|     discover+: | ||||
|       filter: 'tier: 1' | ||||
|     environment+: | ||||
|       DEBUGINFOD_URLS: https://debuginfod.fedoraproject.org/ | ||||
|       DEBUGINFOD_TIMEOUT: 300 | ||||
|   - when: distro == rhel | ||||
|     environment+: | ||||
|       DEBUGINFOD_URLS: https://debuginfod.usersys.redhat.com/ | ||||
|       DEBUGINFOD_TIMEOUT: 300 | ||||
| discover: | ||||
|     how: fmf | ||||
|     url: https://src.fedoraproject.org/tests/systemtap-gating.git | ||||
|     ref: main | ||||
|     directory: tests | ||||
| prepare: | ||||
|     - name: prepare | ||||
|  | ||||
| @ -1,28 +1,9 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| # On Rawhide, the running kernel packages won't probably be avail in | ||||
| # configured repos.  Debuginfo isn't a problem, we access that using | ||||
| # the debuginfod. | ||||
| __fedora_install_deps () | ||||
| { | ||||
|     TMPD=$(mktemp -d) | ||||
|     pushd $TMPD | ||||
|     koji download-build --rpm kernel-`uname -r` --arch `uname -i` | ||||
|     koji download-build --rpm kernel-devel-`uname -r` --arch `uname -i` | ||||
|     koji download-build --rpm kernel-modules-`uname -r` --arch `uname -i` | ||||
|     dnf -y install kernel{,-devel,-modules}-`uname -r`.rpm | ||||
|     popd | ||||
|     rm -rf $TMPD | ||||
| } | ||||
| 
 | ||||
| set -xe | ||||
| 
 | ||||
| source /etc/os-release | ||||
| 
 | ||||
| # Install needed packages | ||||
| if [ "$ID" == "fedora" ]; then | ||||
|     stap-prep || __fedora_install_deps | ||||
| fi | ||||
| dnf -y install /usr/bin/stap-prep | ||||
| stap-prep | ||||
| 
 | ||||
| # Report installed packages | ||||
|  | ||||
| @ -121,7 +121,7 @@ m     stapdev  stapdev | ||||
| Name: systemtap | ||||
| # PRERELEASE | ||||
| Version: 5.1 | ||||
| Release: 2%{?release_override}%{?dist} | ||||
| Release: 3%{?release_override}%{?dist} | ||||
| # for version, see also configure.ac | ||||
| 
 | ||||
| 
 | ||||
| @ -159,6 +159,7 @@ URL: http://sourceware.org/systemtap/ | ||||
| Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz | ||||
| Patch1: RHEL-36201a.patch | ||||
| Patch2: RHEL-36201b.patch | ||||
| Patch3: PR31495.patch | ||||
| 
 | ||||
| # Build* | ||||
| BuildRequires: make | ||||
| @ -401,7 +402,7 @@ with the optional dtrace-compatibility preprocessor to process related | ||||
| 
 | ||||
| %package testsuite | ||||
| Summary: Instrumentation System Testsuite | ||||
| License: GPL-2.0-or-later AND GPL AND GPL-2.0-only AND GPL-3.0-or-later AND MIT | ||||
| License: GPL-2.0-or-later AND GPL-2.0-only AND GPL-3.0-or-later AND MIT | ||||
| URL: http://sourceware.org/systemtap/ | ||||
| Requires: systemtap = %{version}-%{release} | ||||
| Requires: systemtap-sdt-devel = %{version}-%{release} | ||||
| @ -587,6 +588,7 @@ or within a container. | ||||
| %setup -q | ||||
| %patch -P1 -p1 | ||||
| %patch -P2 -p1 | ||||
| %patch -P3 -p1 | ||||
| 
 | ||||
| %build | ||||
| 
 | ||||
| @ -1314,6 +1316,11 @@ exit 0 | ||||
| 
 | ||||
| # PRERELEASE | ||||
| %changelog | ||||
| * Fri May 17 2024 Martin Cermak <mcermak@redhat.com> - 5.1-3 | ||||
| - RHEL-29529 | ||||
| - RHEL-7318 | ||||
| - RHELMISC-3948 | ||||
| 
 | ||||
| * Tue May 14 2024 William Cohen <wcohen@redhat.com> - 5.1-2 | ||||
| - RHEL-36201 | ||||
| 
 | ||||
|  | ||||
| @ -1,17 +0,0 @@ | ||||
| summary: Test for BZ#1054962 (Backport PR16166 stap -vvv causes SIGSEGV when) | ||||
| description: Backport PR16166 | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| require: | ||||
| recommend: | ||||
|   - valgrind | ||||
|   - systemtap | ||||
| duration: 15m | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1054962 | ||||
| extra-summary: /tools/systemtap/Regression/PR16166 | ||||
| extra-task: /tools/systemtap/Regression/PR16166 | ||||
| tier: 1 | ||||
| @ -1,67 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/PR16166 | ||||
| #   Description: Test for BZ#1054962 (Backport PR16166 stap -vvv causes SIGSEGV when) | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2014 Red Hat, Inc. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartSetup | ||||
|         rlRun "TMPDIR=\$(mktemp -d)" | ||||
|         rlRun "cp towers.c $TMPDIR/" | ||||
|         rlRun "pushd $TMPDIR" | ||||
| 
 | ||||
|         rlRun "gcc -g towers.c -o towers.x" | ||||
| 
 | ||||
|         cat > script.stp <<-EOF | ||||
| global x | ||||
| 
 | ||||
| probe perf.hw.cpu_cycles.process("towers.x").counter("a") {}  | ||||
| 
 | ||||
| probe process("towers.x").function("main") | ||||
| { | ||||
|    # wrong type | ||||
|    x = "b" . @perf("a") | ||||
| } | ||||
| EOF | ||||
|         rlRun "which valgrind" | ||||
|         rlRun "valgrind --version" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartTest | ||||
|         # following is expected to fail | ||||
|         rlRun "valgrind --log-file=output.txt stap -vvv script.stp" 1 | ||||
|         # ... but not to segfault | ||||
|         rlRun "grep SIGSEGV output.txt" 1 | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartCleanup | ||||
|         rlRun "popd" | ||||
|         rlRun "rm -r $TMPDIR" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,155 +0,0 @@ | ||||
| #   include <stdio.h> | ||||
| #   include <stdlib.h> | ||||
| 
 | ||||
| #define  towersbase 	 2.39 | ||||
| 
 | ||||
| /* Towers */ | ||||
| #define maxcells 	18 | ||||
| #define stackrange	3 | ||||
| #define true		1 | ||||
| #define false		0 | ||||
| 
 | ||||
| struct element | ||||
| { | ||||
|   int discsize; | ||||
|   int next; | ||||
| }; | ||||
| 
 | ||||
| /* Towers */ | ||||
| int stack[stackrange + 1]; | ||||
| struct element cellspace[maxcells + 1]; | ||||
| int freelist, movesdone; | ||||
| 
 | ||||
| /*  Program to Solve the Towers of Hanoi */ | ||||
| 
 | ||||
| void | ||||
| error (emsg) | ||||
|      char *emsg; | ||||
| { | ||||
|   printf ("Error in Towers: %s\n", emsg); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| makenull (int s) | ||||
| { | ||||
|   stack[s] = 0; | ||||
| } | ||||
| 
 | ||||
| int | ||||
| get_element () | ||||
| { | ||||
|   int temp; | ||||
|   if (freelist > 0) | ||||
|     { | ||||
|       temp = freelist; | ||||
|       freelist = cellspace[freelist].next; | ||||
|     } | ||||
|   else | ||||
|     error ("out of space   "); | ||||
|   return (temp); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| push (i, s) | ||||
|      int i, s; | ||||
| { | ||||
|   int errorfound, localel; | ||||
|   errorfound = false; | ||||
|   if (stack[s] > 0) | ||||
|     if (cellspace[stack[s]].discsize <= i) | ||||
|       { | ||||
| 	errorfound = true; | ||||
| 	error ("disc size error"); | ||||
|       }; | ||||
|   if (!errorfound) | ||||
|     { | ||||
|       localel = get_element (); | ||||
|       cellspace[localel].next = stack[s]; | ||||
|       stack[s] = localel; | ||||
|       cellspace[localel].discsize = i; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void | ||||
| init (s, n) | ||||
|      int s, n; | ||||
| { | ||||
|   int discctr; | ||||
|   makenull (s); | ||||
|   for (discctr = n; discctr >= 1; discctr--) | ||||
|     push (discctr, s); | ||||
| } | ||||
| 
 | ||||
| int | ||||
| pop (s) | ||||
|      int s; | ||||
| { | ||||
|   int temp, temp1; | ||||
|   if (stack[s] > 0) | ||||
|     { | ||||
|       temp1 = cellspace[stack[s]].discsize; | ||||
|       temp = cellspace[stack[s]].next; | ||||
|       cellspace[stack[s]].next = freelist; | ||||
|       freelist = stack[s]; | ||||
|       stack[s] = temp; | ||||
|       return (temp1); | ||||
|     } | ||||
|   else | ||||
|     error ("nothing to pop "); | ||||
|   return 0; | ||||
| } | ||||
| 
 | ||||
| void | ||||
| move (s1, s2) | ||||
|      int s1, s2; | ||||
| { | ||||
|   push (pop (s1), s2); | ||||
|   movesdone = movesdone + 1; | ||||
| } | ||||
| 
 | ||||
| void | ||||
| tower (i, j, k) | ||||
|      int i, j, k; | ||||
| { | ||||
|   int other; | ||||
|   if (k == 1) | ||||
|     move (i, j); | ||||
|   else | ||||
|     { | ||||
|       other = 6 - i - j; | ||||
|       tower (i, other, k - 1); | ||||
|       move (i, j); | ||||
|       tower (other, j, k - 1); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| void | ||||
| towers () | ||||
| { | ||||
|   int i; | ||||
|   for (i = 1; i <= maxcells; i++) | ||||
|     cellspace[i].next = i - 1; | ||||
|   freelist = maxcells; | ||||
|   init (1, 14); | ||||
|   makenull (2); | ||||
|   makenull (3); | ||||
|   movesdone = 0; | ||||
|   tower (1, 2, 14); | ||||
|   if (movesdone != 16383) | ||||
|     printf (" error in Towers.\n"); | ||||
| } | ||||
| 
 | ||||
| #ifndef LOOP | ||||
| #define LOOP 500 | ||||
| #endif | ||||
| 
 | ||||
| int | ||||
| main () | ||||
| { | ||||
|   int i; | ||||
|   for (i= 0; i < LOOP; i++) | ||||
|     towers(); | ||||
|   return 0; | ||||
| } | ||||
| 
 | ||||
| @ -1,31 +0,0 @@ | ||||
| 
 | ||||
| With 5.18.0-0.rc5.20220504git107c948d1d3e61d.42.fc37.x86_64 we have | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ---------------------8<-------------------------------------------------------- | ||||
| :: [ 08:26:39 ] :: [  BEGIN   ] :: Running 'stap --skip-badvars --ldd backtrackator.stp -c ./classes > output.out' | ||||
| In file included from /usr/share/systemtap/runtime/linux/../regs.c:20, | ||||
|                  from /usr/share/systemtap/runtime/linux/runtime.h:270, | ||||
|                  from /usr/share/systemtap/runtime/runtime.h:26, | ||||
|                  from /tmp/stap7hYYpn/stap_9beffd9064cc2c18ddd2daf7f47a7e44_5966_src.c:21: | ||||
| /usr/share/systemtap/runtime/stack.c: In function ‘_stp_stack_unwind_one_kernel’: | ||||
| /usr/share/systemtap/runtime/linux/../linux/regs.c:23:32: error: ‘struct kretprobe_instance’ has no member named ‘ret_addr’ | ||||
|    23 | #define _stp_ret_addr_r(ri) (ri->ret_addr) | ||||
|       |                                ^~ | ||||
| /usr/share/systemtap/runtime/stack.c:358:47: note: in expansion of macro ‘_stp_ret_addr_r’ | ||||
|   358 |                         return (unsigned long)_stp_ret_addr_r(c->ips.krp.pi); | ||||
|       |                                               ^~~~~~~~~~~~~~~ | ||||
| make[1]: *** [scripts/Makefile.build:288: /tmp/stap7hYYpn/stap_9beffd9064cc2c18ddd2daf7f47a7e44_5966_src.o] Error 1 | ||||
| make[1]: *** Waiting for unfinished jobs.... | ||||
| make: *** [Makefile:1844: /tmp/stap7hYYpn] Error 2 | ||||
| WARNING: kbuild exited with status: 2 | ||||
| Pass 4: compilation failed.  [man error::pass4] | ||||
| :: [ 08:26:59 ] :: [   FAIL   ] :: Command 'stap --skip-badvars --ldd backtrackator.stp -c ./classes > output.out' (Expected 0, got 1) | ||||
| ---------------------8<-------------------------------------------------------- | ||||
| 
 | ||||
| 
 | ||||
| Related to CONFIG_KRETPROBE_ON_RETHOOK https://elixir.bootlin.com/linux/v5.18-rc5/source/include/linux/kprobes.h#L163 | ||||
| 
 | ||||
| 
 | ||||
| Needs fixing on the stap side. | ||||
| @ -1,15 +0,0 @@ | ||||
| function mypr:long(){ | ||||
|   printf("================================================================================\n"); | ||||
|   printf("Probed function: [%s]\n\n", probefunc()); | ||||
|   printf ("Backtrace:\n"); | ||||
| 
 | ||||
|   print_ubacktrace(); | ||||
|   return 0; | ||||
| } | ||||
|    | ||||
| 
 | ||||
| 
 | ||||
| probe process("classes").function("public*") { mypr(); } | ||||
| probe process("classes").function("private*") { mypr(); } | ||||
| probe process("classes").function("recursive*") { mypr(); } | ||||
| probe process("classes").function("main*") { mypr(); } | ||||
| @ -1,43 +0,0 @@ | ||||
| #include "classes.hpp" | ||||
| #include <iostream> | ||||
| 
 | ||||
| void A::privateA1(){ | ||||
|   std::cout << "privateA1" << std::endl; | ||||
|   this->privateA2(); | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| void A::privateA2(){ | ||||
|   std::cout << "privateA2" << std::endl; | ||||
|   this->recursiveA1(3); | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| void A::recursiveA1(int count){ | ||||
|   std::cout << "recursiveA1: " << count << std::endl; | ||||
|   if (count == 0) | ||||
|     return; | ||||
|   this->recursiveA1(count-1); | ||||
|   return; | ||||
| } | ||||
| 
 | ||||
| void A::publicA1(){ | ||||
|   std::cout << "publicA1" << std::endl; | ||||
|   this->publicA2(); | ||||
| } | ||||
| 
 | ||||
| void A::publicA2(){ | ||||
|   std::cout << "publicA2" << std::endl; | ||||
|   this->privateA1(); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| void B::privateB1(A a){ | ||||
|   std::cout << "privateB1" << std::endl; | ||||
|   a.publicA1(); | ||||
| } | ||||
| 
 | ||||
| void B::publicB1(A a){ | ||||
|   std::cout << "publicB1" << std::endl; | ||||
|   this->privateB1(a); | ||||
| } | ||||
| @ -1,16 +0,0 @@ | ||||
| class A{ | ||||
|   private: | ||||
|     void privateA1(); | ||||
|     void privateA2(); | ||||
|     void recursiveA1(int); | ||||
|   public: | ||||
|     void publicA1(); | ||||
|     void publicA2(); | ||||
| }; | ||||
| 
 | ||||
| class B{ | ||||
|   private: | ||||
|     void privateB1(A); | ||||
|   public: | ||||
|     void publicB1(A); | ||||
| }; | ||||
| @ -1,77 +0,0 @@ | ||||
| ================================================================================ | ||||
| Probed function: [main] | ||||
| ================================================================================ | ||||
| Probed function: [publicB1] | ||||
| publicB1 | ||||
| ================================================================================ | ||||
| Probed function: [privateB1] | ||||
| privateB1 | ||||
| publicB1 | ||||
| ================================================================================ | ||||
| Probed function: [publicA1] | ||||
| publicA1 | ||||
| privateB1 | ||||
| publicB1 | ||||
| ================================================================================ | ||||
| Probed function: [publicA2] | ||||
| publicA2 | ||||
| publicA1 | ||||
| privateB1 | ||||
| publicB1 | ||||
| ================================================================================ | ||||
| Probed function: [privateA1] | ||||
| privateA1 | ||||
| publicA2 | ||||
| publicA1 | ||||
| privateB1 | ||||
| publicB1 | ||||
| ================================================================================ | ||||
| Probed function: [privateA2] | ||||
| privateA2 | ||||
| privateA1 | ||||
| publicA2 | ||||
| publicA1 | ||||
| privateB1 | ||||
| publicB1 | ||||
| ================================================================================ | ||||
| Probed function: [recursiveA1] | ||||
| recursiveA1 | ||||
| privateA2 | ||||
| privateA1 | ||||
| publicA2 | ||||
| publicA1 | ||||
| privateB1 | ||||
| publicB1 | ||||
| ================================================================================ | ||||
| Probed function: [recursiveA1] | ||||
| recursiveA1 | ||||
| recursiveA1 | ||||
| privateA2 | ||||
| privateA1 | ||||
| publicA2 | ||||
| publicA1 | ||||
| privateB1 | ||||
| publicB1 | ||||
| ================================================================================ | ||||
| Probed function: [recursiveA1] | ||||
| recursiveA1 | ||||
| recursiveA1 | ||||
| recursiveA1 | ||||
| privateA2 | ||||
| privateA1 | ||||
| publicA2 | ||||
| publicA1 | ||||
| privateB1 | ||||
| publicB1 | ||||
| ================================================================================ | ||||
| Probed function: [recursiveA1] | ||||
| recursiveA1 | ||||
| recursiveA1 | ||||
| recursiveA1 | ||||
| recursiveA1 | ||||
| privateA2 | ||||
| privateA1 | ||||
| publicA2 | ||||
| publicA1 | ||||
| privateB1 | ||||
| publicB1 | ||||
| @ -1,10 +0,0 @@ | ||||
| #include "classes.hpp" | ||||
| 
 | ||||
| int main(){ | ||||
|   A a; | ||||
|   B b; | ||||
| 
 | ||||
|   b.publicB1(a); | ||||
|   return 0; | ||||
| } | ||||
| 
 | ||||
| @ -1,14 +0,0 @@ | ||||
| summary: Tests backtracking in C++ programs | ||||
| description: '' | ||||
| contact: Petr Muller <pmuller@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
|   - gcc-c++ | ||||
| duration: 10m | ||||
| extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces | ||||
| extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces | ||||
| tier: 1 | ||||
| @ -1,66 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces | ||||
| #   Description: Tests backtracking in C++ programs | ||||
| #   Author: Petr Muller <pmuller@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2010 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include rhts environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| . /etc/os-release || exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| rlJournalStart | ||||
| 
 | ||||
| rlPhaseStartSetup | ||||
|   rlRun "g++ classes.cpp main.cpp -g -o classes" | ||||
|   rlRun "stap-prep" 0-255 | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlPhaseStartTest | ||||
|   rlRun "stap --ldd backtrackator.stp -c ./classes -o output.out" | ||||
|   rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicA1[A-Za-z0-9]*/publicA1/g' output.out" | ||||
|   rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicA2[A-Za-z0-9]*/publicA2/g' output.out" | ||||
|   rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateA1[A-Za-z0-9]*/privateA1/g' output.out" | ||||
|   rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateA2[A-Za-z0-9]*/privateA2/g' output.out" | ||||
|   rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*recursiveA1[A-Za-z0-9]*/recursiveA1/g' output.out" | ||||
|   rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicB1[A-Za-z0-9]*/publicB1/g' output.out" | ||||
|   rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateB1[A-Za-z0-9]*/privateB1/g' output.out" | ||||
|   rlRun "grep -o -e publicA1 -e publicA2 -e privateA1 -e privateA2 -e recursiveA1 \ | ||||
|               -e publicB1 -e privateB1 -e 'Probed function:.*' -e '=*' \ | ||||
|               output.out > output.processed" | ||||
|   rlRun "diff output.processed golden.out" | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlPhaseStartCleanup | ||||
|   rlFileSubmit output.out | ||||
|   rlFileSubmit output.processed | ||||
|   rlFileSubmit golden.out | ||||
|   rlRun "rm -f output.out output.processed" | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlJournalPrintText | ||||
| 
 | ||||
| rlJournalEnd | ||||
| @ -1,39 +0,0 @@ | ||||
| #include <iostream> | ||||
| 
 | ||||
| class Explicit{ | ||||
|   public: | ||||
|     int data; | ||||
|     Explicit(); | ||||
|     Explicit(int argument); | ||||
|     Explicit(const Explicit &original); | ||||
|     ~Explicit(); | ||||
| }; | ||||
| 
 | ||||
| class Implicit{ | ||||
|   public: | ||||
|     int data; | ||||
| }; | ||||
| 
 | ||||
| Explicit::Explicit() { this->data=0; } | ||||
| Explicit::Explicit(int a) {this->data=0; } | ||||
| Explicit::Explicit(const Explicit &orig){this->data = orig.data;} | ||||
| Explicit::~Explicit(){} | ||||
| 
 | ||||
| int main(){ | ||||
|   Explicit e1;          //static ctor call
 | ||||
|   Explicit *e2; | ||||
| 
 | ||||
|   e2 = new Explicit();  //dynamic ctor call
 | ||||
|   delete e2;            //dynamic dtor call
 | ||||
| 
 | ||||
|   e2 = new Explicit(2); //dynamic ctor call
 | ||||
|   Explicit e3 = *e2;    //copy ctor
 | ||||
|   delete e2;            //dtor
 | ||||
| 
 | ||||
|   Implicit i1;  //ctor
 | ||||
|   Implicit *i2 = new Implicit(); //ctor
 | ||||
|   Implicit i3 = *i2; //implicit copy ctor
 | ||||
|   delete i2; //dtor
 | ||||
| 
 | ||||
|   return 0; // dtor e1, e3, i1, i3
 | ||||
| } | ||||
| @ -1,16 +0,0 @@ | ||||
| Explicit constructor start | ||||
| Explicit constructor end | ||||
| Explicit constructor start | ||||
| Explicit constructor end | ||||
| Explicit destructor start | ||||
| Explicit destructor end | ||||
| Explicit constructor start | ||||
| Explicit constructor end | ||||
| Explicit constructor start | ||||
| Explicit constructor end | ||||
| Explicit destructor start | ||||
| Explicit destructor end | ||||
| Explicit destructor start | ||||
| Explicit destructor end | ||||
| Explicit destructor start | ||||
| Explicit destructor end | ||||
| @ -1,14 +0,0 @@ | ||||
| summary: Tests probing constructors and destructors | ||||
| description: '' | ||||
| contact: Petr Muller <pmuller@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
|   - gcc-c++ | ||||
| duration: 5m | ||||
| extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-ctors-and-dtors | ||||
| extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-ctors-and-dtors | ||||
| tier: 1 | ||||
| @ -1,52 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-ctors-and-dtors | ||||
| #   Description: Tests probing constructors and destructors | ||||
| #   Author: Petr Muller <pmuller@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2010 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include rhts environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| rlJournalStart | ||||
| 
 | ||||
| rlPhaseStartSetup | ||||
|   rlRun "g++ classes.cpp -g -o classes" | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlPhaseStartTest | ||||
|   rlRun "stap -c ./classes tracker.stp -o output.out" | ||||
|   rlAssertNotDiffer golden.out output.out | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlPhaseStartCleanup | ||||
|   rlFileSubmit "output.out" | ||||
|   rlFileSubmit "golden.out" | ||||
|   rlRun "rm -rf classes output.out" | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,23 +0,0 @@ | ||||
| probe process("classes").function("Explicit::Explicit"){ | ||||
|   printf("Explicit constructor start\n"); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("Explicit::~Explicit"){ | ||||
|   printf("Explicit destructor start\n"); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("Explicit::Explicit").return{ | ||||
|   printf("Explicit constructor end\n"); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("Explicit::~Explicit").return{ | ||||
|   printf("Explicit destructor end\n"); | ||||
| } | ||||
| 
 | ||||
| //probe process("classes").function("Implicit::Implicit"){ | ||||
| //  printf("Implicitconstructor\n"); | ||||
| //} | ||||
| 
 | ||||
| //probe process("classes").function("Implicit::Implicit"){ | ||||
| //  printf("Implicit constructor\n"); | ||||
| //} | ||||
| @ -1,56 +0,0 @@ | ||||
| #include <iostream> | ||||
| 
 | ||||
| class A{ | ||||
|   public: | ||||
|   void one(){ std::cout << "A::one" << std::endl; } | ||||
|   void two(){ std::cout << "A::two" << std::endl; } | ||||
|   virtual void three() { std::cout << "A::three" << std::endl; } | ||||
|   virtual void four() { std::cout << "A::four" << std::endl; } | ||||
| }; | ||||
| 
 | ||||
| class B : public A{ | ||||
|   public: | ||||
|   void one() { std::cout << "B::one" << std::endl; } | ||||
|   int one(int a) { std::cout << "B::one" << std::endl; } | ||||
| 
 | ||||
|   virtual void three() { std::cout << "B::three" << std::endl; } | ||||
| }; | ||||
| 
 | ||||
| int main(){ | ||||
|   A a; | ||||
|   B b; | ||||
| 
 | ||||
|   A *ap = new A(); | ||||
|   A *apb = new B(); | ||||
| 
 | ||||
|   B *bp = new B(); | ||||
| 
 | ||||
| 
 | ||||
|   a.one(); | ||||
|   a.two(); | ||||
|   a.three(); | ||||
|   a.four(); | ||||
| 
 | ||||
|   b.one(); | ||||
|   b.two(); | ||||
|   b.three(); | ||||
|   b.four(); | ||||
| 
 | ||||
|   ap->one(); | ||||
|   ap->two(); | ||||
|   ap->three(); | ||||
|   ap->four(); | ||||
| 
 | ||||
|   apb->one(); | ||||
|   apb->two(); | ||||
|   apb->three(); | ||||
|   apb->four(); | ||||
| 
 | ||||
|   bp->one(); | ||||
|   bp->two(); | ||||
|   bp->three(); | ||||
|   bp->four(); | ||||
| 
 | ||||
| 
 | ||||
|   return 0; | ||||
| } | ||||
| @ -1,14 +0,0 @@ | ||||
| summary: Tests systemtap handling inheritance | ||||
| description: '' | ||||
| contact: Petr Muller <pmuller@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
|   - gcc-c++ | ||||
| duration: 10m | ||||
| extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-inheritance | ||||
| extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-inheritance | ||||
| tier: 1 | ||||
| @ -1,56 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-inheritance | ||||
| #   Description: Tests systemtap handling inheritance | ||||
| #   Author: Petr Muller <pmuller@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2010 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include rhts environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| # if this testcase caused kernel crash and reboot, don't try to rerun it | ||||
| [[ $REBOOTCOUNT -gt 0 ]] && exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| rlJournalStart | ||||
| 
 | ||||
| rlPhaseStartSetup | ||||
|   rlRun "g++ classes.cpp -o classes -g" | ||||
|   rlRun "./classes > program.out" 0 "Preparing the golden output" | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlPhaseStartTest | ||||
|   rlRun "stap -c ./classes tracker.stp -o stap.out" | ||||
|   rlAssertNotDiffer program.out stap.out | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlPhaseStartCleanup | ||||
|   rlFileSubmit program.out | ||||
|   rlFileSubmit stap.out | ||||
|   rlRun "rm -f classes stap.out program.out" | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,6 +0,0 @@ | ||||
| probe process("classes").function("A::one"){printf("A::one\n");} | ||||
| probe process("classes").function("A::two"){printf("A::two\n");} | ||||
| probe process("classes").function("A::three"){printf("A::three\n");} | ||||
| probe process("classes").function("A::four"){printf("A::four\n");} | ||||
| probe process("classes").function("B::one"){printf("B::one\n");} | ||||
| probe process("classes").function("B::three"){printf("B::three\n");} | ||||
| @ -1,71 +0,0 @@ | ||||
| __attribute__((noinline)) void StandaloneFunction(){ | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| class CLASS1{ | ||||
|     private: | ||||
|       void prMethod() {}; | ||||
|     public: | ||||
|       void puMethod() {this->prMethod();}; | ||||
|       static void stMethod() {}; | ||||
| }; | ||||
| 
 | ||||
| namespace inner{ | ||||
|   void StandaloneFunction(){ | ||||
|   } | ||||
| 
 | ||||
|   class CLASS1{ | ||||
|     private: | ||||
|       void prMethod() {}; | ||||
|     public: | ||||
|       void puMethod() {this->prMethod();}; | ||||
|       static void stMethod() {}; | ||||
|   }; | ||||
| }; | ||||
| 
 | ||||
| namespace moreinner{ | ||||
|   void StandaloneFunction(){ | ||||
|   } | ||||
| 
 | ||||
|   class CLASS1{ | ||||
|     private: | ||||
|       __attribute__((noinline)) void prMethod() {}; | ||||
|     public: | ||||
|       __attribute__((noinline)) void puMethod() {this->prMethod();}; | ||||
|       __attribute__((noinline)) static void stMethod() {}; | ||||
|   }; | ||||
| }; | ||||
| 
 | ||||
| int main(){ | ||||
|   StandaloneFunction(); | ||||
|   inner::StandaloneFunction(); | ||||
|   moreinner::StandaloneFunction(); | ||||
| 
 | ||||
|   CLASS1 A; | ||||
|   inner::CLASS1 B; | ||||
|   moreinner::CLASS1 C; | ||||
| 
 | ||||
|   CLASS1* pA = new CLASS1(); | ||||
|   inner::CLASS1 *pB = new inner::CLASS1(); | ||||
|   moreinner::CLASS1 *pC = new moreinner::CLASS1(); | ||||
| 
 | ||||
|   A.puMethod(); | ||||
|   A.stMethod(); | ||||
| 
 | ||||
|   B.puMethod(); | ||||
|   B.stMethod(); | ||||
| 
 | ||||
|   C.puMethod(); | ||||
|   C.stMethod(); | ||||
| 
 | ||||
|   pA->puMethod(); | ||||
|   pA->stMethod(); | ||||
| 
 | ||||
|   pB->puMethod(); | ||||
|   pB->stMethod(); | ||||
| 
 | ||||
|   pC->puMethod(); | ||||
|   pC->stMethod(); | ||||
| 
 | ||||
|   return 0; | ||||
| } | ||||
| @ -1,13 +0,0 @@ | ||||
| __hitcount=70 | ||||
| __inner_CLASS1_prMethod=0 | ||||
| __inner_CLASS1_puMethod=0 | ||||
| __inner_CLASS1_stMethod=0 | ||||
| __inner_StandaloneFunction=0 | ||||
| __moreinner_StandaloneFunction=0 | ||||
| __moreinner_star_prMethod=0 | ||||
| __moreinner_star_puMethod=0 | ||||
| __moreinner_star_stMethod=0 | ||||
| __prMethod=0 | ||||
| __puMethod=0 | ||||
| __StandaloneFunction=0 | ||||
| __stMethod=0 | ||||
| @ -1,14 +0,0 @@ | ||||
| summary: Tests C++ methods | ||||
| description: '' | ||||
| contact: Petr Muller <pmuller@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
|   - gcc-c++ | ||||
| duration: 120m | ||||
| extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-methods | ||||
| extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-methods | ||||
| tier: 1 | ||||
| @ -1,72 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-methods | ||||
| #   Description: Tests C++ methods | ||||
| #   Author: Petr Muller <pmuller@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2010 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include rhts environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| export LANG=C | ||||
| 
 | ||||
| rlJournalStart | ||||
| 
 | ||||
| rlPhaseStartSetup | ||||
|   rlRun "stap-prep" 0-255 | ||||
|   rlRun "g++ -O0 classes.cpp -o classes -g" | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlPhaseStartTest | ||||
|   rlRun "stap $COMPAT -c ./classes tracker.stp -o output.out" | ||||
|   # Stop comparing literally against a golden file, | ||||
|   # do a sanity check instead.  The literal golden file check | ||||
|   # sort of regressed between rhel-8.2 and rhel-8.3 | ||||
|   # rlRun "diff golden.out output.out" | ||||
|   rlRun "grep ^__ output.out | sort > summary.out" | ||||
| 
 | ||||
|   # The way sort works across test systems may differ | ||||
|   # esp wrt whether capitals go first or not, so let's sort | ||||
|   # the golden_summary.out first using actual defaults | ||||
|   # slash LANG etc... | ||||
|   rlRun "sort golden_summary.out > golden_summary.sort" | ||||
| 
 | ||||
|   # RHEL6: covert hex to dec: | ||||
|   rlRun "sed -i 's/0x0/0/' summary.out" | ||||
|   rlRun "sed -i 's/0x46/70/' summary.out" | ||||
| 
 | ||||
|   # Sanity check | ||||
|   rlRun "diff golden_summary.sort summary.out" || ( | ||||
|       rlRun "cat golden_summary.out" | ||||
|       rlRun "cat summary.out" | ||||
|   ) | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlPhaseStartCleanup | ||||
|   rlRun "rm -f golden_summary.sort output.out summary.out classes" | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,162 +0,0 @@ | ||||
| global __hitcount = 0 | ||||
| global __StandaloneFunction = 0 | ||||
| global __inner_StandaloneFunction = 0 | ||||
| global __moreinner_StandaloneFunction = 0 | ||||
| global __stMethod = 0 | ||||
| global __inner_CLASS1_stMethod = 0 | ||||
| global __moreinner_star_stMethod = 0 | ||||
| global __prMethod = 0 | ||||
| global __inner_CLASS1_prMethod = 0 | ||||
| global __moreinner_star_prMethod = 0 | ||||
| global __puMethod = 0 | ||||
| global __inner_CLASS1_puMethod = 0 | ||||
| global __moreinner_star_puMethod = 0 | ||||
| 
 | ||||
| probe process("classes").function("StandaloneFunction").call{ | ||||
|   __StandaloneFunction++ | ||||
|   __hitcount++ | ||||
|   printf("StandaloneFunction start: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("StandaloneFunction").return{ | ||||
|   __StandaloneFunction-- | ||||
|   __hitcount++ | ||||
|   printf("StandaloneFunction end: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("inner::StandaloneFunction").call{ | ||||
|   __inner_StandaloneFunction++ | ||||
|   __hitcount++ | ||||
|   printf("inner::StandaloneFunction start: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("inner::StandaloneFunction").return{ | ||||
|   __inner_StandaloneFunction-- | ||||
|   __hitcount++ | ||||
|   printf("inner::StandaloneFunction end: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("moreinner::StandaloneFunction").call{ | ||||
|   __moreinner_StandaloneFunction++ | ||||
|   __hitcount++ | ||||
|   printf("moreinner::StandaloneFunction start: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("moreinner::StandaloneFunction").return{ | ||||
|   __moreinner_StandaloneFunction-- | ||||
|   __hitcount++ | ||||
|   printf("moreinner::StandaloneFunction end: %s\n", probefunc()); | ||||
| } | ||||
| // ============================================================================ | ||||
| probe process("classes").function("stMethod").call{ | ||||
|   __stMethod++ | ||||
|   __hitcount++ | ||||
|   printf("stMethod start: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("stMethod").return{ | ||||
|   __stMethod-- | ||||
|   __hitcount++ | ||||
|   printf("stMethod end: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("inner::CLASS1::stMethod").call{ | ||||
|   __inner_CLASS1_stMethod++ | ||||
|   __hitcount++ | ||||
|   printf("inner::stMethod start: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("inner::CLASS1::stMethod").return{ | ||||
|   __inner_CLASS1_stMethod-- | ||||
|   __hitcount++ | ||||
|   printf("inner::stMethod end: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("moreinner::*::stMethod").call{ | ||||
|   __moreinner_star_stMethod++ | ||||
|   __hitcount++ | ||||
|   printf("moreinner::stMethod start: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("moreinner::*::stMethod").return{ | ||||
|   __moreinner_star_stMethod-- | ||||
|   __hitcount++ | ||||
|   printf("moreinner::stMethod end: %s\n", probefunc()); | ||||
| } | ||||
| //============================================================================= | ||||
| 
 | ||||
| probe process("classes").function("prMethod").call{ | ||||
|   __prMethod++ | ||||
|   __hitcount++ | ||||
|   printf("prMethod start: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("prMethod").return{ | ||||
|   __prMethod-- | ||||
|   __hitcount++ | ||||
|   printf("prMethod end: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("inner::CLASS1::prMethod").call{ | ||||
|   __inner_CLASS1_prMethod++ | ||||
|   __hitcount++ | ||||
|   printf("inner::prMethod start: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("inner::CLASS1::prMethod").return{ | ||||
|   __inner_CLASS1_prMethod-- | ||||
|   __hitcount++ | ||||
|   printf("inner::prMethod end: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("moreinner::*::prMethod").call{ | ||||
|   __moreinner_star_prMethod++ | ||||
|   __hitcount++ | ||||
|   printf("moreinner::prMethod start: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("moreinner::*::prMethod").return{ | ||||
|   __moreinner_star_prMethod-- | ||||
|   __hitcount++ | ||||
|   printf("moreinner::prMethod end: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| //============================================================================= | ||||
| 
 | ||||
| probe process("classes").function("puMethod").call{ | ||||
|   __puMethod++ | ||||
|   __hitcount++ | ||||
|   printf("puMethod start: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("puMethod").return{ | ||||
|   __puMethod-- | ||||
|   __hitcount++ | ||||
|   printf("puMethod end: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("inner::CLASS1::puMethod").call{ | ||||
|   __inner_CLASS1_puMethod++ | ||||
|   __hitcount++ | ||||
|   printf("inner::puMethod start: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("inner::CLASS1::puMethod").return{ | ||||
|   __inner_CLASS1_puMethod-- | ||||
|   __hitcount++ | ||||
|   printf("inner::puMethod end: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("moreinner::*::puMethod").call{ | ||||
|   __moreinner_star_puMethod++ | ||||
|   __hitcount++ | ||||
|   printf("moreinner::puMethod start: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| probe process("classes").function("moreinner::*::puMethod").return{ | ||||
|   __moreinner_star_puMethod-- | ||||
|   __hitcount++ | ||||
|   printf("moreinner::puMethod end: %s\n", probefunc()); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| @ -1,15 +0,0 @@ | ||||
| summary: Test for BZ#1572501 (RHEL7.5 - backtraces no longer work with systemtap) | ||||
| description: Test for BZ#1572501 | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
| duration: 48h | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1572501 | ||||
| extra-summary: /tools/systemtap/Regression/RHEL7-5-backtraces-no-longer-work-with-systemtap | ||||
| extra-task: /tools/systemtap/Regression/RHEL7-5-backtraces-no-longer-work-with-systemtap | ||||
| tier: 1 | ||||
| @ -1,49 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/RHEL7-5-backtraces-no-longer-work-with-systemtap | ||||
| #   Description: Test for BZ#1572501 (RHEL7.5 - backtraces no longer work with systemtap) | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2018 Red Hat, Inc. | ||||
| # | ||||
| #   This program is free software: you can redistribute it and/or | ||||
| #   modify it under the terms of the GNU General Public License as | ||||
| #   published by the Free Software Foundation, either version 2 of | ||||
| #   the License, or (at your option) any later version. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE.  See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public License | ||||
| #   along with this program. If not, see http://www.gnu.org/licenses/. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartTest | ||||
| 	if arch | grep -q s390x; then | ||||
| 	    rlLogWarning "Test not relevant" | ||||
| 	else | ||||
| 	    TEMPFILE=$(mktemp) | ||||
| 	    rlRun "stap --all-modules -vwe 'probe kernel.function(\"kmem_cache_alloc\") { print_backtrace(); exit() }' >& $TEMPFILE" | ||||
| 	    # since it's hard to find some reasonable pattern to grep for across arches in the backrtrace | ||||
| 	    # we'll simply count the lines.  We'll want at least 9 lines of output (6 as the results of -v, | ||||
| 	    # and another at least three coming from the backtrace itself. | ||||
| 	    rlRun "cat $TEMPFILE" | ||||
| 	    rlRun "test 9 -le $(wc -l $TEMPFILE | awk '{print $1}')" | ||||
| 	    rm $TEMPFILE | ||||
| 	fi | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,63 +0,0 @@ | ||||
| Kernel porting needed. | ||||
| 
 | ||||
| :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: | ||||
| ::   Test | ||||
| :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: | ||||
| 
 | ||||
| :: [ 09:22:47 ] :: [   INFO   ] :: Checking whether we might want to try prologue search. | ||||
| :: [ 09:23:10 ] :: [  BEGIN   ] :: Running 'stap -P -vp4 readpages.stp' | ||||
| Pass 1: parsed user script and 484 library scripts using 122428virt/95036res/15532shr/79120data kb, in 200usr/110sys/315real ms. | ||||
| WARNING: never-assigned local variable 'nr_pages' (similar: rpages, __page, dev, name, file): identifier 'nr_pages' at readpages.stp:5:26 | ||||
|  source:        printf("nr_pages=%d\n", nr_pages); | ||||
|                                         ^ | ||||
| WARNING: never-assigned local variable 'rpages' (similar: nr_pages, __page, dev, name, rsize): identifier 'rpages' at :7:24 | ||||
|  source:        printf("rpages=%d\n", rpages); | ||||
|                                       ^ | ||||
| Pass 2: analyzed script: 2 probes, 17 functions, 3 embeds, 0 globals using 351676virt/327836res/19060shr/308368data kb, in 2880usr/1970sys/4927real ms. | ||||
| Pass 3: translated to C into "/tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.c" using 351692virt/327964res/19188shr/308384data kb, in 490usr/800sys/1301real ms. | ||||
| In file included from /usr/share/systemtap/runtime/linux/../regs.c:16, | ||||
|                  from /usr/share/systemtap/runtime/linux/runtime.h:270, | ||||
|                  from /usr/share/systemtap/runtime/runtime.h:26, | ||||
|                  from /tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.c:21: | ||||
| /tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.c: In function ‘enter_kretprobe_common’: | ||||
| /tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.c:2499:45: error: ‘struct kretprobe_instance’ has no member named ‘ret_addr’ | ||||
|  2499 |         SET_REG_IP(regs, (unsigned long)inst->ret_addr); | ||||
|       |                                             ^~ | ||||
| /usr/share/systemtap/runtime/linux/../regs.h:85:44: note: in definition of macro ‘SET_REG_IP’ | ||||
|    85 | #define SET_REG_IP(regs, x) REG_IP(regs) = x | ||||
|       |                                            ^ | ||||
| make[1]: *** [scripts/Makefile.build:288: /tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.o] Error 1 | ||||
| make: *** [Makefile:1844: /tmp/stapWU958g] Error 2 | ||||
| WARNING: kbuild exited with status: 2 | ||||
| Pass 4: compiled C into "stap_f189533513b6d61221ada924fedfc9c4_6369.ko" in 1150usr/1910sys/2659real ms. | ||||
| Pass 4: compilation failed.  [man error::pass4] | ||||
| :: [ 09:23:20 ] :: [   FAIL   ] :: Command 'stap -P -vp4 readpages.stp' (Expected 0, got 1) | ||||
| :: [ 09:23:20 ] :: [  BEGIN   ] :: Running 'stap -P -vp4 tcp.sendmsg.stp' | ||||
| Pass 1: parsed user script and 484 library scripts using 122428virt/95044res/15536shr/79120data kb, in 180usr/130sys/316real ms. | ||||
| Pass 2: analyzed script: 5 probes, 2 functions, 4 embeds, 3 globals using 202292virt/178300res/19224shr/158984data kb, in 1720usr/1750sys/3531real ms. | ||||
| Pass 3: translated to C into "/tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.c" using 202308virt/178492res/19416shr/159000data kb, in 160usr/720sys/899real ms. | ||||
| In file included from /usr/share/systemtap/runtime/linux/../regs.c:16, | ||||
|                  from /usr/share/systemtap/runtime/linux/runtime.h:270, | ||||
|                  from /usr/share/systemtap/runtime/runtime.h:26, | ||||
|                  from /tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.c:21: | ||||
| /tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.c: In function ‘enter_kretprobe_common’: | ||||
| /tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.c:2190:45: error: ‘struct kretprobe_instance’ has no member named ‘ret_addr’ | ||||
|  2190 |         SET_REG_IP(regs, (unsigned long)inst->ret_addr); | ||||
|       |                                             ^~ | ||||
| /usr/share/systemtap/runtime/linux/../regs.h:85:44: note: in definition of macro ‘SET_REG_IP’ | ||||
|    85 | #define SET_REG_IP(regs, x) REG_IP(regs) = x | ||||
|       |                                            ^ | ||||
| make[1]: *** [scripts/Makefile.build:288: /tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.o] Error 1 | ||||
| make: *** [Makefile:1844: /tmp/stapzXlpka] Error 2 | ||||
| WARNING: kbuild exited with status: 2 | ||||
| Pass 4: compiled C into "stap_c98d0598383a49c9b0a715336e876a54_18911.ko" in 1250usr/1900sys/2762real ms. | ||||
| Pass 4: compilation failed.  [man error::pass4] | ||||
| :: [ 09:23:28 ] :: [   FAIL   ] :: Command 'stap -P -vp4 tcp.sendmsg.stp' (Expected 0, got 1) | ||||
| :: [ 09:23:28 ] :: [  BEGIN   ] :: Running 'stap -P -vp4 bdflush.stp' | ||||
| Pass 1: parsed user script and 484 library scripts using 122428virt/94968res/15468shr/79120data kb, in 180usr/130sys/317real ms. | ||||
| Pass 2: analyzed script: 3 probes, 5 functions, 98 embeds, 4 globals using 198116virt/174376res/18956shr/154808data kb, in 1930usr/2660sys/4689real ms. | ||||
| /root/.systemtap/cache/87/stap_8728db2fdfe761c96d8963fd0c4fffd2_71969.ko | ||||
| Pass 3: using cached /root/.systemtap/cache/87/stap_8728db2fdfe761c96d8963fd0c4fffd2_71969.c | ||||
| Pass 4: using cached /root/.systemtap/cache/87/stap_8728db2fdfe761c96d8963fd0c4fffd2_71969.ko | ||||
| :: [ 09:23:33 ] :: [   PASS   ] :: Command 'stap -P -vp4 bdflush.stp' (Expected 0, got 0) | ||||
| 
 | ||||
| @ -1,8 +0,0 @@ | ||||
| probe syscall.bdflush { | ||||
| 	printf("%s\n", name) | ||||
| 	printf("%s\n", argstr) | ||||
| } | ||||
| 
 | ||||
| probe syscall.bdflush.return { | ||||
| 	printf("%s\n", name) | ||||
| } | ||||
| @ -1,14 +0,0 @@ | ||||
| summary: bz544960-no-cfa_ops-supplied | ||||
| description: '' | ||||
| contact: Martin Hatina <mhatina@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
| duration: 30m | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=544960 | ||||
| extra-summary: /tools/systemtap/Regression/bz544960-no-cfa_ops-supplied | ||||
| extra-task: /tools/systemtap/Regression/bz544960-no-cfa_ops-supplied | ||||
| @ -1,21 +0,0 @@ | ||||
| probe nfs.aop.readpages !, nfs.aop.readpage ? { | ||||
| 	log(name); | ||||
| 	printf("dev=%d\n", dev); | ||||
| 	printf("ino=%d\n", ino); | ||||
| 	printf("nr_pages=%d\n", nr_pages); | ||||
| 	printf("file=%d\n", file); | ||||
| 	printf("rpages=%d\n", rpages); | ||||
| 	printf("rsize=%d\n", rsize); | ||||
| 	printf("argstr=%s\n", argstr); | ||||
| 	printf("size=%d\n", size); | ||||
| 	printf("units=%s\n", units); | ||||
| } | ||||
| 
 | ||||
| probe nfs.aop.readpages.return !, nfs.aop.readpage.return ? { | ||||
| 	log(name); | ||||
| 	printf("retstr=%s\n", retstr); | ||||
| 	printf("size=%d\n", size); | ||||
| 	printf("units=%s\n", units); | ||||
| } | ||||
| 
 | ||||
| probe oneshot { log("hey!") } | ||||
| @ -1,49 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/bz544960-no-cfa_ops-supplied | ||||
| #   Description: What the test does | ||||
| #   Author: Martin Hatina <mhatina@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2013 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| _SCRIPTS="readpages.stp tcp.sendmsg.stp bdflush.stp" | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartTest | ||||
| 	rlLogInfo "Checking whether we might want to try prologue search." | ||||
| 	p="" | ||||
| 	for s in $_SCRIPTS; do | ||||
| 	    stap -vp4 $s >& /dev/null || p="-P" | ||||
| 	done | ||||
| 
 | ||||
| 	for s in $_SCRIPTS; do | ||||
| 	    rlRun "stap $p -vp4 $s" | ||||
| 	done | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,7 +0,0 @@ | ||||
| probe tcp.sendmsg { | ||||
| 	printf("%d\n", size) | ||||
| } | ||||
| 
 | ||||
| probe tcp.sendmsg.return { | ||||
| 	printf("%d\n", size) | ||||
| } | ||||
| @ -1,16 +0,0 @@ | ||||
| summary: bz706185-various-build-and-run | ||||
| description: bz706185-various-build-and-run | ||||
| contact: Petr Muller <pmuller@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| require: | ||||
| recommend: | ||||
|   - systemtap | ||||
| duration: 20m | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=706185 | ||||
| extra-summary: /tools/systemtap/Regression/bz706185-various-build-and-run | ||||
| extra-task: /tools/systemtap/Regression/bz706185-various-build-and-run | ||||
| tier: 1 | ||||
| @ -1,87 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/bz706185-various-build-and-run | ||||
| #   Description: Test containing several build and run testcases. | ||||
| #   Author: Petr Muller <pmuller@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2011 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| rlJournalStart | ||||
| rlPhaseStartSetup | ||||
|   rlRun "rpm -qf $(which stap)" | ||||
|   rlRun "uname -r" | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlPhaseStartTest "Build testcases" | ||||
|   export STAPOUT=`mktemp` | ||||
|   export TRACOUT=`mktemp` | ||||
|   for testcase in *.stp | ||||
|   do | ||||
|     rlLog "Testcase: $testcase" | ||||
|     rlRun "stap -v -p4 $testcase -m testcase --poison-cache &>$STAPOUT" 0 "Building testcase: $testcase" | ||||
|     if [ $? -ne 0 ] | ||||
|     then | ||||
|       rlLog "=== systemtap output start" | ||||
|       while read line | ||||
|       do | ||||
|         rlLog "$line" | ||||
|       done < $STAPOUT | ||||
|       rlLog "=== systemtap output end" | ||||
|     fi | ||||
|     rm -f testcase.ko | ||||
|     rm -f $STAPOUT | ||||
|   done | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlPhaseStartTest "Run testcases" | ||||
|   for testcase in *.run | ||||
|   do | ||||
|     rlLog "Testcase: $testcase" | ||||
|     COMMAND="`cat $testcase`" | ||||
|     COMMAND="$COMMAND -o $TRACOUT $testcase --poison-cache &>$STAPOUT" | ||||
|     rlLog "Assembled command: [$COMMAND]" | ||||
|     rlRun "$COMMAND" 0 "Running testcase: $testcase" | ||||
|     if [ $? -ne 0 ] | ||||
|     then | ||||
|       rlLog "=== systemtap output start" | ||||
|       while read line; do rlLog "$line"; done < $STAPOUT | ||||
|       rlLog "=== systemtap output end" | ||||
|       rlLog "" | ||||
|       rlLog "=== tracing output start" | ||||
|       while read line; do rlLog "$line"; done < $TRACOUT | ||||
|       rlLog "=== tracing output end" | ||||
|     fi | ||||
|     rm -f $STAPOUT $TRACOUT | ||||
|   done | ||||
| rlPhaseEnd | ||||
| 
 | ||||
| rlPhaseStartCleanup | ||||
|   rlRun "rm -f $STAPOUT $TRACOUT" | ||||
| rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1 +0,0 @@ | ||||
| stap -v softirq.stp | ||||
| @ -1,3 +0,0 @@ | ||||
| probe softirq.entry { println(">>> softirq") } | ||||
| probe softirq.exit  { println("<<< softirq")} | ||||
| probe timer.ms(5000) { exit() } | ||||
| @ -1,16 +0,0 @@ | ||||
| summary: dtrace-create-Wall-Wextra-pedantic-clean-code | ||||
| description: dtrace-create-Wall-Wextra-pedantic-clean-code | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
|   - systemtap-sdt-devel | ||||
| duration: 5m | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=902739 | ||||
| extra-summary: /tools/systemtap/Regression/dtrace-create-Wall-Wextra-pedantic-clean-code | ||||
| extra-task: /tools/systemtap/Regression/dtrace-create-Wall-Wextra-pedantic-clean-code | ||||
| tier: 1 | ||||
| @ -1,57 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/dtrace-create-Wall-Wextra-pedantic-clean-code | ||||
| #   Description: dtrace-create-Wall-Wextra-pedantic-clean-code | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2013 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartSetup | ||||
|         rlRun "TMPDIR=$(mktemp -d)" | ||||
|         rlRun "pushd $TMPDIR" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStart WARN "Info" | ||||
|         rlRun "which dtrace" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartTest | ||||
|         rlRun "printf \"provider xxx { probe xxx(); };\n\" > xxx" | ||||
|         rlRun "dtrace -G -k -s xxx &> dtrace.out" | ||||
|         rlRun "cat dtrace.out" | ||||
|         rlRun "CF=$( awk '/^source:/ {print $2}' dtrace.out )" | ||||
|         rlRun "gcc -c -Wall -Wextra -pedantic $CF 2>&1 | tee gcc.out" | ||||
|         rlRun "grep -i warning gcc.out" 1 | ||||
|         rlRun "grep -i error gcc.out" 1 | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartCleanup | ||||
|         rlRun "popd" | ||||
|         rlRun "rm -r $TMPDIR" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,28 +0,0 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| set -xe | ||||
| 
 | ||||
| rm -rf ~/.cache/debuginfod_client ~/.systemtap ||: | ||||
| 
 | ||||
| debuginfod -p 8008 -d $(mktemp) -vvvvv >& debuginfod.log & | ||||
| PID=$! | ||||
| 
 | ||||
| sleep 5 | ||||
| 
 | ||||
| export SYSTEMTAP_DEBUGINFO_PATH=/tmp | ||||
| export DEBUGINFOD_URLS="http://127.0.0.1:8008" | ||||
| 
 | ||||
| # The following doesn't work on aarch64 and s390x because of: | ||||
| # https://sourceware.org/bugzilla/show_bug.cgi?id=25498 | ||||
| # stap -p2 -e 'probe kernel.function("vfs_read") {println(pp())}' ||: | ||||
| 
 | ||||
| stap -p2 -e 'probe process("/bin/true").function("main") {println(pp())}' -c /bin/true ||: | ||||
| 
 | ||||
| sleep 5 | ||||
| 
 | ||||
| kill -9 $PID | ||||
| 
 | ||||
| grep 'started http server on' debuginfod.log | ||||
| grep 'searching for buildid=[a-z0-9]* artifacttype=debuginfo' debuginfod.log | ||||
| 
 | ||||
| 
 | ||||
| @ -1,15 +0,0 @@ | ||||
| summary: elfutils-debuginfod-client-not-being-called | ||||
| description: '' | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - elfutils-debuginfod | ||||
| duration: 48h | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1778921 | ||||
| extra-summary: /tools/systemtap/Regression/elfutils-debuginfod-client-not-being-called | ||||
| extra-task: /tools/systemtap/Regression/elfutils-debuginfod-client-not-being-called | ||||
| tier: 1 | ||||
| @ -1,52 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/elfutils-debuginfod-client-not-being-called | ||||
| #   Description: elfutils-debuginfod-client-not-being-called | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2020 Red Hat, Inc. | ||||
| # | ||||
| #   This program is free software: you can redistribute it and/or | ||||
| #   modify it under the terms of the GNU General Public License as | ||||
| #   published by the Free Software Foundation, either version 2 of | ||||
| #   the License, or (at your option) any later version. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE.  See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public License | ||||
| #   along with this program. If not, see http://www.gnu.org/licenses/. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartSetup | ||||
|         rlAssertRpm $PACKAGE | ||||
|         rlRun "TMP=$(mktemp -d)" | ||||
|         rlRun "cp dotest.sh $TMP/" | ||||
|         rlRun "pushd $TMP" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartTest | ||||
|         rlRun "bash dotest.sh" || | ||||
|             rlRun "cat debuginfod.log" | ||||
|         rlFileSubmit debuginfod.log | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartCleanup | ||||
|         rlRun "popd" | ||||
|         rlRun "rm -r $TMP" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,8 +0,0 @@ | ||||
| probe begin | ||||
| { | ||||
|    printf (   "hello trace : printf\n") | ||||
|         printk (20,"hello trace : printk") | ||||
|         ftrace (   "hello trace : ftrace\n") | ||||
|         exit () | ||||
| } | ||||
| 
 | ||||
| @ -1,15 +0,0 @@ | ||||
| summary: ftrace-logging-tapset-not-working-as-expected-in | ||||
| description: ftrace-logging-tapset-not-working-as-expected-in | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
| duration: 48h | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1810216 | ||||
| extra-summary: /tools/systemtap/Regression/ftrace-logging-tapset-not-working-as-expected-in | ||||
| extra-task: /tools/systemtap/Regression/ftrace-logging-tapset-not-working-as-expected-in | ||||
| tier: 1 | ||||
| @ -1,47 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/ftrace-logging-tapset-not-working-as-expected-in | ||||
| #   Description: ftrace-logging-tapset-not-working-as-expected-in | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2020 Red Hat, Inc. | ||||
| # | ||||
| #   This program is free software: you can redistribute it and/or | ||||
| #   modify it under the terms of the GNU General Public License as | ||||
| #   published by the Free Software Foundation, either version 2 of | ||||
| #   the License, or (at your option) any later version. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE.  See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public License | ||||
| #   along with this program. If not, see http://www.gnu.org/licenses/. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| LOG1=$(mktemp) | ||||
| LOG2=$(mktemp) | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartTest | ||||
|         rlRun "mount | grep -F -i 'debugfs on'" | ||||
|         rlRun "cat /sys/kernel/debug/tracing/tracing_on | grep '^1$'" | ||||
|         rlRun "journalctl > $LOG1" | ||||
|         rlRun "stap -g -k -v  hellotrace.stp" | ||||
|         rlRun "journalctl > $LOG2" | ||||
|         rlRun "diff $LOG1 $LOG2 | grep '^>.*hello trace : printk'" | ||||
|         rlRun "rm $LOG1 $LOG2" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,17 +0,0 @@ | ||||
| summary: Test for BZ#822503 (ipv6 tapset support) | ||||
| description: ipv6 tapset support | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
|   - nfs-utils | ||||
|   - setup | ||||
| duration: 50m | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=822503 | ||||
| extra-summary: /tools/systemtap/Regression/ipv6-tapset-support | ||||
| extra-task: /tools/systemtap/Regression/ipv6-tapset-support | ||||
| tier: 1 | ||||
| @ -1,12 +0,0 @@ | ||||
| #!/usr/bin/stap | ||||
| 
 | ||||
| # http://sourceware.org/systemtap/examples/network/nfsdtop.stp | ||||
| 
 | ||||
| probe nfsd.proc.lookup { | ||||
|     printf("%s %s\n", client_ip, filename); | ||||
| } | ||||
| 
 | ||||
| probe timer.ms(100000) { | ||||
|     exit (); | ||||
| } | ||||
| 
 | ||||
| @ -1,79 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/ipv6-tapset-support | ||||
| #   Description: Test for BZ#822503 (ipv6 tapset support) | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2013 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| . /etc/os-release || exit 1 | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartSetup | ||||
|         rlLogInfo "Related bugs: Fedora rawhide 6.2.0-0.rc8.57.fc39.x86_64 bz2177192" | ||||
|         rlAssertRpm nfs-utils | ||||
|         rlRun "uname -r" | ||||
|         rlRun "which stap" | ||||
| 
 | ||||
|         rlRun "TMPD=$(mktemp -d --tmpdir=$HOME tmp.XXXXXXX)" | ||||
|         rlRun "mkdir $TMPD/{A,B}" | ||||
|         rlRun "chmod --recursive 0777 $TMPD" | ||||
|         rlRun "STAPLOG=$(mktemp)" | ||||
| 
 | ||||
|         rlServiceStart rpcbind | ||||
|         sleep 5 | ||||
|         NFS_SERVICE=nfs | ||||
|         rlIsRHEL '>=8' && NFS_SERVICE=nfs-server | ||||
|         [ $ID == 'fedora' ] && test $VERSION_ID -ge 38 && NFS_SERVICE=nfs-server | ||||
|         rlServiceStart $NFS_SERVICE | ||||
|         sleep 10 | ||||
|         rlRun "exportfs -ua" | ||||
|         rlRun "exportfs -i -o 'rw,no_root_squash' *:$TMPD/A" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartTest | ||||
|         # ======= work around bz1605574 | ||||
|         rlLogInfo "Let's check if we can compile the module." | ||||
|         rlLogInfo "In case we can't, we'll go ahead with prologue searching." | ||||
|         set -x | ||||
|         EXTRA_SWITCHES='' | ||||
|         stap -p4 nfsd.proc.lookup.stp || EXTRA_SWITCHES="-P" | ||||
|         set +x | ||||
|         # ============================= | ||||
| 
 | ||||
|         # mount is sufficient to invoke nfsd.proc.lookup | ||||
|         rlRun "stap $EXTRA_SWITCHES -v -c 'mount -t nfs -v [::1]:$TMPD/A $TMPD/B' nfsd.proc.lookup.stp |& tee $STAPLOG" | ||||
|         rlRun "umount $TMPD/B" | ||||
|         rlRun "grep 'Unsupported Address Family' $STAPLOG" 1 | ||||
|         rlRun "egrep '^\[0000:0000:0000:0000:0000:0000:0000:0001\]:[0-9]+.*$(basename $TMPD)' $STAPLOG" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartCleanup | ||||
|         rlServiceRestore $NFS_SERVICE | ||||
|         rlServiceRestore rpcbind | ||||
|         rlRun "rm -rf $TMPD $STAPLOG" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,16 +0,0 @@ | ||||
| summary: irq-vector-tracepoints | ||||
| description: irq-vector-tracepoints | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap-devel | ||||
|   - kernel-debuginfo | ||||
| duration: 15m | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1020437 | ||||
| extra-summary: /tools/systemtap/Regression/irq-vector-tracepoints | ||||
| extra-task: /tools/systemtap/Regression/irq-vector-tracepoints | ||||
| tier: 1 | ||||
| @ -1,74 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/irq-vector-tracepoints | ||||
| #   Description: irq-vector-tracepoints | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2013 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartSetup | ||||
|         rlRun "TMPDIR=$(mktemp -d)" | ||||
|         rlRun "pushd $TMPDIR" | ||||
|         rlRun "mount -t debugfs /dev/null /sys/kernel/debug" 0-255 | ||||
|         rlRun "test -d /sys/kernel/debug/tracing/events" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStart FAIL "Systemtap sanity check" | ||||
|         rlRun "stap --version" | ||||
|         rlRun "stap -v -e 'probe kernel.function(\"vfs_read\"){ exit() }'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStart FAIL "Create list of all kernel tracepoints known to stap" | ||||
|         rlRun "stap -l 'kernel.trace(\"*\")' > tracepoints" | ||||
|         rlFileSubmit tracepoints | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStart FAIL "Check irq_vectors" | ||||
|         dir='/sys/kernel/debug/tracing/events/irq_vectors' | ||||
|         if test -d $dir; then | ||||
|             for p in $( find $dir -mindepth 1 -type d | awk -F\/ '{print $NF}' ); do | ||||
|                 rlLogInfo "Checking $p" | ||||
|                 rlRun "grep -q $p tracepoints" | ||||
|             done | ||||
|             # additional checks | ||||
|             rlRun "stap -vp4 -e 'probe kernel.trace(\"local_timer_entry\") {println(pp())}'" | ||||
|             rlRun "stap -vp4 -e 'probe kernel.trace(\"reschedule_entry\") {println(pp())}'" | ||||
|         else | ||||
|             if arch | egrep 'x86_64|i[36]86'; then | ||||
|                 rlLogError "$dir does not exist" | ||||
|             else | ||||
|                 rlLogInfo "$dir does not exist" | ||||
|             fi | ||||
|         fi | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartCleanup | ||||
|         rlRun "popd" | ||||
|         rlRun "rm -r $TMPDIR" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,15 +0,0 @@ | ||||
| summary: netdev.receive | ||||
| description: bz1518462 netdev.receive | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
| duration: 15m | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1518462 | ||||
| extra-summary: /tools/systemtap/Regression/netdev-receive | ||||
| extra-task: /tools/systemtap/Regression/netdev-receive | ||||
| tier: 1 | ||||
| @ -1,42 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/netdev-receive | ||||
| #   Description: netdev.receive | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2017 Red Hat, Inc. | ||||
| # | ||||
| #   This program is free software: you can redistribute it and/or | ||||
| #   modify it under the terms of the GNU General Public License as | ||||
| #   published by the Free Software Foundation, either version 2 of | ||||
| #   the License, or (at your option) any later version. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE.  See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public License | ||||
| #   along with this program. If not, see http://www.gnu.org/licenses/. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartTest | ||||
|         rlRun "TMPFILE=$(mktemp)" | ||||
|         rlRun "stap -o $TMPFILE -ve 'probe netdev.receive{log(\"HIT\") exit()}' -c 'ping -c1 localhost'" | ||||
|         rlRun "cat $TMPFILE" | ||||
|         rlRun "grep HIT $TMPFILE" | ||||
|         rlRun "rm $TMPFILE" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,17 +0,0 @@ | ||||
| summary: Test for BZ#1055778 (Pass 4 failure on RHEL7 for examples) | ||||
| description: Test for BZ#1055778 (Pass 4 failure on RHEL7 for examples) | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - valgrind | ||||
|   - systemtap | ||||
|   - systemtap-testsuite | ||||
| duration: 30m | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1055778 | ||||
| extra-summary: /tools/systemtap/Regression/pass-4-failure-netfilter-examples | ||||
| extra-task: /tools/systemtap/Regression/pass-4-failure-netfilter-examples | ||||
| tier: 1 | ||||
| @ -1,55 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/pass-4-failure-netfilter-examples | ||||
| #   Description: Test for BZ#1055778 (Pass 4 failure on RHEL7 for examples) | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2014 Red Hat, Inc. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartSetup | ||||
|         TESTS=$(mktemp) | ||||
|         rlRun "rpm -qa | grep -F systemtap-testsuite" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rpm -qa | grep systemtap-testsuite | xargs rpm -ql \ | ||||
|             | egrep 'netfilter_drop.stp|netfilter_summary.stp' \ | ||||
|             | while read line; do | ||||
|         rlPhaseStart FAIL "Testing $line" | ||||
|             rlRun "stap -p4 $line -v -g TCP 1" && \ | ||||
|                 echo $line >> $TESTS | ||||
|         rlPhaseEnd | ||||
|     done | ||||
| 
 | ||||
|     rlPhaseStart FAIL "Check what was tested" | ||||
|         rlRun "grep netfilter_drop.stp $TESTS" | ||||
|         rlRun "grep netfilter_summary.stp $TESTS" | ||||
|         rm -f $TESTS | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,22 +0,0 @@ | ||||
| #!/usr/bin/stap -v | ||||
| /* | ||||
|     Example usage of the Python systemtap tapset to show a nested view of all | ||||
|     Python function calls (and returns) across the whole system. | ||||
| 
 | ||||
|     Run this using | ||||
|         stap systemtap-example.stp | ||||
|     to instrument all Python processes on the system, or (for example) using | ||||
|         stap systemtap-example.stp -c COMMAND | ||||
|     to instrument a specific program (implemented in Python) | ||||
| */ | ||||
| probe python.function.entry | ||||
| { | ||||
|  if ( filename =~ "random" ) | ||||
|   printf("%s => %s in %s:%d\n", thread_indent(1), funcname, filename, lineno); | ||||
| } | ||||
| 
 | ||||
| probe python.function.return | ||||
| { | ||||
|  if ( filename =~ "random" ) | ||||
|   printf("%s <= %s in %s:%d\n", thread_indent(-1), funcname, filename, lineno); | ||||
| } | ||||
| @ -1,22 +0,0 @@ | ||||
| summary: Systemtap static probes test | ||||
| description: Systemtap static probes test | ||||
| contact: Petr Splichal <psplicha@redhat.com> | ||||
| component: | ||||
| - python | ||||
| - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
| - python | ||||
| - python-debuginfo | ||||
| - python3-debuginfo | ||||
| - python3.9-debuginfo | ||||
| - systemtap | ||||
| - python2 | ||||
| - python3 | ||||
| - elfutils | ||||
| - yum-utils | ||||
| duration: 15m | ||||
| extra-summary: /CoreOS/python/Sanity/systemtap | ||||
| extra-task: /CoreOS/python/Sanity/systemtap | ||||
| tier: 1 | ||||
| @ -1,86 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /CoreOS/python/Sanity/systemtap | ||||
| #   Description: Systemtap static probes test | ||||
| #   Author: Petr Splichal <psplicha@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2011 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| . /etc/os-release || exit 1 | ||||
| 
 | ||||
| # Packages to be tested | ||||
| PACKAGES="${PACKAGES:-python3}" | ||||
| # Other required packages | ||||
| REQUIRES=${REQUIRES:-} | ||||
| # Binary name parametrized | ||||
| PYTHON="${PYTHON:-python3}" | ||||
| 
 | ||||
| package=$(rpm -qf --queryformat '%{name}\n' $(which $PYTHON)) | ||||
| collection_path=$(which python | sed 's/\/usr\/bin\/python//') | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartSetup | ||||
|         # rlAssertRpm --all | ||||
|         rlAssertRpm "systemtap" | ||||
|         rlLogInfo "Running on kernel: $(uname -r)" | ||||
|         rlRun "rpm -qa 'systemtap*'" 0 "Checking systemtap packages" | ||||
|         rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory" | ||||
|         rlRun "cp list.stp top.stp test.py $TmpDir" 0 "Copying scripts" | ||||
|         rlRun "pushd $TmpDir" | ||||
| 
 | ||||
|         # Install needed debuginfo, best effort | ||||
|         rlLogInfo "DEBUGINFOD_URLS=$DEBUGINFOD_URLS" | ||||
|         rlLogInfo "DEBUGINFOD_TIMEOUT=$DEBUGINFOD_TIMEOUT" | ||||
|         rlRun "L=$(stap -p2 -e 'probe python.function.entry {exit()}' | awk -F\" '/process/ {print $2}')" 0-255 | ||||
|         rlRun "debuginfo-install -y $L /usr/bin/python\*" 0-255 | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartTest "Verifying ELF file for presence of .probes section" | ||||
|          for lib in ${collection_path}/usr/lib*/libpython*.so.* ; do | ||||
|             rlRun "eu-readelf -x .probes $lib" \ | ||||
|                 0 "Checking for .probes section within $lib" | ||||
|          done | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # Note that typically you need to be root to run "stap" (or be within | ||||
|     # an appropriate group) | ||||
|     for script in list top; do | ||||
|         # bz2152970 is a known probem | ||||
|         [ "$ID" == "fedora" ] && [ "$script" == "top" ] && continue | ||||
|         rlPhaseStartTest "Test $script" | ||||
|             rlRun "rm -rf ~/.systemtap/cache" 0 "Cleaning cache" | ||||
|             rlRun "stap $script.stp -v -c \"$PYTHON test.py\" > $script" \ | ||||
|                     0 "Testing with $script.stp" | ||||
|             rlRun "tail -100 $script | col -b" 0 "Inspecting output" | ||||
|             rlRun "grep '/usr/lib.*python.*random.py' '$script'" \ | ||||
|                     0 "Checking for random in the $script output" | ||||
|         rlPhaseEnd | ||||
|     done | ||||
| 
 | ||||
|     rlPhaseStartCleanup | ||||
|         rlRun "popd" | ||||
|         rlRun "rm -r $TmpDir" 0 "Removing tmp directory" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,3 +0,0 @@ | ||||
| import random, time | ||||
| print(random.random()) | ||||
| time.sleep(3) | ||||
| @ -1,19 +0,0 @@ | ||||
| #!/usr/bin/stap -v | ||||
| 
 | ||||
| global fn_calls; | ||||
| 
 | ||||
| probe python.function.entry | ||||
| {  | ||||
|   fn_calls[pid(), filename, funcname, lineno] += 1; | ||||
| } | ||||
| 
 | ||||
| probe timer.ms(1000) { | ||||
|     foreach ([pid, filename, funcname, lineno] in fn_calls- limit 1000) { | ||||
|       if (filename =~ "random") | ||||
|         printf("%6d %80s %6d %30s %6d\n", | ||||
|             pid, filename, lineno, funcname, | ||||
|             fn_calls[pid, filename, funcname, lineno]); | ||||
|     } | ||||
| 
 | ||||
|     delete fn_calls; | ||||
| } | ||||
| @ -1,17 +0,0 @@ | ||||
| summary: second-command-not-captured | ||||
| description: second-command-not-captured | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
|   - ruby | ||||
|   - ruby-libs | ||||
| duration: 48h | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1857749 | ||||
| extra-summary: /tools/systemtap/Regression/second-command-not-captured | ||||
| extra-task: /tools/systemtap/Regression/second-command-not-captured | ||||
| tier: 1 | ||||
| @ -1,9 +0,0 @@ | ||||
| probe ruby.method.entry, ruby.cmethod.entry { | ||||
|   if((classname =~ "Array") && (methodname =~ "push")) | ||||
|       printf("%d -> %s::%s %s:%d\n", tid(), classname, methodname, file, line); | ||||
| } | ||||
| 
 | ||||
| probe ruby.method.return, ruby.cmethod.return { | ||||
|   if((classname =~ "Array") && (methodname =~ "push")) | ||||
|     printf("%d <- %s::%s %s:%d\n", tid(), classname, methodname, file, line); | ||||
| } | ||||
| @ -1,42 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/second-command-not-captured | ||||
| #   Description: second-command-not-captured | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2020 Red Hat, Inc. | ||||
| # | ||||
| #   This program is free software: you can redistribute it and/or | ||||
| #   modify it under the terms of the GNU General Public License as | ||||
| #   published by the Free Software Foundation, either version 2 of | ||||
| #   the License, or (at your option) any later version. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE.  See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public License | ||||
| #   along with this program. If not, see http://www.gnu.org/licenses/. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartTest | ||||
|         rlLog "`which stap`" | ||||
|         rlLog "`stap -V`" | ||||
|         rlRun "stap -v ./ruby-exercise.stp -c ./test.sh -o stap.log" | ||||
|         rlRun "grep 'Array::push' stap.log" || | ||||
|             rlFileSubmit "stap.log" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,7 +0,0 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| set -e | ||||
| 
 | ||||
| ruby -e 'puts "ABC"' | ||||
| ruby -e '[1, 2, 3].push(4)' | ||||
| sleep 10 | ||||
| @ -1,15 +0,0 @@ | ||||
| summary: semantic-error-nfs-proc-read_setup | ||||
| description: semantic-error-nfs-proc-read_setup | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
| duration: 5m | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=884951 | ||||
| extra-summary: /tools/systemtap/Regression/semantic-error-nfs-proc-read_setup | ||||
| extra-task: /tools/systemtap/Regression/semantic-error-nfs-proc-read_setup | ||||
| tier: 1 | ||||
| @ -1,5 +0,0 @@ | ||||
| probe nfs.proc.read_setup{ | ||||
|         println("nfs.proc.read_setup server_ip: ", server_ip); | ||||
|         println("nfs.proc.read_setup prot: ", prot); | ||||
| } | ||||
| 
 | ||||
| @ -1,45 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/semantic-error-nfs-proc-read_setup | ||||
| #   Description: semantic-error-nfs-proc-read_setup | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2013 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartSetup | ||||
|         rlRun "uname -r" | ||||
|         rlRun "rpm -qa | grep ^kernel | sort" | ||||
|         rlRun "rpm -qa | grep systemtap | sort" | ||||
|         rlRun "which stap" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartTest | ||||
|         rlRun "stap -v -p 2 nfs.proc.read_setup.stp" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,15 +0,0 @@ | ||||
| summary: semantic-errors-bz1062076 | ||||
| description: '' | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
| duration: 30m | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1062076 | ||||
| extra-summary: /tools/systemtap/Regression/semantic-errors-bz1062076 | ||||
| extra-task: /tools/systemtap/Regression/semantic-errors-bz1062076 | ||||
| tier: 1 | ||||
| @ -1,41 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/semantic-errors-bz1062076 | ||||
| #   Description: semantic-errors-bz1062076 | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2014 Red Hat, Inc. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartTest | ||||
|         rlLogInfo "Related bugs: Fedora rawhide 6.2.0-0.rc8.57.fc39.x86_64 bz2177196" | ||||
| 	rlLogInfo "Check if we might want to try out prologue search" | ||||
| 	p="" | ||||
| 	stap -vp4 script.stp >& /dev/null || p="-P" | ||||
| 	rlRun "stap $p -vp4 script.stp" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,3 +0,0 @@ | ||||
| probe nfsd.close? { printf("%s\n", filename) } probe never { exit() } | ||||
| probe sunrpc.clnt.clone_client { print(progname) } | ||||
| probe scsi.iodone { printf("%d, %d, %d, %d, %d, %d, %d, %d\n", host_no, channel, lun, dev_id, device_state, data_direction, req_addr, scsi_timer_pending ) } | ||||
| @ -1,18 +0,0 @@ | ||||
| summary: semantic-errors-bz953776 | ||||
| description: '' | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| require: | ||||
| recommend: | ||||
|   - systemtap | ||||
|   - perf | ||||
|   - gcc | ||||
| duration: 60m | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=953776 | ||||
| extra-summary: /tools/systemtap/Regression/semantic-errors-bz953776 | ||||
| extra-task: /tools/systemtap/Regression/semantic-errors-bz953776 | ||||
| tier: 1 | ||||
| @ -1,161 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/semantic-errors-bz953776 | ||||
| #   Description: semantic-errors-bz953776 | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2014 Red Hat, Inc. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| _rhelmajor=$(rpm --eval '%{rhel}') | ||||
| _arch=$(arch) | ||||
| 
 | ||||
| function perf_probe_failed () | ||||
| { | ||||
|     probe=$1 | ||||
|     perf probe -d $probe ||: | ||||
|     perf probe --add $probe | ||||
|     retval=$? | ||||
|     test $retval -eq 0 && \ | ||||
|         rlLogInfo "Running perf probe --add $probe PASSED" || \ | ||||
|         rlLogInfo "Running perf probe --add $probe FAILED" | ||||
|     perf probe -d $probe ||: | ||||
|     if test $retval -eq 0; then | ||||
|         return 1 | ||||
|     else | ||||
|         return 0 | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| function perf_found_none_of () | ||||
| { | ||||
|     ret=0 | ||||
|     for f in "$@"; do | ||||
|         perf_probe_failed $f || ret=1 | ||||
|     done | ||||
|     return $ret | ||||
| } | ||||
| 
 | ||||
| rlJournalStart | ||||
|     # CHECK FOR PERF ---------------------------------------------- | ||||
|     rlPhaseStart FAIL "CHECK FOR PERF" | ||||
|         rlRun "perf --version" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartSetup | ||||
|         rlRun "TMPDIR=$(mktemp -d)" | ||||
|         rlRun "pushd $TMPDIR" | ||||
| 
 | ||||
|         # prepare sigaltstack for case-5 | ||||
|         cat > sigaltstack.c <<EOF | ||||
| #define _XOPEN_SOURCE 700 | ||||
| #include <signal.h> | ||||
| #include <unistd.h> | ||||
| void handler(int sig) | ||||
| { | ||||
|     write(2, "stack overflow\n", 15); | ||||
|     _exit(1); | ||||
| } | ||||
| unsigned infinite_recursion(unsigned x) { | ||||
|     return infinite_recursion(x)+1; | ||||
| } | ||||
| int main() | ||||
| { | ||||
|     static char stack[SIGSTKSZ]; | ||||
|     stack_t ss = { | ||||
|         .ss_size = SIGSTKSZ, | ||||
|         .ss_sp = stack, | ||||
|     }; | ||||
|     struct sigaction sa = { | ||||
|         .sa_handler = handler, | ||||
|         .sa_flags = SA_ONSTACK | ||||
|     }; | ||||
|     sigaltstack(&ss, 0); | ||||
|     sigfillset(&sa.sa_mask); | ||||
|     sigaction(SIGSEGV, &sa, 0); | ||||
|     infinite_recursion(0); | ||||
| } | ||||
| EOF | ||||
|         rlRun "gcc -o sigaltstack sigaltstack.c" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     p="" | ||||
|     uname -m | grep -q ^ppc && p="-P" | ||||
|     p="$p -E 'probe timer.s(900){error(\"probe timeout after 15 minutes\")}'" | ||||
| 
 | ||||
|     export p | ||||
| 
 | ||||
|     rlPhaseStart FAIL 'case-1' | ||||
|         rlRun "stap $p -v -e 'probe syscall.close { println(fd); exit(); }'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # After fixing bz1657681, this constraint can be removed | ||||
|     if [[ $(rpm --eval %rhel) -le 7 ]]; then | ||||
|     if arch | grep -vq ppc; then | ||||
|         rlPhaseStart FAIL 'case-2' | ||||
|             # https://bugzilla.redhat.com/show_bug.cgi?id=1657681 | ||||
|             rlRun "stap $p -v -e 'probe socket.close { print(protocol); print(family); print(state); print(flags); print(type); exit() }'"  | ||||
|         rlPhaseEnd | ||||
|     fi | ||||
|     fi | ||||
| 
 | ||||
|     ( | ||||
|         test $_rhelmajor -le 8 && exit | ||||
|         perf_found_none_of "sys_read" "__arm64_sys_read" "do_syscall_64" && exit | ||||
|         test $_rhelmajor -ge 9 && test $_arch = ppc64le -o $_arch = aarch64 && p="$p -p4" # no hits | ||||
|         rlPhaseStart FAIL 'case-3' | ||||
|             rlRun "stap $p -v -e 'probe kernel.function(\"sys_read\").return!, kernel.function(\"__arm64_sys_read\").return!, kernel.function(\"do_syscall_64\").return { println(probefunc()) exit()}'" | ||||
|         rlPhaseEnd | ||||
|     ) | ||||
| 
 | ||||
|     rlPhaseStart FAIL 'case-4' | ||||
|         rlRun "stap $p -v -e 'probe syscall.open, syscall.openat { if (\"open\" == execname()) println(argstr); exit() }'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStart FAIL 'case-5' | ||||
|         rlRun "stap $p -ve 'probe syscall.sigaltstack { println(name); exit() }' -c './sigaltstack || true'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # gcc 8.2.1->8.3.1 change related to systemtap debuginfo regression in rhel-8.1.0, kernel -84 -> -85 | ||||
|     # https://bugzilla.redhat.com/show_bug.cgi?id=1709831#c17 | ||||
|     # (  grep -F RESULT: /tmp/typescript  | sort -u  ) | ||||
|     rlPhaseStart FAIL 'case-6' | ||||
|         rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.shutdown_client { println(servername) }'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStart FAIL 'case-7' | ||||
|         rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.bind_new_program { println(servername) }'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStart FAIL 'case-8' | ||||
|         rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.bind_new_program { println(servername, vers) }'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartCleanup | ||||
|         rlRun "popd" | ||||
|         rlRun "rm -r $TMPDIR" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,15 +0,0 @@ | ||||
| summary: Small tests | ||||
| description: '' | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
| - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
| - systemtap | ||||
| - systemtap-testsuite | ||||
| - perf | ||||
| duration: 100m | ||||
| extra-summary: /tools/systemtap/Regression/small-tests | ||||
| extra-task: /tools/systemtap/Regression/small-tests | ||||
| tier: 1 | ||||
| @ -1,215 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/small-tests | ||||
| #   Description: suns small tests | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2014 Red Hat, Inc. | ||||
| # | ||||
| #   This program is free software: you can redistribute it and/or | ||||
| #   modify it under the terms of the GNU General Public License as | ||||
| #   published by the Free Software Foundation, either version 2 of | ||||
| #   the License, or (at your option) any later version. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE.  See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public License | ||||
| #   along with this program. If not, see http://www.gnu.org/licenses/. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| . /etc/os-release ||: | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| _arch=$(arch) | ||||
| 
 | ||||
| function perf_probe_failed () | ||||
| { | ||||
|     probe=$1 | ||||
|     perf probe -d $probe ||: | ||||
|     perf probe --add $probe | ||||
|     retval=$? | ||||
|     test $retval -eq 0 && \ | ||||
|         rlLogInfo "Running perf probe --add $probe PASSED" || \ | ||||
|         rlLogInfo "Running perf probe --add $probe FAILED" | ||||
|     perf probe -d $probe ||: | ||||
|     if test $retval -eq 0; then | ||||
|         return 1 | ||||
|     else | ||||
|         return 0 | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| function perf_found_none_of () | ||||
| { | ||||
|     ret=0 | ||||
|     for f in "$@"; do | ||||
|         perf_probe_failed $f || ret=1 | ||||
|     done | ||||
|     return $ret | ||||
| } | ||||
| 
 | ||||
| rlJournalStart | ||||
|     # Check the environment --------------------------------------- | ||||
|     rlPhaseStart WARN "Check the environment" | ||||
|         rlRun "rpm -qa | egrep '^(kernel|systemtap|perf)' | sort" | ||||
|         rlRun "uname -r" | ||||
|         rlRun "perf --version" | ||||
|         rlLogInfo "DEBUGINFOD_URLS=$DEBUGINFOD_URLS" | ||||
|         rlLogInfo "DEBUGINFOD_TIMEOUT=$DEBUGINFOD_TIMEOUT" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # bz1162939 --------------------------------------------------- | ||||
|     ( | ||||
|         perf_probe_failed "vfs_read" && exit | ||||
|         rlPhaseStart FAIL "test 1 bz1162939" | ||||
|             rlRun "stap -e 'probe vfs.read{println(\"hit\"); exit()}' -c 'head -1 /etc/hosts' | grep -F hit" | ||||
|         rlPhaseEnd | ||||
|     ) | ||||
|     # bz1119335 --------------------------------------------------- | ||||
|     rlPhaseStart FAIL "test 2 bz1119335" | ||||
|         rlRun "man 8 staprun | grep 'STAP_FIPS_OVERRIDE'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # bz1153673 --------------------------------------------------- | ||||
|     rlPhaseStart FAIL "test 3 bz1153673" | ||||
|         _tested=0 | ||||
|         for _pkg in $( rpm -qa | grep systemtap-testsuite ); do | ||||
|             for _tc in $( rpm -ql $_pkg | grep 'alias_suffixes.stp$' ); do | ||||
|                 stap -p4 $_tc && p="" || p="-P" | ||||
|                 rlRun "stap $p -p4 $_tc" | ||||
|                 _tested=1 | ||||
|             done | ||||
|         done | ||||
|         [[ $_tested -eq 0 ]] && rlFail "Not tested" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # bz1160837 --------------------------------------------------- | ||||
|     ( | ||||
|         perf_probe_failed "sd_init_command" && exit | ||||
|         rlPhaseStart FAIL "test 4 bz1160837" | ||||
|             _tested=0 | ||||
|             _prologue_search='' | ||||
|             for _pkg in $( rpm -qa | grep systemtap-testsuite ); do | ||||
|                 for _tc in $( rpm -ql $_pkg | grep 'iostat-scsi.stp$' ); do | ||||
|                     test $_arch = ppc64le && _prologue_search='-P' | ||||
|                     rlRun "stap -g $_prologue_search $_tc 1 -c 'sleep 1'" | ||||
|                     _tested=1 | ||||
|                 done | ||||
|             done | ||||
|             [[ $_tested -eq 0 ]] && rlFail "Not tested" | ||||
|         rlPhaseEnd | ||||
|     ) | ||||
| 
 | ||||
|     # bz1203808 --------------------------------------------------- | ||||
|     rlPhaseStart FAIL "test 5 bz1203808" | ||||
|             _tested=0 | ||||
|             for _pkg in $( rpm -qa | grep systemtap-testsuite ); do | ||||
|                 for _tc in $( rpm -ql $_pkg | grep 'vfs-all-probes.stp$' ); do | ||||
|                     stap -wp4 $_tc && p="" || p="-P" | ||||
|                     rlRun "stap $p -w -p4  $_tc" | ||||
|                     _tested=1 | ||||
|                 done | ||||
|             done | ||||
|             [[ $_tested -eq 0 ]] && rlFail "Not tested" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # bz1269062 --------------------------------------------------- | ||||
|     rlPhaseStart FAIL "test 6 bz1269062" | ||||
|         rlRun "stap -c sync --suppress-handler-errors -e 'probe ioscheduler.elv_add_request{println(elevator_name) exit()}'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # bz528792 --------------------------------------------------- | ||||
|     ( | ||||
|         # Not relevant on rhel-9 because of kernel commit cad6967ac10843a70842cd39c7b53412901dd21f that removes | ||||
|         # _do_fork() and replaces it with new kernel_clone() | ||||
|         perf_found_none_of "_do_fork" "do_fork" "sys_clone" && exit | ||||
| 
 | ||||
|         rlPhaseStart FAIL "test 7 bz528792" | ||||
|             if test $_arch = ppc64le; then | ||||
|                 # https://bugzilla.redhat.com/show_bug.cgi?id=1652740#c4  - We can not reach any function parameters, namely $clone_flags | ||||
|                 rlRun "stap -ve 'probe kernel.function(\"_do_fork\")!, kernel.function(\"do_fork\")!, kernel.function(\"sys_clone\") { println(pp()) exit() }' -c \"bash -c 'while sleep 1; do /bin/true; done'\"" | ||||
|             else | ||||
|                 rlRun "stap -ve 'probe kernel.function(\"_do_fork\")!, kernel.function(\"do_fork\")!, kernel.function(\"sys_clone\") { printf(\"%x\n\",\$clone_flags) exit() }' -c \"bash -c 'while sleep 1; do /bin/true; done'\"" | ||||
|             fi | ||||
|         rlPhaseEnd | ||||
|     ) | ||||
| 
 | ||||
|     # bz1890702 --------------------------------------------------- | ||||
|     ( | ||||
|         perf_probe_failed "vfs_open" && exit | ||||
|         rlPhaseStart FAIL "test 8 bz1890702" | ||||
|             rlRun "stap -g --suppress-time-limits -e 'probe kernel.function(\"vfs_open\") { printf(\"%s(path: %s)\", ppfunc(), \$path\$) ; exit() }' -c 'cat /etc/hosts'" | ||||
|         rlPhaseEnd | ||||
|     ) | ||||
| 
 | ||||
|     # bz1904216 --------------------------------------------------- | ||||
|     rlPhaseStart FAIL "test 9 bz1904216" | ||||
|         rlRun "stap -p4 -DSTP_NO_OVERLOAD -t -c 'sleep 0.25' -e 'probe kernel.trace(\"bcache:bcache_btree_set_root\") { if (pid() == 0) printf(\"probe hit\n\"); }'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # bz1940804 --------------------------------------------------- | ||||
|     rlPhaseStart FAIL "test 10 bz1940804" | ||||
|         rlRun "stap -e 'probe process(\"/bin/bash\").function(\"main\") {println(pn()) }' -c '/bin/bash --help'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # bz1940945 --------------------------------------------------- | ||||
|     rlPhaseStart FAIL "test 11 bz1940945" | ||||
|         rlRun "stap -c sync --suppress-handler-errors -e 'probe ioscheduler.elv_add_request{println(elevator_name) exit()}'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # bz1940761 --------------------------------------------------- | ||||
|     rlPhaseStart FAIL "test 12 bz1940761" | ||||
|         rlRun "stap -v /usr/share/systemtap/examples/process/strace.stp -w -c \"echo hello world\"" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # broken-tapset-print-ubacktrace ------------------------------ | ||||
|     rlPhaseStart FAIL "test 13 broken-tapset-print-ubacktrace" | ||||
|         rlRun "stap -p4 -e 'probe begin { print_ubacktrace() }'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # Protected from elision -------------------------------------- | ||||
|     rlPhaseStart FAIL "test 14 protected from elision" | ||||
|         rlRun "stap -v -e 'probe nfs.fop.fsync {} probe begin {print(\"Protected from elision\")}' -c true |\ | ||||
|                grep -F 'Protected from elision'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # bz544207 ---------------------------------------------------- | ||||
|     rlPhaseStart FAIL "test 15 bz544207" | ||||
|         extra_opts="" | ||||
|         stap -vp4 -e 'probe nfs.proc.write_setup{ println(how) }' || extra_opts="-P" | ||||
|         rlRun "stap $extra_opts -vp4 -e 'probe nfs.proc.write_setup{ println(how) }'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # bz544209 ---------------------------------------------------- | ||||
|     rlPhaseStart FAIL "test 16 bz544209" | ||||
|         rlRun "stap -vp2 -e 'probe sunrpc.clnt.create_client.return {}'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # bz592830 ---------------------------------------------------- | ||||
|     rlPhaseStart FAIL "test 17 bz592830" | ||||
|         rlRun "stap -vp2 -e 'probe signal.check_ignored.return {println(1)}'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # caller-does-not-work ---------------------------------------- | ||||
|     rlPhaseStart FAIL "test 18 caller-does-not-work" | ||||
|         rlRun "stap -ve 'probe kernel.function(\"vfs_read\") \ | ||||
|                { printf(\"%s\n\", caller()); exit() }' 2>&1 | tee strace.log" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     # missing-rpc-tracepoints ------------------------------------- | ||||
|     rlPhaseStart FAIL "test 19 missing-rpc-tracepoints" | ||||
|         rlRun "stap -L  'kernel.trace(\"rpc*\")'" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,15 +0,0 @@ | ||||
| summary: Test for BZ#1566422 (stap ERROR Build-id mismatch with) | ||||
| description: '' | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
| duration: 48h | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1566422 | ||||
| extra-summary: /tools/systemtap/Regression/stap-ERROR-Build-id-mismatch-with | ||||
| extra-task: /tools/systemtap/Regression/stap-ERROR-Build-id-mismatch-with | ||||
| tier: 1 | ||||
| @ -1,43 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/stap-ERROR-Build-id-mismatch-with | ||||
| #   Description: Test for BZ#1566422 (stap ERROR Build-id mismatch with) | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2018 Red Hat, Inc. | ||||
| # | ||||
| #   This program is free software: you can redistribute it and/or | ||||
| #   modify it under the terms of the GNU General Public License as | ||||
| #   published by the Free Software Foundation, either version 2 of | ||||
| #   the License, or (at your option) any later version. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE.  See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public License | ||||
| #   along with this program. If not, see http://www.gnu.org/licenses/. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartTest | ||||
| 	if arch | grep -q s390x; then | ||||
| 	    rlLogWarning "Test not relevant" | ||||
| 	else | ||||
| 	    rlRun "sudo modprobe igb" | ||||
| 	    rlRun "stap -e 'probe module(\"igb\").function(\"igb_*_module\") { printf(\"%s: %s.\n\", ctime(gettimeofday_s()), ppfunc()); }' -c \"bash -c 'sudo rmmod igb; sudo modprobe igb'\"" | ||||
| 	fi | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,16 +0,0 @@ | ||||
| summary: Test for BZ#1020207 (stapio possible circular locking dependency) | ||||
| description: '' | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| require: | ||||
| recommend: | ||||
|   - systemtap | ||||
| duration: 4h | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1020207 | ||||
| extra-summary: /tools/systemtap/Regression/stapio-possible-circular-locking-dependency | ||||
| extra-task: /tools/systemtap/Regression/stapio-possible-circular-locking-dependency | ||||
| tier: 1 | ||||
| @ -1,74 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/stapio-possible-circular-locking-dependency | ||||
| #   Description: Test for BZ#1020207 (stapio possible circular locking dependency) | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2014 Red Hat, Inc. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartSetup | ||||
|         rlRun "TMPDIR=\$(mktemp -d)" | ||||
|         rlRun "pushd $TMPDIR" | ||||
|         cat > test5.stap <<EOF | ||||
| global dummy | ||||
| probe end { printf("dummy: %d\n", dummy); } | ||||
| probe kernel.trace("__extent_writepage") { dummy = dummy + 1; } | ||||
| EOF | ||||
| 
 | ||||
|         cat > reproduce.sh <<EOF | ||||
| #!/bin/bash | ||||
| 
 | ||||
| i=0 | ||||
| while [ True ]; do | ||||
|     i=\$((i+1)) | ||||
|     echo "Attempt \$i" | ||||
|     echo 3 > /proc/sys/vm/drop_caches  | ||||
|     stap test5.stap -c "sleep 2" | ||||
|     if dmesg 2>&1 | grep "possible circular locking dependency detected"; then | ||||
|         dmesg  | ||||
|         exit 1 | ||||
|     fi | ||||
| done | ||||
| exit 0 | ||||
| EOF | ||||
| 
 | ||||
|         rlRun "chmod +x reproduce.sh" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartTest | ||||
|         TO=180 # timeout seconds | ||||
|         # when timeout TO is hit, exitcode 124 is returned | ||||
|         rlRun "timeout $TO ./reproduce.sh" 0,124 | ||||
|         # if issue doesn't get reproduced within TO, the test will pass | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartCleanup | ||||
|         rlRun "popd" | ||||
|         rlRun "rm -r $TMPDIR" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,15 +0,0 @@ | ||||
| summary: suspicious-RCU-usage | ||||
| description: '' | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
| duration: 48h | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1788662 | ||||
| extra-summary: /tools/systemtap/Regression/suspicious-RCU-usage | ||||
| extra-task: /tools/systemtap/Regression/suspicious-RCU-usage | ||||
| tier: 1 | ||||
| @ -1,49 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/suspicious-RCU-usage | ||||
| #   Description: suspicious-RCU-usage | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2020 Red Hat, Inc. | ||||
| # | ||||
| #   This program is free software: you can redistribute it and/or | ||||
| #   modify it under the terms of the GNU General Public License as | ||||
| #   published by the Free Software Foundation, either version 2 of | ||||
| #   the License, or (at your option) any later version. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE.  See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public License | ||||
| #   along with this program. If not, see http://www.gnu.org/licenses/. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartTest | ||||
|         dmesg1=$(mktemp) | ||||
|         dmesg2=$(mktemp) | ||||
|         diff=$(mktemp) | ||||
|         dmesg > $dmesg1 | ||||
|         rlRun "stap -e 'probe kernel.trace(\"*\"){}' -t -u -v -c '/bin/true'" | ||||
|         sleep 10 | ||||
|         dmesg > $dmesg2 | ||||
|         rlRun "diff $dmesg1 $dmesg2 |& tee $diff" | ||||
|         # Reproduced on hpe-moonshot-02-c02.hpe1.lab.eng.bos.redhat.com | ||||
|         # using kernel-4.18.0-167.el8.aarch64+debug and systemtap-4.2-1.el8.aarch64. | ||||
|         rlRun "grep -F -i rcu $diff" 1 | ||||
|         rm $dmesg{1,2} $diff | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,16 +0,0 @@ | ||||
| summary: Test for BZ#1004059 (syscall_get_arguments() returning wrong value) | ||||
| description: '' | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
|   - perf | ||||
| duration: 30m | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1004059 | ||||
| extra-summary: /tools/systemtap/Regression/syscall-get-arguments-returning-wrong-value | ||||
| extra-task: /tools/systemtap/Regression/syscall-get-arguments-returning-wrong-value | ||||
| tier: 1 | ||||
| @ -1,76 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/syscall-get-arguments-returning-wrong-value | ||||
| #   Description: Test for BZ#1004059 (syscall_get_arguments() returning wrong value) | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2014 Red Hat, Inc. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| 
 | ||||
| ASMLINKAGE=''; | ||||
| uname -m | egrep 'i[36]86' && \ | ||||
|     ASMLINKAGE='asmlinkage();' | ||||
| 
 | ||||
| SCRIPT=$( mktemp ) | ||||
| cat > $SCRIPT <<-EOF | ||||
| probe kernel.function("sys_open") { | ||||
|         $ASMLINKAGE | ||||
|         if (\$filename == pointer_arg(1)) { | ||||
|                 exit(); | ||||
|         } else { | ||||
|                 error("Possible manifestation of rhbz1004059."); | ||||
|         } | ||||
| } | ||||
| EOF | ||||
| 
 | ||||
| function perf_probe_failed () | ||||
| { | ||||
|     probe=$1 | ||||
|     perf probe -d $probe ||: | ||||
|     perf probe --add $probe | ||||
|     retval=$? | ||||
|     test $retval -eq 0 && \ | ||||
|         rlLogInfo "Running perf probe --add $probe PASSED" || \ | ||||
|         rlLogInfo "Running perf probe --add $probe FAILED" | ||||
|     perf probe -d $probe ||: | ||||
|     if test $retval -eq 0; then | ||||
|         return 1 | ||||
|     else | ||||
|         return 0 | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartTest | ||||
|         ( | ||||
|             perf_probe_failed "sys_open" && exit | ||||
| 	    stap -p4 $SCRIPT >&/dev/null && p="" || p='-P' | ||||
|             rlRun "stap $p -v $SCRIPT -c 'cat /dev/null'" | ||||
|         ) | ||||
|         rm $SCRIPT | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,15 +0,0 @@ | ||||
| summary: task-cwd-path-results-in-an-in-kernel-memory-leak | ||||
| description: '' | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
| duration: 48h | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1412691 | ||||
| extra-summary: /tools/systemtap/Regression/task-cwd-path-results-in-an-in-kernel-memory-leak | ||||
| extra-task: /tools/systemtap/Regression/task-cwd-path-results-in-an-in-kernel-memory-leak | ||||
| tier: 1 | ||||
| @ -1,10 +0,0 @@ | ||||
| probe kprocess.exit | ||||
| { | ||||
|     path=fullpath_struct_path(task_cwd_path(task_current())) | ||||
|     printf("%s\n", path) | ||||
| } | ||||
| 
 | ||||
| #probe timer.s(240) | ||||
| #{ | ||||
| #    exit() | ||||
| #} | ||||
| @ -1,46 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/task-cwd-path-results-in-an-in-kernel-memory-leak | ||||
| #   Description: task-cwd-path-results-in-an-in-kernel-memory-leak | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2017 Red Hat, Inc. | ||||
| # | ||||
| #   This program is free software: you can redistribute it and/or | ||||
| #   modify it under the terms of the GNU General Public License as | ||||
| #   published by the Free Software Foundation, either version 2 of | ||||
| #   the License, or (at your option) any later version. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE.  See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public License | ||||
| #   along with this program. If not, see http://www.gnu.org/licenses/. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartTest | ||||
|         EXTRA="" | ||||
|         arch | grep -F ppc64le && EXTRA='-P' | ||||
| 
 | ||||
|         # We rely on (and check for) units to be kB | ||||
|         rlRun "test \"$( awk '/KernelStack/ {print $3}' /proc/meminfo )\" == \"kB\"" | ||||
|         rlRun "STACK1=$(awk '/KernelStack/ {print $2}' /proc/meminfo)" | ||||
|         rlRun "stap $EXTRA -w reproducer.stp -c 'bash ./trigger.sh' -o /dev/null" | ||||
|         rlRun "STACK2=$(awk '/KernelStack/ {print $2}' /proc/meminfo)" | ||||
|         rlRun "test $((STACK2 - 1000)) -le $STACK1" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,7 +0,0 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| for i in `seq 1 2000`; do | ||||
|     ls / > /dev/null | ||||
| done | ||||
| 
 | ||||
| 
 | ||||
| @ -1,15 +0,0 @@ | ||||
| summary: task-exe-file-results-in-an-file-struct-leak | ||||
| description: '' | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
| duration: 48h | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1430861 | ||||
| extra-summary: /tools/systemtap/Regression/task-exe-file-results-in-an-file-struct-leak | ||||
| extra-task: /tools/systemtap/Regression/task-exe-file-results-in-an-file-struct-leak | ||||
| tier: 1 | ||||
| @ -1,6 +0,0 @@ | ||||
| probe kprocess.exit | ||||
| { | ||||
|     t=task_current() | ||||
|     path=fullpath_struct_file(t, task_exe_file(t)) | ||||
|     printf("%s\n", path) | ||||
| } | ||||
| @ -1,5 +0,0 @@ | ||||
| probe kprocess.exit | ||||
| { | ||||
|     path=fullpath_struct_path(task_cwd_path(task_current())) | ||||
|     printf("%s\n", path) | ||||
| } | ||||
| @ -1,45 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/task-exe-file-results-in-an-file-struct-leak | ||||
| #   Description: task-exe-file-results-in-an-file-struct-leak | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2017 Red Hat, Inc. | ||||
| # | ||||
| #   This program is free software: you can redistribute it and/or | ||||
| #   modify it under the terms of the GNU General Public License as | ||||
| #   published by the Free Software Foundation, either version 2 of | ||||
| #   the License, or (at your option) any later version. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE.  See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public License | ||||
| #   along with this program. If not, see http://www.gnu.org/licenses/. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| PACKAGE="systemtap" | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartTest | ||||
|         EXTRA='' | ||||
|         arch | grep -F ppc64le && EXTRA="-P" | ||||
|         rlRun "FILE_NR1=$(awk '{print $1}' /proc/sys/fs/file-nr)" | ||||
|         REPRODUCER=reproducer.stp | ||||
|         rlRun "stap -g -w $EXTRA --dump-functions | grep -F task_exe_file || REPRODUCER=reproducer2.stp" | ||||
|         rlRun "stap -w $EXTRA $REPRODUCER -c 'bash ./trigger.sh' -o /dev/null" | ||||
|         rlRun "FILE_NR2=$(awk '{print $1}' /proc/sys/fs/file-nr)" | ||||
|         rlRun "test $((FILE_NR2 - 1000)) -le $FILE_NR1" | ||||
|     rlPhaseEnd | ||||
| rlJournalPrintText | ||||
| rlJournalEnd | ||||
| @ -1,7 +0,0 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| for i in `seq 1 100000`; do | ||||
|     /bin/true | ||||
| done | ||||
| 
 | ||||
| 
 | ||||
| @ -1,17 +0,0 @@ | ||||
| summary: Test for BZ#876848 (utrace taskfinder misses events when main thread) | ||||
| description: '' | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
|   - gcc-c++ | ||||
|   - kernel-debuginfo | ||||
| duration: 15m | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=876848 | ||||
| extra-summary: /tools/systemtap/Regression/utrace-taskfinder-misses-events | ||||
| extra-task: /tools/systemtap/Regression/utrace-taskfinder-misses-events | ||||
| tier: 1 | ||||
| @ -1,35 +0,0 @@ | ||||
| #include <pthread.h> | ||||
| #include <stdio.h> | ||||
| #include <unistd.h> | ||||
| 
 | ||||
| int square (int x) | ||||
| { | ||||
|   return (x * x); | ||||
| } | ||||
| 
 | ||||
| void *my_thread(void *arg) | ||||
| { | ||||
|     int x = 0; | ||||
|     int sqr; | ||||
| 
 | ||||
|     while (true) { | ||||
|         sqr = square(5); | ||||
|         sleep(1); | ||||
|     } | ||||
|     return NULL; | ||||
| } | ||||
| 
 | ||||
| int main() | ||||
| { | ||||
|     pthread_t thread_id; | ||||
|     if (pthread_create(&thread_id, NULL, my_thread, NULL)) { | ||||
|         fprintf(stderr, "Error creating thread\n"); | ||||
|         return 1; | ||||
|     } | ||||
|     if (pthread_join(thread_id, NULL)) { | ||||
|          fprintf(stderr, "Error joining thread\n"); | ||||
|          return 2; | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
| @ -1,28 +0,0 @@ | ||||
| #! /usr/bin/env stap | ||||
| 
 | ||||
| probe timer.sec(180) | ||||
| { | ||||
|         printf("EXITONTIMEOUT\n"); | ||||
|         exit() | ||||
| } | ||||
| 
 | ||||
| probe process("./pthreadtestcase").function("square")  | ||||
| { | ||||
|         printf("USERSPACEFUNCTIONENTER\n") | ||||
| 	printf("=> %s(%s)\n", probefunc(), $$parms) | ||||
| } | ||||
| 
 | ||||
| probe process("./pthreadtestcase").function("square").return | ||||
| {  | ||||
|         printf("USERSPACEFUNCTIONLEAVE\n") | ||||
| 	printf("<= %s\n", probefunc()) | ||||
|         exit() | ||||
| } | ||||
| 
 | ||||
| probe process("./pthreadtestcase").statement("*@pthreadtestcase.cpp:7") | ||||
| {  | ||||
|         printf("USERSPACEREACHEDLINE\n") | ||||
| 	#printf("   x=%d, sqr=%d\n\n", $x, $sqr) | ||||
| 	printf("   x=%d\n\n", $x) | ||||
| } | ||||
| 
 | ||||
| @ -1,77 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   runtest.sh of /tools/systemtap/Regression/utrace-taskfinder-misses-events | ||||
| #   Description: Test for BZ#876848 (utrace taskfinder misses events when main thread) | ||||
| #   Author: Martin Cermak <mcermak@redhat.com> | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| # | ||||
| #   Copyright (c) 2013 Red Hat, Inc. All rights reserved. | ||||
| # | ||||
| #   This copyrighted material is made available to anyone wishing | ||||
| #   to use, modify, copy, or redistribute it subject to the terms | ||||
| #   and conditions of the GNU General Public License version 2. | ||||
| # | ||||
| #   This program is distributed in the hope that it will be | ||||
| #   useful, but WITHOUT ANY WARRANTY; without even the implied | ||||
| #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||||
| #   PURPOSE. See the GNU General Public License for more details. | ||||
| # | ||||
| #   You should have received a copy of the GNU General Public | ||||
| #   License along with this program; if not, write to the Free | ||||
| #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
| #   Boston, MA 02110-1301, USA. | ||||
| # | ||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| # Include Beaker environment | ||||
| . /usr/share/beakerlib/beakerlib.sh || exit 1 | ||||
| 
 | ||||
| # if this testcase caused kernel crash and reboot, don't try to rerun it | ||||
| [[ $REBOOTCOUNT -gt 0 ]] && exit 1 | ||||
| 
 | ||||
| rlJournalStart | ||||
|     rlPhaseStartSetup | ||||
|         rlRun "TMPDIR=\$(mktemp -d)" | ||||
|         rlRun "cp pthreadtestcase.cpp pthreadtestcase.stp $TMPDIR" | ||||
|         rlRun "pushd $TMPDIR" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStart FAIL "Systemtap sanity check" | ||||
|         rlRun "stap --version" | ||||
|         rlRun "stap -v -e 'probe kernel.function(\"vfs_read\"){ exit() }'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStart FAIL "Prepare pthreadtestcase, run it" | ||||
|         rlRun "g++ -g -o pthreadtestcase  pthreadtestcase.cpp -lpthread" | ||||
|         killall -9 pthreadtestcase &> /dev/null | ||||
|         ./pthreadtestcase & | ||||
|         MYPID=$! | ||||
|         sleep 3 | ||||
|         rlRun "ps | grep '$MYPID.*pthreadtestcase$'" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartTest | ||||
|         rlRun "stap -v pthreadtestcase.stp 2>&1 | tee mylog.txt" | ||||
|         rlRun "grep EXITONTIMEOUT mylog.txt" 1 | ||||
|         for token in USERSPACEFUNCTIONENTER \ | ||||
|                      USERSPACEREACHEDLINE \ | ||||
|                      USERSPACEFUNCTIONLEAVE | ||||
|         do | ||||
|             rlRun "grep ^$token$ mylog.txt" 0 | ||||
|         done | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStart FAIL "Shut pthreadtestcase down" | ||||
|         # pthreadtestcase should still be running | ||||
|         # so killing it should certsinly succeed | ||||
|         rlRun "kill $MYPID" | ||||
|     rlPhaseEnd | ||||
| 
 | ||||
|     rlPhaseStartCleanup | ||||
|         rlRun "popd" | ||||
|         rlRun "rm -r $TMPDIR" | ||||
|     rlPhaseEnd | ||||
| rlJournalEnd | ||||
| @ -1,15 +0,0 @@ | ||||
| summary: wrong-data-returned-by-nfs-commit-done | ||||
| description: '' | ||||
| contact: Martin Cermak <mcermak@redhat.com> | ||||
| component: | ||||
|   - systemtap | ||||
| test: ./runtest.sh | ||||
| framework: beakerlib | ||||
| recommend: | ||||
|   - systemtap | ||||
| duration: 2h | ||||
| link: | ||||
|   - relates: https://bugzilla.redhat.com/show_bug.cgi?id=920444 | ||||
| extra-summary: /tools/systemtap/Regression/wrong-data-returned-by-nfs-commit-done | ||||
| extra-task: /tools/systemtap/Regression/wrong-data-returned-by-nfs-commit-done | ||||
| tier: 1 | ||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue
	
	Block a user