Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|