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 __future__ import print_function
39
40from multiprocessing import Process
41import sys
42import os
43
44import m5
45
46_exit_normal = (
47 "target called exit()",

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

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

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

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