Age | Commit message (Collapse) | Author | Files | Lines |
|
That made sense when mostly people used riscv-tools, but now they get
tools from all sorts of places and most of them are suitable for the
debug tests.
Also document RISCV_TESTS_DEBUG_GCC and RISCV_TESTS_DEBUG_GDB
environment variables in the README.
The github workflows that rely on these tests don't use the Makefile,
but instead invoke gdbserver.py directly, so they're not affected by
this change.
Fixes #481
|
|
This patch adds a way to specify a yaml file which specifies either
for each target individually or for all targets to exclude tests.
Example file format is included in excluded.yaml.example.
|
|
1. Don't run all tests in multi-spike. Extra coverage is negligible, and
it just takes too long.
2. Increase a few timeouts.
|
|
* Test debugging multiple spikes in a daisy chain.
* Hugely speed up rbb_daisychain.
Now 2 dual-hart spikes are less than 4x slower than a single dual-hart
spike.
* WIP
* Test daisy chained homogeneous spike instances.
For OpenOCD, this means we're checking that we can talk to multiple
TAPs. Next up is heterogeneous testing.
* Enable Sv48Test.
Didn't mean to disable it with this commit.
* Test authentication again.
Another change I hadn't meant to push...
|
|
As of tomorrow that feature is officially no longer supported in
OpenOCD, so stop testing it.
|
|
* Improve parallellism in debug test Makefile
Now each test is an individual make target, so you can get the most out
of however many cores you have. On my 12-core system, `make` went from
2m45s to 42s, and `make all` went from `3m25s` to `2m39s`.
If you have few cores, this change may actually slow things down a bit,
because ExamineTarget is run for every gdbserver.py invocation.
* Remove test target.
|
|
This test confirms that in SMP configurations OpenOCD halts the harts
near-simulatenously. (It'll also check for resume, but that's not
implemented yet so commented out for now.)
|
|
* WIP
* Use hwthread everywhere.
* Test `-rtos hwthread`.
Also tweak timeouts a bit so that we don't have ridiculous timeouts for
simple operations.
* Tweak timeouts so tests pass on a loaded system.
|
|
|
|
I hope to use this in riscv-tools' regression.sh.
|
|
The Gdb class now can handle connecting to more than one gdb. It
enumerates the harts across all connections, and when asked to select a
hart, it transparently sends future gdb commands to the correct
instance.
Multicore tests still have to be aware of some differences. The main one
is that when executing 'c' in RTOS mode, all harts resume, while in
multi-gdb mode only the current one resumes. Additionally, gdb doesn't
set breakpoints until 'c' is issued, so the hart where breakpoints are
set needs to be resumed before other harts might see them.
|
|
Targets now contain an array of harts. When running a regular test, one
hart is selected to run the test on while the remaining harts are parked
in a safe infinite loop.
There's currently only one test that tests multicore behavior, but there
could be more.
The infrastructure should be able to support heterogeneous multicore,
but I don't have a target like that to test with.
|
|
|
|
Instead, just give up on making the log files altogether now. Since
gdbserver.py makes its own log files it's not as necessary in any case.
This is yet another commit in an attempt to get the riscv-tools build to
actually fail if these tests fail.
|
|
|
|
Testing is a separate step.
Also fix Issue #64 by adding src_dir to the path to the targets file.
|
|
This would have prevented some bugs I committed earlier.
|
|
|
|
Instead of defining each target in targets.py, now each target gets its
own .py file. This means people can easily keep their own target files
around that they may not want to put into the main test source. As part
of that, I removed the freedom-u500-sim target since I assume it's only
used internally at SiFive.
Added a few cleanups as well:
* Update README examples, mostly --sim_cmd instead of --cmd.
* Allow defining misa in a target, to skip running of ExamineTarget.
* Rename target.target() to target.create(), which is less confusing.
* Default --sim_cmd to `spike`
* Got rid of `use_fpu`, instead looking at F or D in $misa.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
No longer use unittest. Now tests can return not_applicable if eg. a
desired execution mode isn't implemented on a target. Also we do a
better job killing spike processes when a test fails.
Did a lot of code cleanup, partly by using pylint.
Fix the Makefile so that if the test fails, 'make' actually fails too.
|
|
That way somebody doesn't need to spend forever trying to reproduce a
travis failure when all they really need is the logfile.
|
|
|
|
|
|
Add --isolate argument which enables the 32- and 64-bit spikes to be
tested simultaneously.
|