checkpoint.py (11682:612f75cf36a0) checkpoint.py (12575:16ada03839d9)
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
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
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:
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:
83 print "Test failed: Unknown exit cause: %s" % cause
85 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:
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:
115 print >> sys.stderr, "Test done."
117 print("Test done.", file=sys.stderr)
116 sys.exit(0)
117 elif p.exitcode == _exitcode_checkpoint:
118 pass
119 else:
118 sys.exit(0)
119 elif p.exitcode == _exitcode_checkpoint:
120 pass
121 else:
120 print >> sys.stderr, "Test failed."
122 print("Test failed.", file=sys.stderr)
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:
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:
131 print "Test failed: Unknown exit cause: %s" % cause
133 print("Test failed: Unknown exit cause: %s" % cause)
132 sys.exit(1)
134 sys.exit(1)