test_dynamic.py revision fb8fa1aab48d9731010f1d46a2c426582b1bd0a8
1fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# $Copyright: 2fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# ---------------------------------------------------------------- 3fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# This confidential and proprietary software may be used only as 4fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# authorised by a licensing agreement from ARM Limited 5fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# (C) COPYRIGHT 2015 ARM Limited 6fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# ALL RIGHTS RESERVED 7fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# The entire notice above must be reproduced on all authorised 8fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# copies and copies may only be made to the extent permitted 9fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# by a licensing agreement from ARM Limited. 10fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# ---------------------------------------------------------------- 11fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# File: tests_dynamic.py 12fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# ---------------------------------------------------------------- 13fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# $ 14fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh# 15fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 16fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singhimport unittest 17fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singhimport matplotlib 18fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singhfrom test_sched import BaseTestSched 19fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singhfrom cr2.base import Base 20fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singhimport cr2 21fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 22fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 23fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singhclass DynamicEvent(Base): 24fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 25fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh """Test the ability to register 26fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh specific classes to cr2""" 27fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 28fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh unique_word = "dynamic_test_key" 29fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh name = "dynamic_event" 30fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 31fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh def __init__(self, path=None): 32fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh super(DynamicEvent, self).__init__( 33fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh basepath=path, 34fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh unique_word=self.unique_word, 35fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh ) 36fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 37fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 38fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singhclass TestDynamicEvents(BaseTestSched): 39fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 40fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh def __init__(self, *args, **kwargs): 41fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh super(TestDynamicEvents, self).__init__(*args, **kwargs) 42fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 43fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh def test_dynamic_data_frame(self): 44fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh """ 45fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh Test if the dynamic events are populated 46fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh in the data frame 47fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh """ 48fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh cr2.register_dynamic("DynamicEvent", "dynamic_test_key") 49fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh r = cr2.Run(name="first") 50fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh self.assertTrue(len(r.dynamic_event.data_frame) == 1) 51fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 52fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh def test_dynamic_class_attr(self): 53fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh """ 54fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh Test the attibutes of the dynamically 55fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh generated class 56fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh """ 57fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh cls = cr2.register_dynamic("DynamicEvent", "dynamic_test_key") 58fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh self.assertEquals(cls.__name__, "DynamicEvent") 59fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh self.assertEquals(cls.name, "dynamic_event") 60fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh self.assertEquals(cls.unique_word, "dynamic_test_key") 61fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 62fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh def test_dynamic_event_plot(self): 63fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh """Test if plotter can accept a dynamic class 64fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh for a template argument""" 65fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 66fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh cls = cr2.register_dynamic("DynamicEvent", "dynamic_test_key") 67fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh r = cr2.Run(name="first") 68fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh l = cr2.LinePlot(r, cls, column="load") 69fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh l.view() 70fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh matplotlib.pyplot.close('all') 71fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 72fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh def test_dynamic_event_scope(self): 73fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh """Test the case when an "all" scope class is 74fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh registered. it should appear in both thermal and sched 75fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh run class definitions when scoped run objects are created 76fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh """ 77fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh cls = cr2.register_dynamic("DynamicEvent", "dynamic_test_key") 78fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh r1 = cr2.Run(name="first") 79fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh print r1.class_definitions 80fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh self.assertTrue(r1.class_definitions.has_key(cls.name)) 81fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh 82fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh def test_register_class(self): 83fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh cr2.register_class(DynamicEvent) 84fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh r = cr2.Run(name="first") 85fb8fa1aab48d9731010f1d46a2c426582b1bd0a8Kapileshwar Singh self.assertTrue(len(r.dynamic_event.data_frame) == 1) 86