mem: Make MemCtrl a ClockedObject
[gem5.git] / ext / testlib / state.py
1 # Copyright (c) 2017 Mark D. Hill and David A. Wood
2 # All rights reserved.
3 #
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are
6 # met: redistributions of source code must retain the above copyright
7 # notice, this list of conditions and the following disclaimer;
8 # redistributions in binary form must reproduce the above copyright
9 # notice, this list of conditions and the following disclaimer in the
10 # documentation and/or other materials provided with the distribution;
11 # neither the name of the copyright holders nor the names of its
12 # contributors may be used to endorse or promote products derived from
13 # this software without specific prior written permission.
14 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
15 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
16 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
17 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
18 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
19 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 #
25 # Authors: Sean Wilson
26
27 class Result:
28 enums = '''
29 NotRun
30 Skipped
31 Passed
32 Failed
33 Errored
34 '''.split()
35 for idx, enum in enumerate(enums):
36 locals()[enum] = idx
37
38 @classmethod
39 def name(cls, enum):
40 return cls.enums[enum]
41
42 def __init__(self, value, reason=None):
43 self.value = value
44 self.reason = reason
45
46 def __str__(self):
47 return self.name(self.value)
48
49 class Status:
50 enums = '''
51 Unscheduled
52 Building
53 Running
54 TearingDown
55 Complete
56 Avoided
57 '''.split()
58 for idx, enum in enumerate(enums):
59 locals()[enum] = idx
60
61 @classmethod
62 def name(cls, enum):
63 return cls.enums[enum]