On Wed, Mar 15, 2017 at 6:57 PM, Chris Johns <chr...@rtems.org> wrote: > On 16/03/2017 08:44, Tanu Hari Dixit wrote: >> Hello Chris, Gedare, Joel, >> Thank you for answering my questions. Sorry for the late reply, it >> took me time to go through the tasks suggested. >>> >>> What platforms have you run tester on? >> >> I was searching for a way to compile and execute a single test and the >> community suggetsed rtems-tester. So I ran the tester on sparc/erc32 >> (and no simulator). > > Great, this is what the tool is for. > >> I am unable to find a relevant doc on how to run rtems-tester on qemu. >> Though there is this rtems-tools.git/tester/rtems/testing/qemu.cfg so >> I know that it is supported. > > The `--list-bsps` gives some hints however not all BSPs that use qemu have > this in the test BSP name. After a waf configure and build try: > > ruru rtems-tools.git $ pwd > /opt/work/chris/rtems/tools/rtems-tools.git > ruru rtems-tools.git $ ./tester/rtems-test --list-bsps | grep qemu > realview_pbx_a9_qemu > xilinx_zynq_a9_qemu > xilinx_zynq_a9_qemu_smp > xilinx_zynq_zc706_qemu > > The low level and simplest way to currently see is: > > ruru rtems-tools.git $ grep -r qemu.cfg tester/rtems > tester/rtems/testing/bsps/xilinx_zynq_a9_qemu.mc:xilinx_zynq_a9_qemu: > none, none, '%{_rtscripts}/qemu.cfg' > tester/rtems/testing/bsps/generic_or1k.mc:generic_or1k: none, none, > '%{_rtscripts}/qemu.cfg' > tester/rtems/testing/bsps/xilinx_zynq_zc706_qemu.mc:xilinx_zynq_zc706: > none, none, '%{_rtscripts}/qemu.cfg' > tester/rtems/testing/bsps/xilinx_zynq_a9_qemu_smp.mc:xilinx_zynq_a9_qemu: > none, none, '%{_rtscripts}/qemu.cfg' > tester/rtems/testing/bsps/realview_pbx_a9_qemu.mc:realview_pbx_a9_qemu: > none, none, '%{_rtscripts}/qemu.cfg' > > It is not the best way but it does work :) > >> Also I couldn't find any other hint in >> the rtems-tools repository as to which simulators (except for qemu) >> are supported. rtems-testing/sim-scripts support gdbsim, skyeye and >> tsim (other than qemu). So we can add support for these and gem5 (as >> Gedare suggested). Please correct me if I am wrong. > > You will need to review each .cfg file we have and see what there is. I see > tsim is there. > >> Furthermore, if you could please point me to a doc that explains using >> rtems-tester on qemu? I have tested qemu for running an application, >> the steps for which I have documented here >> (http://tokencolour.github.io/2017/03/16/how-to-run-applications-on-qemu-rtems.html). > > I am not sure there is any doco. If you have built the RSB qemu which runs > the zynq and you have built the xilinx_zynq_a9_qemu BSP you should be able to > do: > > ruru xilinx_zynq_a9_qemu $ pwd > /opt/work/chris/rtems/kernel/bsps/xilinx_zynq_a9_qemu > ruru xilinx_zynq_a9_qemu $ rtems-test --report-mode=all > --rtems-bsp=xilinx_zynq_a9_qemu `find . -name hello.exe` > RTEMS Testing - Tester, 4.12.not_released > Command Line: /opt/work/rtems/4.12/bin/rtems-test --report-mode=all > --rtems-bsp=xilinx_zynq_a9_qemu > ./arm-rtems4.12/c/xilinx_zynq_a9_qemu/testsuites/samples/hello/hello.exe > Python: 2.7.13 (default, Jan 12 2017, 01:19:30) [GCC 4.2.1 Compatible > FreeBSD Clang 3.8.0 (tags/RELEASE_380/final 262564)] > [1/1] p:0 f:0 t:0 i:0 | arm/xilinx_zynq_a9_qemu: hello.exe > [1/1] p:0 f:0 t:0 i:0 | arm/xilinx_zynq_a9_qemu: hello.exe >> run: qemu-system-arm -no-reboot -serial null -serial mon:stdio -nographic >> -net none -M xilinx-zynq-a9 -m 256M -kernel >> ./arm-rtems4.12/c/xilinx_zynq_a9_qemu/testsuites/samples/hello/hello.exe > ] Warning: nic cadence_gem.0 has no peer > ] Warning: nic cadence_gem.1 has no peer > ] > ] > ] *** BEGIN OF TEST HELLO WORLD *** > ] Hello World > ] *** END OF TEST HELLO WORLD *** > Result: passed Time: 0:00:01.069137 hello.exe > > Passed: 1 > Failed: 0 > Timeouts: 0 > Invalid: 0 > ----------- > Total: 1 > > Average test time: 0:00:01.526334 > Testing time : 0:00:01.526334 > Thanks Chris for the excellent answers. I want to just pile-on with my typical command line for running tester as another point in the conversation:
Command Line: ./rtems-test --log=log_zynq_run --rtems-bsp=xilinx_zynq_a9_qemu --rtems-tools=/home/gedare/install/4.12 /home/gedare/work/rtems/builds/b-xilinx_zynq_a9_qemu/arm-rtems4.12/c/xilinx_zynq_a9_qemu/testsuites The last argument points to the testsuites in my build tree, which results in running all of the testsuites I built. I almost always just do... $ head log_zynq_run and then copy-paste the command line into my terminal to run tester. It keeps me from having to remember/type anything more than once. :) (I do the same thing with RSB. It is a great feature of the log file!) >> I can play with visualizing aggregated testing results with plotting >> techniques (like matplotlib or maybe something that the devs >> recommend) :). > > I would prefer this not be part of rtems-test. I am happy to have rtems-test > generate report data in XML that can be used by other tools to generate > visual data. I also happy to see these other tools being developed as part of > this project if there is time and added to the RTEMS Tools Project if > suitable, just not part of the rtems-test tool. > > A couple of points ... > > The separation is done to avoid extra dependencies being added to the > rtems-test tool. Separating this type of functionality this way means the way > this data is used is up to the user and not the rtems-test tool. It also > brings the tool inline with the RSB which also exports XML reports. > > Second, any tool to do this and added to the RTEMS Tool Project has to be > fully cross platform, which means FreeBSD, OSX, Windows and even Linux. If > the tool can be based on just standard Python libraries it will be cross > platform and preferred. > >> Also, where can I find more about "expected fail" state? Is it for >> those tests that fail nevertheless and need to be skipped? Can you >> please point me to an example? > > I do not think there currently are examples. I suspect a few tests which are > expected fails maybe currently configured as exclude because that was all we > had. > > A test is tagged as 'expected-fail' in a .tcfg per BSP file using the newer > tag format. To list the test config files try `find . -name \*.tcfg` from the > top of the RTEMS source tree and take a look at a few of these files. > > Setting a test as expected-fail causes the test to be built with compile > command line directive of `-DTEST_STATE_EXPECTED_FAIL=1` and this results in > the message: > > *** TEST STATE: EXPECTED-FAIL > > being printed in the test. I have also added the test state `indeterminate` > which prints: > > *** TEST STATE: INDETERMINATE > > See testsuites/support/include/buffer_test_io.h for the details. > > rtems-test needs to scan for this text like it currently scans for the begin > and end messages and it needs to record the result for the test and have the > result stats updated. > >> Also, what kind of regression will one need to perform? > > None, it is a report. If there are per BSP expected test results that are > accessible to rtems-test you can easily report to the user if they have > regressed or improved. The expected test results could simply be fail, > expected-fail and indeterminate counts the remainder being pass. This could > be enhanced to specify specific tests which would give a more accurate > picture in case failures move around and maintain the same test result counts. > >> Do the final states of the test need to maintain an >> overall state of the system so as to recommend/predict the state of >> affairs next time the tests are run (i.e. a predictor (which has >> memory) kind of thing)? > > No it is just relative to the current BSP expected test results. > >> I also think that converting macro files to yaml won't be very >> difficult. I might be very myopic here and it would be great if I get >> a heads up. What will be the challenge here? > > Determining what we need to describe and creating and documenting the format. > These types of task are easy to visualize but time consuming to get right and > working. Also making the changes then verifying all the converted > configurations are working is a lot of work and may require interactions with > others who have the various simulators or hardware being used. For example > tsim and ARM JTAG. > >> For the generic serial console, will pySerial do the trick, on >> Windows? Do you have some other package in mind? > > pySerial is the package (https://github.com/pyserial/pyserial). It has a > suitable license. We would need to being the specific pieces of code into the > rtemstoolkit, wrap and make available for the rtems-test tool. > >> I have a problem here, though. I don't own a Zedboard and can't afford >> one. I can check with my department at college once I reach there, but >> I don't have my hopes too high. Will this pose a problem in the course >> of the project? > > I do not think so. I have one and I know others do as well, Joel?. We can see > if some form of remote access can be made available. Please indicate this in > your proposal. > >> I am yet to build for xilinx_zynq_zc706, so I'll ask more questions on >> the configuration control once I am done with it. Also, I'm trying out >> the old and new approach for Coverage reporting. I'll ask questions on >> it, once I try it. > > I suggest you concentrate on the xilinx_zynq_a9_qemu BSP and then the RSB > qemu under the bare config tree. > > Chris _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel