History log of /gem5/tests/run.py
Revision Date Author Comments
# 13718:89e8bcc7253b 28-Jan-2019 Andreas Sandberg <andreas.sandberg@arm.com>

tests: Update test scripts to work with Python 3

Change-Id: I71b1e595765fed9e9f234c9722c33ac5348d4f11
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/15999
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>


# 13619:44b5224b2ff4 28-Jan-2019 Andreas Sandberg <andreas.sandberg@arm.com>

tests: Add a helper to run external scripts

Some tests are really just a wrapper around a test script in
configs/. Add a helper method to wrap these scripts to make sure they
are executed in a consistent environment. This wrapper sets up a
global environment that is identical to that created by main() when it
executes the script. Unlike the old wrappers, it updates the module
search path to make relative imports work correctly in Python 3.

Change-Id: Ie9f81ec4e2689aa8cf5ecb9fc8025d3534b5c9ca
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/15976
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>


# 12575:16ada03839d9 09-Mar-2018 Giacomo Travaglini <giacomo.travaglini@arm.com>

tests: Python regression scripts using new print function

Change-Id: I92060da4537e4ff1c0ff665f2f6ffc3850c50e88
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Giacomo Gabrielli <giacomo.gabrielli@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/8892
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>


# 11475:d372458be20f 09-May-2016 Andreas Sandberg <andreas.sandberg@arm.com>

tests: Enable test running outside of gem5's source tree

The learning gem5 scripts currently assumes that the current working
directory is the root of gem5's source tree. This isn't necessarily
the case when running the tests using gem5's new test runner.

Change-Id: Ief569bbe77b1b3e2b0fb0e6c575fb0705bbba9b3
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>


# 9851:14e6caa5a1de 04-Sep-2013 Andreas Hansson <andreas.hansson@arm.com>

tests: Move ISA-independent tests to the NULL ISA

This patch simply takes a first step to use the NULL ISA build for
tests that do not make use of a CPU. Most of the Ruby tests could go
the same way, but to avoid duplicating a lot of compilation targets
that will have to wait until Ruby is built as a library and linked in
independently.


# 9654:64b653b3d72f 22-Apr-2013 Andreas Sandberg <Andreas.Sandberg@ARM.com>

tests: Add support for testing KVM-based CPUs

This changeset adds support for initializing a KVM VM in the
BaseSystem test class and adds the following methods in run.py:

require_file -- Test if a file exists and abort/skip if not.
require_kvm -- Test if KVM support has been compiled into gem5 (i.e.,
BaseKvmCPU exists) and the KVM device exists on the
host.


# 9447:156f74caf0d4 07-Jan-2013 Andreas Sandberg <Andreas.Sandberg@ARM.com>

tests: Add CPU switching tests

This changeset adds a set of tests that stress the CPU switching
code. It adds the following test configurations:

* tsunami-switcheroo-full -- Alpha system (atomic, timing, O3)
* realview-switcheroo-atomic -- ARM system (atomic<->atomic)
* realview-switcheroo-timing -- ARM system (timing<->timing)
* realview-switcheroo-o3 -- ARM system (O3<->O3)
* realview-switcheroo-full -- ARM system (atomic, timing, O3)

Reference data is provided for the 10.linux-boot test case. All of the
tests trigger a CPU switch once per millisecond during the boot
process.

The in-order CPU model was not included in any of the tests as it does
not support CPU handover.


# 9401:9f0918fbb07f 07-Jan-2013 Andreas Sandberg <Andreas.Sandberg@ARM.com>

tests: Add support for skipping tests, skip EIO tests if not enabled

The EIO tests depend on the EIO support from the "encumbered"
repository, which means that they are not normally built with
gem5. This causes all EIO related tests to fail, which is both
annoying and confusing. This patch addresses this by adding support
for skipping tests if certain conditions (e.g., the presence of a
SimObject) can not be met. It introduces the following Python
functions that can be called from within a test case:

* skip_test -- Skip a test and optionally print why the test was
skipped.

* has_sim_object -- Test if a SimObject exists.

* require_sim_object -- Test if a SimObject exists and skip, or
optionally fail, the test if not.

Additionally, this patch updates the EIO tests to check for the
presence of EioProcess.


# 9384:877293183bdf 07-Jan-2013 Andreas Sandberg <Andreas.Sandberg@arm.com>

arch: Make the ISA class inherit from SimObject

The ISA class on stores the contents of ID registers on many
architectures. In order to make reset values of such registers
configurable, we make the class inherit from SimObject, which allows
us to use the normal generated parameter headers.

This patch introduces a Python helper method, BaseCPU.createThreads(),
which creates a set of ISAs for each of the threads in an SMT
system. Although it is currently only needed when creating
multi-threaded CPUs, it should always be called before instantiating
the system as this is an obvious place to configure ID registers
identifying a thread/CPU.


# 8802:ef66a9083bc4 28-Jan-2012 Gabe Black <gblack@eecs.umich.edu>

SE/FS: Make both SE and FS tests available all the time.


# 7525:722f2ad014a7 17-Aug-2010 Steve Reinhardt <steve.reinhardt@amd.com>

sim: make Python Root object a singleton
Enforce that the Python Root SimObject is instantiated only
once. The C++ Root object already panics if more than one is
created. This change avoids the need to track what the root
object is, since it's available from Root.getInstance() (if it
exists). It's now redundant to have the user pass the root
object to functions like instantiate(), checkpoint(), and
restoreCheckpoint(), so that arg is gone. Users who use
configs/common/Simulate.py should not notice.


# 6928:5bd33f7c26ea 29-Jan-2010 Brad Beckmann <Brad.Beckmann@amd.com>

m5: Regression Tester Update

This patch includes the necessary regression updates to test the new ruby
configuration system. The patch includes support for multiple ruby protocols
and adds the ruby random tester. The patch removes atomic mode test for
ruby since ruby does not support atomic mode acceses. These tests can be
added back in when ruby supports atomic mode for real.


# 6874:22df98a968bf 29-Jan-2010 Steve Reinhardt <Steve.Reinhardt@amd.com>

tests: added M5_TEST_PROGS environment variable
to allow override of global location for regression test binaries.


# 6289:a9e7d19871b5 06-Jul-2009 Nathan Binkert <nate@binkert.org>

ruby: Fix RubyMemory to work with the newer ruby.


# 6007:e0344c15e73b 07-Mar-2009 Steve Reinhardt <steve.reinhardt@amd.com>

Fix up regression execution to better handle tests that end abnormally.
E.g., mark aborts due to assertion failures as failed tests,
but those that get killed by the user as needing to be rerun, etc.


# 5523:6279e78a2df2 03-Aug-2008 Nathan Binkert <nate@binkert.org>

sockets: Add a function to disable all listening sockets.
When invoking several copies of m5 on the same machine at the same
time, there can be a race for TCP ports for the terminal connections
or remote gdb. Expose a function to disable those ports, and have the
regression scripts disable them. There are some SimObjects that have
no other function than to be used with ports (NativeTrace and
EtherTap), so they will panic if the ports are disabled.


# 4977:f167d9196a55 14-Aug-2007 Ali Saidi <saidi@eecs.umich.edu>

Regression: Use test-progs in /dist instead of tests/test-progs since they all aren't there.


# 3594:e401993e0cbb 10-Nov-2006 Kevin Lim <ktlim@umich.edu>

Merge ktlim@zizzer:/bk/newmem
into zamp.eecs.umich.edu:/z/ktlim2/clean/o3-merge/newmem


# 3518:51a02f5fe895 08-Nov-2006 Lisa Hsu <hsul@eecs.umich.edu>

the tests assume -1 to signify MaxTick, that's changed, so fix that here.


# 3475:45bdddb5e7f0 10-Nov-2006 Kevin Lim <ktlim@umich.edu>

Also include a function to form the input path.


# 3005:ceb86e85d62d 16-Aug-2006 Steve Reinhardt <stever@eecs.umich.edu>

Finish test clean-up & reorg.

configs/common/FSConfig.py:
Add default Machine() param
configs/example/fs.py:
configs/example/se.py:
make it work again
src/python/m5/objects/BaseCPU.py:
Make mem PhysicalMemory so that a Parent.any proxy works well
src/sim/process.cc:
Increase default stack size so we don't get an
'increasing stack' message on 'hello world'
tests/SConscript:
Add full list of current configs.
tests/configs/simple-atomic.py:
tests/configs/simple-timing.py:
don't need SEConfig anymore
tests/quick/00.hello/test.py:
tests/quick/20.eio-short/test.py:
fix
tests/run.py:
move configs to separate dir


# 2998:1d5ea4e433f5 16-Aug-2006 Steve Reinhardt <stever@eecs.umich.edu>

More restructuring of regression tests.
Moving work back to zizzer...

configs/common/FSConfig.py:
configs/test/fs.py:
Move CPU connections out of makeLinuxAlphaSystem()
src/python/m5/objects/BaseCPU.py:
Create default TLBs in full system.
Move utility cache functions here.
src/python/m5/objects/O3CPU.py:
Add _mem_ports
tests/run.py:
Add binpath()
Change maxtick default to 'forever'
tests/simple-atomic.py:
Use connectmemPorts()
tests/simple-timing.py:
Fix up.


# 2997:d4f750d960e5 16-Aug-2006 Steve Reinhardt <stever@eecs.umich.edu>

Halfway through setting up new test structure... committing so
O can move to my laptop.

tests/SConscript:
Start to simplify.