I agree the TestLib framework is broken when it comes to reporting output,
which makes problems pretty difficult to figure things out. As far as I
know, it's been this way for some time. My workflow when i get a failing
test is to use `./main.py run --uid <UID>` on the failing test suite which,
when run (at least on my machine), will print the location of the `simout`
and `simerr` files (not deleted).

E.g.:

```
$ ./main.py run --uid
SuiteUID:tests/gem5/hello_se/test_hello_se.py:test-hello-linux-TimingSimpleCPU-RISCV-x86_64-opt
Running the new gem5 testing script.
For more information see TESTING.md.
To see details as the testing scripts are running, use the option -v, -vv,
or -vvv
Discovered 198 tests and 99 suites in
/home/bobbyrbruce/Documents/gem5/tests/gem5/hello_se/test_hello_se.py
=======================================================================================================
Running Tests from 1 suites
Results will be stored in
/home/bobbyrbruce/Documents/gem5/tests/.testing-results
=======================================================================================================
Building the following targets. This may take a while.
/home/bobbyrbruce/Documents/gem5/build/RISCV/gem5.opt
You may want to run with only a single ISA(--isa=), use --skip-build, or
use 'rerun'.
warn: CheckedInt already exists in allParams. This may be caused by the
Python 2.7 compatibility layer.
warn: Enum already exists in allParams. This may be caused by the Python
2.7 compatibility layer.
warn: ScopedEnum already exists in allParams. This may be caused by the
Python 2.7 compatibility layer.
warn: CheckedInt already exists in allParams. This may be caused by the
Python 2.7 compatibility layer.
warn: Enum already exists in allParams. This may be caused by the Python
2.7 compatibility layer.
warn: ScopedEnum already exists in allParams. This may be caused by the
Python 2.7 compatibility layer.
Redirecting stdout to /tmp/gem5outaiXmNQ/simout
Redirecting stderr to /tmp/gem5outaiXmNQ/simerr
Test: test-hello-linux-TimingSimpleCPU-RISCV-x86_64-opt Passed
Test: test-hello-linux-TimingSimpleCPU-RISCV-x86_64-opt-MatchStdoutNoPerf
Passed
============================== Results: 2 Passed in 9.7e+02 seconds
 ==================================
```

I'd recommend three fixes for the TestLib:

1) `.testing-results` shouldn't be a hidden directory.
2) Stdout and stderr should be output to the `testing-results/results.xml`
file.
3) For the `MatchStdoutNoPerf` tests (where the stdout is compared against
some reference), the diff should be recorded upon failure. The
`tests/gem5/verifier.py` script contains most of the functionality for
these `MatchStdoutNoPerf` tests.

The TestLib code (in `ext/testlib`) could definitely use a cleanup. I
think, frankly, it's way over-engineered given all we really want to do is
compile different gem5 ISAs and run them with different configurations. The
testing-results functionality is mostly handled by`
ext/testlib/results.py,` though the methods here are clearly broken or not
being called when they are supposed to be. If you're looking for something
to do, I'd recommend starting there.

Kind regards,
Bobby
--
Dr. Bobby R. Bruce
Room 2235,
Kemper Hall, UC Davis
Davis,
CA, 95616

web: https://www.bobbybruce.net


On Sun, Aug 23, 2020 at 8:10 PM Gabe Black <gabebl...@google.com> wrote:

> Adding Bobby and Giacomo specifically, since I see their fingerprints on
> the testing stuff.
>
> Gabe
>
> On Sun, Aug 23, 2020 at 8:03 PM Gabe Black <gabebl...@google.com> wrote:
>
>> At the risk of sounding over dramatic, this is a major problem. Before it
>> was difficult to see what happened when a test failed when running the test
>> automation, but now it's impossible. As far as I can tell, the results end
>> up in a temp directory and are then wiped out and not copied anywhere. I
>> can't even determine what the test ran to run myself and see what happened.
>>
>> What code is supposed to copy the results out? I'm willing to help figure
>> this out, but I don't even know where to start.
>>
>> Gabe
>>
>> On Sun, Aug 23, 2020 at 6:00 PM Gabe Black <gabebl...@google.com> wrote:
>>
>>> Hey folks, I'm trying to run tests on a change I'm working on, and the
>>> test infrastructure is not actually saving any test results where it claims
>>> it will. I also tried selecting what ISAs to use, and after selecting all
>>> of them the run script claimed no tests would be run.
>>>
>>> Is this something other people are seeing that's just generally broken,
>>> or is there something out of whack on my machine?
>>>
>>> Gabe
>>>
>>
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to