From 58076b66e8a45a2682fa329c60e5dba21b3c1f1a Mon Sep 17 00:00:00 2001 From: Rajashree Rajendran Date: Tue, 16 May 2017 17:52:43 +0530 Subject: [PATCH] rng-tools: Fix for rngd daemon failing to start Updated wrapper-script to check if the tpm device is available in the machine, since rng service works on this device. If the device is not available, the test is skipped else the service is started and test excutes. Signed-off-by: Rajashree Rajendran --- linux-tools/rng_tools/rng-tools.sh | 50 +++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/linux-tools/rng_tools/rng-tools.sh b/linux-tools/rng_tools/rng-tools.sh index f021c0e0f..da9d8efb6 100755 --- a/linux-tools/rng_tools/rng-tools.sh +++ b/linux-tools/rng_tools/rng-tools.sh @@ -33,6 +33,7 @@ source $LTPBIN/tc_utils.source load_rng_mod=0 rng_service=rngd +rngd_cleanup=0 ################################################################################ # Utility functions @@ -43,14 +44,10 @@ rng_service=rngd # function tc_local_setup() { + tc_register "Setting up machine to run the tests" tc_root_or_break || return tc_exec_or_break rngd rngtest || return - rngd_cleanup=0 - # Check if RNG device, RANDOM NUMBER GENERATOR - tc_exists /dev/random /dev/urandom - tc_break_if_bad $? "RNG device doesnot exist" || return - cat >> $TCTMP/entropy.py <<-EOF #!/usr/bin/python import sys, time @@ -59,15 +56,6 @@ function tc_local_setup() chmod +x $TCTMP/entropy.py - # rngd init script is missing - # Bug in redhat bugzilla - Bug 215371 - systemctl is-active rngd 2>&1 >/dev/null - [ $? -eq 0 ] && \ - rngd_cleanup=1 - - systemctl stop $rng_service 2>&1 >/dev/null - tc_service_start_and_wait $rng_service - } # @@ -93,6 +81,37 @@ function tc_local_cleanup() # Testcase functions ################################################################################ +# +#Check TPM device. +# +function check_rng() +{ + + tc_register "checking TPM device" + tc_exists /dev/random /dev/urandom /dev/tpm* + if [ $? -ne 0 ]; then + tc_conf "TPM devices were not found, Skipping tests" + exit 0 + else + lsmod |grep -qw tpm-rng + if [ $? -ne 0 ]; then + modprobe tpm-rng >/dev/null + if [ $? -eq 0 ]; then + load_rng_mod=1 + else + tc_conf "Failed to load tpm-rng module" + exit 0 + fi + fi + fi + systemctl is-active rngd 2>&1 >/dev/null + [ $? -eq 0 ] && \ + rngd_cleanup=1 + + + tc_service_restart_and_wait $rng_service +} + # # test01 rngd test # @@ -175,9 +194,10 @@ function test03() # main ################################################################################ -TST_TOTAL=3 tc_setup +check_rng +TST_TOTAL=4 test01 test02 test03