Tests: clean-up and pythonify test framework
authorAntoine Busque <abusque@efficios.com>
Tue, 16 Feb 2016 17:50:49 +0000 (12:50 -0500)
committerAntoine Busque <abusque@efficios.com>
Wed, 24 Feb 2016 23:22:55 +0000 (18:22 -0500)
Signed-off-by: Antoine Busque <abusque@efficios.com>
tests/TraceTest.py [changed mode: 0755->0644]
tests/test_cputop.py [changed mode: 0755->0644]
tests/test_io.py [changed mode: 0755->0644]
tests/test_irq.py [changed mode: 0755->0644]

old mode 100755 (executable)
new mode 100644 (file)
index 365a22f..8cbf043
@@ -1,5 +1,3 @@
-#!/usr/bin/env python3
-
 import sys
 import os
 import shutil
@@ -12,7 +10,7 @@ from babeltrace import CTFWriter, CTFStringEncoding
 class TraceTest():
     def __init__(self, delete_trace=True):
         self.delete_trace = delete_trace
-        self.trace_root = tempfile.mkdtemp()
+        self._trace_root = tempfile.mkdtemp()
         self.trace_path = os.path.join(self.trace_root, "kernel")
         self.create_writer()
         self.create_stream_class()
@@ -24,8 +22,9 @@ class TraceTest():
         if self.delete_trace:
             self.rm_trace()
 
-    def get_trace_root(self):
-        return self.trace_root
+    @property
+    def trace_root(self):
+        return self._trace_root
 
     def rm_trace(self):
         shutil.rmtree(self.trace_root)
@@ -283,9 +282,8 @@ class TraceTest():
         else:
             string = "%s" % (string + "\0" * (16 - len(string)))
 
-        for i in range(len(string)):
-            a = event.field(i)
-            a.value = ord(string[i])
+        for i, char in enumerate(string):
+            event.field(i).value = ord(char)
 
     def set_int(self, event, value):
         event.value = value
@@ -336,35 +334,35 @@ class TraceTest():
         self.stream.flush()
 
     def write_syscall_write(self, time_ms, cpu_id, delay, fd, buf, count, ret):
-        entry = CTFWriter.Event(self.syscall_entry_write)
+        event_entry = CTFWriter.Event(self.syscall_entry_write)
         self.clock.time = time_ms * 1000000
-        self.set_int(entry.payload("_cpu_id"), cpu_id)
-        self.set_int(entry.payload("_fd"), fd)
-        self.set_int(entry.payload("_buf"), buf)
-        self.set_int(entry.payload("_count"), count)
-        self.stream.append_event(entry)
+        self.set_int(event_entry.payload("_cpu_id"), cpu_id)
+        self.set_int(event_entry.payload("_fd"), fd)
+        self.set_int(event_entry.payload("_buf"), buf)
+        self.set_int(event_entry.payload("_count"), count)
+        self.stream.append_event(event_entry)
 
-        exit = CTFWriter.Event(self.syscall_exit_write)
+        event_exit = CTFWriter.Event(self.syscall_exit_write)
         self.clock.time = (time_ms + delay) * 1000000
-        self.set_int(exit.payload("_cpu_id"), cpu_id)
-        self.set_int(exit.payload("_ret"), ret)
-        self.stream.append_event(exit)
+        self.set_int(event_exit.payload("_cpu_id"), cpu_id)
+        self.set_int(event_exit.payload("_ret"), ret)
+        self.stream.append_event(event_exit)
         self.stream.flush()
 
     def write_syscall_read(self, time_ms, cpu_id, delay, fd, buf, count, ret):
-        entry = CTFWriter.Event(self.syscall_entry_read)
+        event_entry = CTFWriter.Event(self.syscall_entry_read)
         self.clock.time = time_ms * 1000000
-        self.set_int(entry.payload("_cpu_id"), cpu_id)
-        self.set_int(entry.payload("_fd"), fd)
-        self.set_int(entry.payload("_count"), count)
-        self.stream.append_event(entry)
+        self.set_int(event_entry.payload("_cpu_id"), cpu_id)
+        self.set_int(event_entry.payload("_fd"), fd)
+        self.set_int(event_entry.payload("_count"), count)
+        self.stream.append_event(event_entry)
 
-        exit = CTFWriter.Event(self.syscall_exit_read)
+        event_exit = CTFWriter.Event(self.syscall_exit_read)
         self.clock.time = (time_ms + delay) * 1000000
-        self.set_int(exit.payload("_cpu_id"), cpu_id)
-        self.set_int(exit.payload("_buf"), buf)
-        self.set_int(exit.payload("_ret"), ret)
-        self.stream.append_event(exit)
+        self.set_int(event_exit.payload("_cpu_id"), cpu_id)
+        self.set_int(event_exit.payload("_buf"), buf)
+        self.set_int(event_exit.payload("_ret"), ret)
+        self.stream.append_event(event_exit)
         self.stream.flush()
 
     def write_syscall_open(self, time_ms, cpu_id, delay, filename, flags,
@@ -520,26 +518,27 @@ class TraceTest():
             current += period
 
     def compare_output(self, cmd, expected):
+        line_sep = '\n'
         result = subprocess.getoutput(cmd)
-        diff = difflib.ndiff(expected.split('\n'), result.split('\n'))
-        txt = ""
-        ok = True
-        for l in diff:
-            if l[0] != ' ':
-                ok = False
-            txt = txt + (l) + '\n'
-        if not ok:
-            print(txt)
-        return ok
+        diff = difflib.ndiff(expected.split(line_sep), result.split(line_sep))
+
+        for line in diff:
+            if line[0] != ' ':
+                # result doesn't match expected. Print the diff and
+                # return False
+                print(line_sep.join(diff))
+                return False
+
+        return True
 
 
-class AnalyzesTest():
+class AnalysesTest():
     def __init__(self, delete_trace=True, verbose=False):
         self.verbose = verbose
         self.t = TraceTest(delete_trace=delete_trace)
         self.common_options = '--no-progress --skip-validation'
         self.cmd_root = './'
-        self.log('Trace in %s' % (self.t.get_trace_root()))
+        self.log('Trace in %s' % (self.t.trace_root))
 
     def log(self, msg):
         if self.verbose:
old mode 100755 (executable)
new mode 100644 (file)
index 60e9b43..5e767e2
@@ -1,10 +1,8 @@
-#!/usr/bin/env python3
-
-from TraceTest import AnalyzesTest
+from TraceTest import AnalysesTest
 import sys
 
 
-class CpuTest(AnalyzesTest):
+class CpuTest(AnalysesTest):
     def __init__(self, delete_trace=True, verbose=False):
         super().__init__(delete_trace=delete_trace,
                          verbose=verbose)
@@ -40,7 +38,7 @@ Total CPU Usage: 48.33%
 """
 
         return self.compare_output('%slttng-cputop %s "%s"' % (
-                       self.cmd_root, self.common_options, self.t.get_trace_root()),
+                       self.cmd_root, self.common_options, self.t.trace_root),
                        expected)
 
 
old mode 100755 (executable)
new mode 100644 (file)
index 533857d..3706170
@@ -1,10 +1,8 @@
-#!/usr/bin/env python3
-
-from TraceTest import AnalyzesTest
+from TraceTest import AnalysesTest
 import sys
 
 
-class IoTest(AnalyzesTest):
+class IoTest(AnalysesTest):
     def __init__(self, delete_trace=False, verbose=False):
         super().__init__(delete_trace=delete_trace,
                          verbose=verbose)
@@ -93,7 +91,7 @@ Network sent bytes
                                                                    0 B wlan1"""
 
         return self.compare_output('%slttng-iousagetop %s "%s"' % (
-                       self.cmd_root, self.common_options, self.t.get_trace_root()),
+                       self.cmd_root, self.common_options, self.t.trace_root),
                        expected)
 
     def run_iolatencytop(self):
old mode 100755 (executable)
new mode 100644 (file)
index fc7dec2..ce03bd2
@@ -1,10 +1,8 @@
-#!/usr/bin/env python3
-
-from TraceTest import AnalyzesTest
+from TraceTest import AnalysesTest
 import sys
 
 
-class IrqTest(AnalyzesTest):
+class IrqTest(AnalysesTest):
     def __init__(self, delete_trace=True, verbose=False):
         super().__init__(delete_trace=delete_trace,
                          verbose=verbose)
@@ -76,7 +74,7 @@ Soft IRQ                                             Duration (us)
 9:  <RCU_SOFTIRQ>          2     1000.000     1500.000     2000.000      707.107  |      2     8000.000     9000.000    10000.000     1414.214"""
 
         return self.compare_output('%slttng-irqstats %s "%s"' % (
-                       self.cmd_root, self.common_options, self.t.get_trace_root()),
+                       self.cmd_root, self.common_options, self.t.trace_root),
                        expected)
 
     def run_irqlog(self):
@@ -101,7 +99,7 @@ Begin                End                   Duration (us)  CPU  Type         #  N
 [19:00:01.044000000, 19:00:01.045000000]        1000.000    0  SoftIRQ      4  BLOCK_SOFTIRQ (raised at 19:00:01.042000000)"""
 
         return self.compare_output('%slttng-irqlog %s "%s"' % (
-                       self.cmd_root, self.common_options, self.t.get_trace_root()),
+                       self.cmd_root, self.common_options, self.t.trace_root),
                        expected)
 
 
This page took 0.028261 seconds and 5 git commands to generate.