diff options
author | Javi Merino <javi.merino@arm.com> | 2015-12-22 17:15:32 +0000 |
---|---|---|
committer | Javi Merino <javi.merino@arm.com> | 2015-12-22 17:15:32 +0000 |
commit | a5db2d84050d18299f20c227b5f82895584a3c79 (patch) | |
tree | f43214404ca4c2ad0493a67de6115bc56b91b59d | |
parent | b280b4fd175789648650f66ed5fb3b4f42fb3de2 (diff) | |
download | trappy-a5db2d84050d18299f20c227b5f82895584a3c79.tar.gz |
tests: unregister dynamically created classes in the tests
The classes registered dynamically in the tests persist across the
execution of the testsuite. That makes the testsuite sometimes fail if
a test has added a class to the sched scope and
test_ftrace_has_all_classes_scope_sched() run concurrently. Unregister
the dynamic events when the tests that register them finish.
-rw-r--r-- | tests/test_base.py | 8 | ||||
-rw-r--r-- | tests/test_dynamic.py | 14 | ||||
-rw-r--r-- | tests/test_ftrace.py | 5 |
3 files changed, 23 insertions, 4 deletions
diff --git a/tests/test_base.py b/tests/test_base.py index 24ada6f..a0dba9d 100644 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -122,7 +122,7 @@ class TestBase(utils_tests.SetupDirectory): with open("trace.txt", "w") as fout: fout.write(in_data) - trappy.register_dynamic_ftrace("Event0", "event0", scope="sched") + ftrace_parser = trappy.register_dynamic_ftrace("Event0", "event0", scope="sched") trace = trappy.FTrace() dfr = trace.event0.data_frame @@ -135,6 +135,8 @@ class TestBase(utils_tests.SetupDirectory): self.assertEquals(dfr["__pid"].iloc[idx], events[timestap]['pid']) self.assertEquals(dfr["__cpu"].iloc[idx], events[timestap]['cpu']) + trappy.unregister_dynamic_ftrace(ftrace_parser) + def test_parse_values_concatenation(self): """TestBase: Trace with space separated values created a valid DataFrame""" @@ -146,7 +148,7 @@ class TestBase(utils_tests.SetupDirectory): with open("trace.txt", "w") as fout: fout.write(in_data) - trappy.register_dynamic_ftrace("sched_stat_runtime", + ftrace_parser = trappy.register_dynamic_ftrace("sched_stat_runtime", "my_sched_stat_runtime", scope="sched") trace = trappy.FTrace() dfr = trace.sched_stat_runtime.data_frame @@ -157,6 +159,8 @@ class TestBase(utils_tests.SetupDirectory): self.assertEquals(dfr["runtime"].iloc[0], 262875) self.assertEquals(dfr["vruntime"].iloc[0], 17096359856) + trappy.unregister_dynamic_ftrace(ftrace_parser) + def test_get_dataframe(self): """TestBase: Thermal.data_frame["thermal_zone"] exists and it contains a known value""" diff --git a/tests/test_dynamic.py b/tests/test_dynamic.py index 6bd1375..0d9d7a1 100644 --- a/tests/test_dynamic.py +++ b/tests/test_dynamic.py @@ -40,10 +40,12 @@ class TestDynamicEvents(BaseTestSched): Test if the dynamic events are populated in the data frame """ - trappy.register_dynamic_ftrace("DynamicEvent", "dynamic_test_key") + parse_class = trappy.register_dynamic_ftrace("DynamicEvent", "dynamic_test_key") t = trappy.FTrace(name="first") self.assertTrue(len(t.dynamic_event.data_frame) == 1) + trappy.unregister_dynamic_ftrace(parse_class) + def test_dynamic_class_attr(self): """ Test the attibutes of the dynamically @@ -56,6 +58,8 @@ class TestDynamicEvents(BaseTestSched): self.assertEquals(cls.unique_word, "dynamic_test_key") self.assertEquals(cls.pivot, "test_pivot") + trappy.unregister_dynamic_ftrace(cls) + def test_dynamic_event_plot(self): """Test if plotter can accept a dynamic class for a template argument""" @@ -65,6 +69,8 @@ class TestDynamicEvents(BaseTestSched): l = trappy.LinePlot(t, cls, column="load") l.view(test=True) + trappy.unregister_dynamic_ftrace(cls) + def test_dynamic_event_scope(self): """Test the case when an "all" scope class is registered. it should appear in both thermal and sched @@ -74,16 +80,22 @@ class TestDynamicEvents(BaseTestSched): t1 = trappy.FTrace(name="first") self.assertTrue(t1.class_definitions.has_key(cls.name)) + trappy.unregister_dynamic_ftrace(cls) + def test_register_ftrace_parser(self): trappy.register_ftrace_parser(DynamicEvent) t = trappy.FTrace(name="first") self.assertTrue(len(t.dynamic_event.data_frame) == 1) + trappy.unregister_ftrace_parser(DynamicEvent) + def test_no_none_pivot(self): """register_dynamic_ftrace() with default value for pivot doesn't create a class with a pivot=None""" cls = trappy.register_dynamic_ftrace("MyEvent", "my_dyn_test_key") self.assertFalse(hasattr(cls, "pivot")) + trappy.unregister_dynamic_ftrace(cls) + def test_unregister_dynamic_ftrace(self): """Test that dynamic events can be unregistered""" dyn_event = trappy.register_dynamic_ftrace("DynamicEvent", diff --git a/tests/test_ftrace.py b/tests/test_ftrace.py index 82fa404..657f801 100644 --- a/tests/test_ftrace.py +++ b/tests/test_ftrace.py @@ -82,11 +82,14 @@ class TestFTrace(BaseTestThermal): for attr in trace.sched_classes.iterkeys(): self.assertFalse(hasattr(trace, attr)) - trappy.register_dynamic_ftrace("ADynamicEvent", "a_dynamic_event") + ftrace_parser = trappy.register_dynamic_ftrace("ADynamicEvent", + "a_dynamic_event") trace = trappy.FTrace(scope="custom") self.assertTrue(hasattr(trace, "a_dynamic_event")) + trappy.unregister_dynamic_ftrace(ftrace_parser) + def test_ftrace_doesnt_overwrite_parsed_event(self): """FTrace().add_parsed_event() should not override an event that's already present""" |