public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [kvm-unit-tests PATCH 0/6] arm: Use stable test output lines
@ 2019-09-27 10:42 Andre Przywara
  2019-09-27 10:42 ` [kvm-unit-tests PATCH 1/6] arm: gic: check_acked: add test description Andre Przywara
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Andre Przywara @ 2019-09-27 10:42 UTC (permalink / raw)
  To: Paolo Bonzini, Andrew Jones; +Cc: kvmarm, kvm

When using kvm-unit-tests inside automated testing frameworks,
variable test naming becomes a problem. Some frameworks recognise tests
by their test output line and group the outputs from various runs for
statistical and reporting purposes. Having variable output like timer
values in there spoils this approach. Also the test name should be
somewhat self-explanatory, which is not true for every test.
Some examples highlighting the problem (TAP output from run-tests.sh -t):
ok 1 - selftest: setup: smp: nr_cpus = 2
ok 2 - selftest: setup: mem: size = 256 MB
ok 8 - selftest: smp: CPU(  1) mpidr=0080000001
ok 9 - selftest: smp: CPU(  2) mpidr=0080000002
ok 54 - gicv2: mmio: ITARGETSR: byte writes successful (0x1f => 0x01010001)
ok 55 - gicv2: mmio: all 3 CPUs have interrupts
ok 73 - invalid-function
ok 76 - cpu-on
ok 90 - ptimer-busy-loop: timer has expired (-8445)

This series aims to fix most of the problems, by making the actual test
report output line stable. I think this is best practises in the testing
world, at least when using TAP. We still retain the full information, by
moving every variable output into INFO: lines (which are still logged,
but typically filtered for automated processing).
The above lines now look like this:
ok 1 - selftest: setup: smp: number of CPUs matches expectation
ok 2 - selftest: setup: mem: memory size matches expectation
ok 8 - selftest: smp: MPIDR test on all CPUs
ok 49 - gicv2: mmio: ITARGETSR: byte writes successful
ok 50 - gicv2: mmio: all CPUs have interrupts
ok 68 - psci: invalid-function
ok 71 - psci: cpu-on
ok 85 - ptimer-busy-loop: timer has expired

Looks a bit more boring, but it's nicer for automated processing and
logging.

I am open for a discussion about the general approach, thus this is
dealing with ARM tests for now only.

Looking forward to any feedback!

Cheers,
Andre

Andre Przywara (6):
  arm: gic: check_acked: add test description
  arm: gic: Split variable output data from test name
  arm: timer: Split variable output data from test name
  arm: selftest: Split variable output data from test name
  arm: selftest: Make MPIDR output stable
  arm: Add missing test name prefix calls

 arm/gic.c      | 64 ++++++++++++++++++++++++++++++--------------------
 arm/pci-test.c |  2 ++
 arm/psci.c     |  2 ++
 arm/selftest.c | 23 ++++++++++++++----
 arm/timer.c    |  3 ++-
 5 files changed, 62 insertions(+), 32 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2019-09-27 12:55 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-09-27 10:42 [kvm-unit-tests PATCH 0/6] arm: Use stable test output lines Andre Przywara
2019-09-27 10:42 ` [kvm-unit-tests PATCH 1/6] arm: gic: check_acked: add test description Andre Przywara
2019-09-27 12:18   ` Andrew Jones
2019-09-27 12:40     ` Andre Przywara
2019-09-27 12:55       ` Andrew Jones
2019-09-27 10:42 ` [kvm-unit-tests PATCH 2/6] arm: gic: Split variable output data from test name Andre Przywara
2019-09-27 12:25   ` Andrew Jones
2019-09-27 10:42 ` [kvm-unit-tests PATCH 3/6] arm: timer: " Andre Przywara
2019-09-27 12:25   ` Andrew Jones
2019-09-27 10:42 ` [kvm-unit-tests PATCH 4/6] arm: selftest: " Andre Przywara
2019-09-27 12:26   ` Andrew Jones
2019-09-27 10:42 ` [kvm-unit-tests PATCH 5/6] arm: selftest: Make MPIDR output stable Andre Przywara
2019-09-27 12:30   ` Andrew Jones
2019-09-27 10:42 ` [kvm-unit-tests PATCH 6/6] arm: Add missing test name prefix calls Andre Przywara
2019-09-27 12:31   ` Andrew Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox