On 11/12/2020 21.30, Wainer dos Santos Moschetta wrote: > Hi, > > On 12/11/20 2:31 PM, Thomas Huth wrote: >> /dev/hwrng is only functional if virtio-rng is working right, so let's >> add a sanity check for this device node. > > Good idea. > >> >> Signed-off-by: Thomas Huth <th...@redhat.com> >> --- >> tests/acceptance/machine_s390_ccw_virtio.py | 17 +++++++++++++++-- >> 1 file changed, 15 insertions(+), 2 deletions(-) >> >> diff --git a/tests/acceptance/machine_s390_ccw_virtio.py >> b/tests/acceptance/machine_s390_ccw_virtio.py >> index 733a7ca24a..7d0a78139b 100644 >> --- a/tests/acceptance/machine_s390_ccw_virtio.py >> +++ b/tests/acceptance/machine_s390_ccw_virtio.py >> @@ -64,9 +64,9 @@ class S390CCWVirtioMachine(Test): >> '-append', kernel_command_line, >> '-device', 'virtio-net-ccw,devno=fe.1.1111', >> '-device', >> - 'virtio-rng-ccw,devno=fe.2.0000,max_revision=0', >> + >> 'virtio-rng-ccw,devno=fe.2.0000,max_revision=0,id=rn1', >> '-device', >> - 'virtio-rng-ccw,devno=fe.3.1234,max_revision=2', >> + >> 'virtio-rng-ccw,devno=fe.3.1234,max_revision=2,id=rn2', >> '-device', 'zpci,uid=5,target=zzz', >> '-device', 'virtio-net-pci,id=zzz', >> '-device', 'zpci,uid=0xa,fid=12,target=serial', >> @@ -96,6 +96,19 @@ class S390CCWVirtioMachine(Test): >> exec_command_and_wait_for_pattern(self, >> 'cat >> /sys/bus/ccw/devices/0.3.1234/virtio?/features', >> virtio_rng_features) >> + # check that /dev/hwrng works - and that it's gone after ejecting >> + exec_command_and_wait_for_pattern(self, >> + 'dd if=/dev/hwrng of=/tmp/out.dat bs=1k count=10', >> + '10+0 records out') >> + self.clear_guests_dmesg() >> + self.vm.command('device_del', id='rn1') >> + self.wait_for_crw_reports() >> + self.clear_guests_dmesg() >> + self.vm.command('device_del', id='rn2') >> + self.wait_for_crw_reports() >> + exec_command_and_wait_for_pattern(self, >> + 'dd if=/dev/hwrng of=/tmp/out.dat bs=1k count=10', >> + 'dd: /dev/hwrng: No such device') > > Maybe the expected pattern is too fragile. On my Fedora 33 system, 'dd' will > print a different message.
We are running this test with a well-defined kernel + initrd, so I don't think we have to care of other versions of dd here. > What if it checks for the presence of the device file, e.g: > > ... self, 'test -c /dev/hwrng; echo $?', '1') That doesn't work, the /dev/hwrng is still there (so test -c succeeds), since this initrd uses static device nodes for this in /dev. /dev/hwrng just can not be opened anymore after the device has been removed. Thomas