Deleted Added
sdiff udiff text old ( 11682:612f75cf36a0 ) new ( 12575:16ada03839d9 )
full compact
1# Copyright (c) 2015 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

--- 21 unchanged lines hidden (view full) ---

30# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35#
36# Authors: Andreas Sandberg
37
38from multiprocessing import Process
39import sys
40import os
41
42import m5
43
44_exit_normal = (
45 "target called exit()",

--- 29 unchanged lines hidden (view full) ---

75 e = m5.simulate(m5.ticks.fromSeconds(interval))
76 cause = e.getCause()
77 if cause in _exit_limit:
78 m5.checkpoint(name)
79 sys.exit(_exitcode_checkpoint)
80 elif cause in _exit_normal:
81 sys.exit(_exitcode_done)
82 else:
83 print "Test failed: Unknown exit cause: %s" % cause
84 sys.exit(_exitcode_fail)
85
86def run_test(root, interval=0.5, max_checkpoints=5):
87 """
88 Run the simulated system for a fixed amount of time and take a
89 checkpoint, then restore from the same checkpoint and run until
90 the system calls m5 exit.
91 """

--- 15 unchanged lines hidden (view full) ---

107
108 # Wait for the child to return
109 p.join()
110
111 # Restore from the checkpoint next iteration
112 restore = cpt_name
113
114 if p.exitcode == _exitcode_done:
115 print >> sys.stderr, "Test done."
116 sys.exit(0)
117 elif p.exitcode == _exitcode_checkpoint:
118 pass
119 else:
120 print >> sys.stderr, "Test failed."
121 sys.exit(1)
122
123 # Maximum number of checkpoints reached. Just run full-speed from
124 # now on.
125 m5.instantiate()
126 e = m5.simulate()
127 cause = e.getCause()
128 if cause in _exit_normal:
129 sys.exit(0)
130 else:
131 print "Test failed: Unknown exit cause: %s" % cause
132 sys.exit(1)