summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Sommerseth <davids@redhat.com>2013-05-02 21:13:25 +0200
committerDavid Sommerseth <davids@redhat.com>2013-05-02 21:13:25 +0200
commitb19b3048de0075e08069b3f9e91776a3542f959b (patch)
tree9a51848f1f8f6ad87b68863b8d7df493683ae5fa
parent01cf6ef60920c50df0de789f122a8f0a8b238fa2 (diff)
downloadrteval-b19b3048de0075e08069b3f9e91776a3542f959b.tar.gz
rteval-b19b3048de0075e08069b3f9e91776a3542f959b.tar.xz
rteval-b19b3048de0075e08069b3f9e91776a3542f959b.zip
cyclictest: Added trace-cmd extract when breaktrace aborts exection
This adds a dependency of the trace-cmd package as well, but it will improve the ability to better understand what happened when this the threshold broke. Signed-off-by: David Sommerseth <davids@redhat.com>
-rw-r--r--rteval.spec1
-rw-r--r--rteval/modules/measurement/cyclictest.py10
2 files changed, 11 insertions, 0 deletions
diff --git a/rteval.spec b/rteval.spec
index da8ab65..4d35c17 100644
--- a/rteval.spec
+++ b/rteval.spec
@@ -19,6 +19,7 @@ Requires: python-dmidecode >= 3.10
Requires: rt-tests >= 0.65
Requires: rteval-loads >= 1.2
Requires: rteval-common => %{version}-%{release}
+Requires: trace-cmd
BuildArch: noarch
Obsoletes: rteval <= 1.7
diff --git a/rteval/modules/measurement/cyclictest.py b/rteval/modules/measurement/cyclictest.py
index 1d6acdc..77acd22 100644
--- a/rteval/modules/measurement/cyclictest.py
+++ b/rteval/modules/measurement/cyclictest.py
@@ -317,6 +317,16 @@ class Cyclictest(rtevalModulePrototype):
os.mkdir(cyclicdir)
shutil.copyfile(trace, os.path.join(cyclicdir, 'breaktrace.log'))
+ # Call trace-cmd extract to save an exportable binary blob with trace data
+ # FIXME: For some odd reason, running trace-cmd outside a shell makes it fail on my test system
+ tracecmd = ['sh', '-c', 'trace-cmd extract -o %s' % os.path.join(cyclicdir,'trace.dat')]
+ self._log(Log.DEBUG, 'Executing: %s' % ' '.join(tracecmd))
+ tracecmdproc = subprocess.Popen(tracecmd,
+ stdout=self.__nullfp,
+ stderr=self.__nullfp,
+ stdin=self.__nullfp)
+ tracecmdproc.wait()
+
self._setFinished()
self.__started = False
os.close(self.__nullfp)