> From: Alex Bennée [mailto:alex.ben...@linaro.org] > Pavel Dovgalyuk <dovga...@ispras.ru> writes: > > >> -----Original Message----- > >> From: Alex Bennée [mailto:alex.ben...@linaro.org] > >> Sent: Tuesday, September 17, 2019 10:02 PM > >> To: Pavel Dovgalyuk > >> Cc: qemu-devel@nongnu.org; kw...@redhat.com; peter.mayd...@linaro.org; > >> crosthwaite.pe...@gmail.com; boost.li...@gmail.com; > >> artem.k.pisare...@gmail.com; > >> quint...@redhat.com; ciro.santi...@gmail.com; jasow...@redhat.com; > >> m...@redhat.com; > >> arm...@redhat.com; mre...@redhat.com; maria.klimushenk...@ispras.ru; > >> dovga...@ispras.ru; > >> kra...@redhat.com; pavel.dovga...@ispras.ru; thomas.dull...@googlemail.com; > >> pbonz...@redhat.com; dgilb...@redhat.com; r...@twiddle.net > >> Subject: Re: [for-4.2 PATCH 0/6] Block-related record/replay fixes > >> > >> > >> Pavel Dovgalyuk <pavel.dovga...@gmail.com> writes: > >> > >> > The set of patches include the block-related updates > >> > of the record/replay icount feature: > >> > - application of 'snapshot' option on the file layer instead of > >> > the top one: command line and documentation fix > >> > - implementation of bdrv_snapshot_goto for blkreplay driver > >> > - start/stop fix in replay mode with attached block devices > >> > - record/replay of bh oneshot events, used in the block layer > >> > >> Can we come up with a reasonable smoke test to verify record/replay is > >> functional? AIUI we don't need a full OS but we do need a block device > >> to store the replay data. Could we use one of the simple system tests > >> like "memory" and run that through a record and replay cycle? > > > > That's would be great. > > I'm not familiar with testing framework and couldn't find "memory" > > test that you refer to. > > The memory test code is in tests/tcg/multiarch/system and gets combined > with the boot code for whichever target can build it. For example on > aarch64 it is run like: > > timeout 15 $BLD/aarch64-softmmu/qemu-system-aarch64 -monitor none -display > none -chardev > file,path=memory.out,id=output -M virt -cpu max -display none > -semihosting-config > enable=on,target=native,chardev=output -kernel memory
Yes, rr testing could be that simple, but in full system emulation mode. Simplest tests may be run even without the block devices: qemu-system-aarch64 -monitor none -display none -chardev file,path=memory.out,id=output -M virt -cpu max -kernel memory -net none -icount shift=5,rr=record,rrfile=record.bin Better testing must include some block device like Linux boot image or something similar. > The test binaries will be in $BLD/tests/tcg/aarch64-softmmu and are > built when you run "make check-tcg" and have either the appropriate > cross compilers installed on your system or docker enabled and setup > (see docs/devel/testing.rst). > > > Replay test must at least the following: > > 1. record some execution > > 2. replay that execution > > > > And there could be several endings: > > 1. record stalled > > 2. record crashed > > 3. replay stalled > > 4. replay crashed > > 5. all executions finished successfully > > If you can provide an appropriate set of invocations I can plumb them > into the Makefiles for you. That will be great, thank you. Pavel Dovgalyuk