Repository :
http://git.fedorahosted.org/cgit/cura-tools.git
On branch : master
---------------------------------------------------------------
commit ac8a4212edd89b8f875346862af83fbba0ebeb85
Author: Michal Minar <miminar(a)redhat.com>
Date: Tue Dec 9 09:57:01 2014 +0100
lmi: test fixes
Support newer releases of providers (0.4.2+).
Support newer releases of openlmi-tools, declare correct requirements
of testing commands and cope with lmiwbem.
---------------------------------------------------------------
cli/test/base.sh | 28 +++++
cli/test/cmdver/lmi/scripts/cmdver/__init__.py | 17 +++-
cli/test/cmdver/setup.py | 2 +-
cli/test/test_logging.sh | 147 +++++++++++++++---------
cli/test/test_versioning.sh | 46 +++-----
5 files changed, 156 insertions(+), 84 deletions(-)
diff --git a/cli/test/base.sh b/cli/test/base.sh
index acec1be..411dddd 100644
--- a/cli/test/base.sh
+++ b/cli/test/base.sh
@@ -49,3 +49,31 @@ export LMI
# for some tests no other options are welcomed
export LMI_=`echo $LMI | cut -d \ -f 1`
+function using_lmiwbem() {
+ python2 << EOF
+try:
+ import lmiwbem
+except ImportError:
+ import sys
+ sys.exit(1)
+EOF
+}
+
+function rlLogFile() {
+ file="$1"
+ rlLogInfo "Indented contents of $file:"
+ cat "$file" | while read -r line; do
+ rlLogInfo " $line"
+ done
+}
+
+function rlAssertNotDifferAndLog() {
+ fst="$1"
+ snd="$2"
+ rlAssertNotDiffer "$fst" "$snd"
+ if [[ $? != 0 ]]; then
+ rlLogFile "$fst"
+ rlLogFile "$snd"
+ fi
+}
+
diff --git a/cli/test/cmdver/lmi/scripts/cmdver/__init__.py
b/cli/test/cmdver/lmi/scripts/cmdver/__init__.py
index ea646fc..47a0986 100644
--- a/cli/test/cmdver/lmi/scripts/cmdver/__init__.py
+++ b/cli/test/cmdver/lmi/scripts/cmdver/__init__.py
@@ -98,6 +98,20 @@ class PreHwCmd(HwCmd):
'hostname' : PreHostnameInfo
}
+class HigherHwCmd(HwCmd):
+ """
+ Hardware testing command for newer chassis (> 0.3.0).
+
+ Usage:
+ %(cmd)s system
+ %(cmd)s hostname
+ """
+ OWN_USAGE = True
+ COMMANDS = {
+ 'system' : SystemInfo,
+ 'hostname' : HostnameInfo
+ }
+
class NoHwRegistered(command.LmiLister):
"""
Hardware testing command.
@@ -116,7 +130,8 @@ class CmdverHw(command.LmiSelectCommand):
"""
SELECT = (
('OpenLMI-Hardware < 0.4.2', PreHwCmd),
- ('OpenLMI-Hardware >= 0.4.2 & class LMI_Chassis == 0.3.0',
HwCmd)
+ ('OpenLMI-Hardware >= 0.4.2 & class LMI_Chassis == 0.3.0',
HwCmd),
+ ('OpenLMI-Hardware >= 0.4.2', HigherHwCmd),
)
DEFAULT = NoHwRegistered
diff --git a/cli/test/cmdver/setup.py b/cli/test/cmdver/setup.py
index 58ea463..952fcff 100644
--- a/cli/test/cmdver/setup.py
+++ b/cli/test/cmdver/setup.py
@@ -30,7 +30,7 @@ setup(
'Environment :: Console',
],
- install_requires=['openlmi-scripts'],
+ install_requires=['openlmi-tools >= 0.9.1'],
namespace_packages=['lmi', 'lmi.scripts'],
packages=['lmi', 'lmi.scripts', 'lmi.scripts.cmdver'],
diff --git a/cli/test/test_logging.sh b/cli/test/test_logging.sh
index ef6060f..6c25f3f 100644
--- a/cli/test/test_logging.sh
+++ b/cli/test/test_logging.sh
@@ -52,6 +52,25 @@ FileFormat = %%(levelname)s: %%(message)s
OutputFile = %s
"
+temporary_files=""
+
+function mktempfile() {
+ result=`mktemp "$1"`
+ temporary_files="${temporary_files} $result"
+ echo $result
+}
+
+function make_expected_stderr_output_from() {
+ original="$1"
+ expected=`mktempfile expected_stderrXXXX`
+ if using_lmiwbem; then
+ egrep -v "^(INFO:\s*)?Connected to " "$original"
>$expected
+ else
+ cat "$original" >$expected
+ fi
+ echo $expected
+}
+
rlJournalStart
rlPhaseStartSetup
@@ -73,23 +92,23 @@ rlPhaseStartTest
LMICMD="$LMI -c logging/defaults.conf"
- stdout=`mktemp stdoutXXXX`
- stderr=`mktemp stderrXXXX`
+ stdout=`mktempfile stdoutXXXX`
+ stderr=`mktempfile stderrXXXX`
rlRun "$LMICMD test log all >$stdout 2>$stderr" 0
- rlAssertNotDiffer logging/log_all_default.stdout $stdout
- rlAssertNotDiffer logging/log_all_warn.stderr $stderr
+ rlAssertNotDifferAndLog logging/log_all_default.stdout $stdout
+ rlAssertNotDifferAndLog logging/log_all_warn.stderr $stderr
rlRun "$LMICMD test log all --with-traceback >$stdout 2>$stderr" 0
- rlAssertNotDiffer logging/log_all_default.stdout $stdout
- tmpout=`mktemp tmpoutXXXX`
+ rlAssertNotDifferAndLog logging/log_all_default.stdout $stdout
+ tmpout=`mktempfile tmpoutXXXX`
grep '^\(warning\|error\|critical\)' $stderr > $tmpout
- rlAssertNotDiffer logging/log_all_warn.stderr $tmpout
+ rlAssertNotDifferAndLog logging/log_all_warn.stderr $tmpout
rlAssertEquals "Correct number of exceptions were raised" 3 \
`grep '^RuntimeError: S\*\*t happens!' $stderr | wc -l`
rm $tmpout
- expected_out=`mktemp expected_stdoutXXXX`
- expected_err=`mktemp expected_stderrXXXX`
+ expected_out=`mktempfile expected_stdoutXXXX`
+ expected_err=`mktempfile expected_stderrXXXX`
for verbosity in 0 1 2; do
if [[ $verbosity -gt 0 ]]; then
option=`printf -- "-v %.0s" $(seq $verbosity)`
@@ -115,7 +134,7 @@ rlPhaseStartTest
echo -n "Option \"$opt_name\" not handled in
function"; \
echo ' "level", ignoring.'; \
done; \
- echo "Connected to $HOSTNAME"; \
+ using_lmiwbem || echo "Connected to $HOSTNAME"; \
fi; \
if [ $(($verbosity + 2)) -ge $level ]; then \
if [ $level -lt 3 ]; then \
@@ -124,126 +143,144 @@ rlPhaseStartTest
echo "This is $level_name message."; \
fi \
) >$expected_err
- rlAssertNotDiffer $expected_err $stderr
+ rlAssertNotDifferAndLog $expected_err $stderr
+ if [[ $? != 0 ]]; then
+ rlLogFile "$expected_err"
+ rlLogFile "$stderr"
+ fi
rlAssertEquals "Nothing is written to stdout" 0 `cat $stdout | wc
-c`
done
done
-
- rm $stdout $stderr $expected_out $expected_err
-
rlPhaseEnd
rlPhaseStartTest
rlLogInfo "Test logging with debug settings"
- config_file=`mktemp configXXXX`
- log_file=`mktemp log_fileXXXX`
+ config_file=`mktempfile configXXXX`
+ log_file=`mktempfile log_fileXXXX`
printf "$DEBUG_CONFIG_TEMPLATE" $log_file >$config_file
LMICMD="$LMI -c $config_file"
- stdout=`mktemp stdoutXXXX`
- stderr=`mktemp stderrXXXX`
+ stdout=`mktempfile stdoutXXXX`
+ stderr=`mktempfile stderrXXXX`
filter_debug=" | grep -v '^Option' > $stderr"
rlRun "$LMICMD test log all 2>&1 >$stdout $filter_debug" 0
- rlAssertNotDiffer logging/log_all_debug.stdout $stdout
- rlAssertNotDiffer logging/log_all_debug.stderr $stderr
+ rlAssertNotDifferAndLog logging/log_all_debug.stdout $stdout
+ rlAssertNotDifferAndLog \
+ `make_expected_stderr_output_from logging/log_all_debug.stderr` \
+ $stderr
cat $log_file | grep -v '^DEBUG: Option' >${log_file}.tmp
mv ${log_file}{.tmp,}
- rlAssertNotDiffer logging/log_all_debug.file $log_file
+ rlAssertNotDifferAndLog \
+ `make_expected_stderr_output_from logging/log_all_debug.file` \
+ $log_file
rm $log_file
rlRun "$LMICMD test log all --with-traceback 2>&1 >$stdout
$filter_debug" 0
- rlAssertNotDiffer logging/log_all_debug.stdout $stdout
- tmpout=`mktemp tmpoutXXXX`
+ rlAssertNotDifferAndLog logging/log_all_debug.stdout $stdout
+ tmpout=`mktempfile tmpoutXXXX`
grep '^\(warning\|error\|critical\)' $stderr > $tmpout
- rlAssertNotDiffer logging/log_all_warn.stderr $tmpout
+ rlAssertNotDifferAndLog \
+ `make_expected_stderr_output_from logging/log_all_warn.stderr` \
+ $tmpout
rlAssertEquals "Correct number of exceptions were raised" 5 \
`grep '^RuntimeError: S\*\*t happens!' $stderr | wc -l`
rlAssertEquals "Correct number of exceptions were raised" 5 \
`grep '^RuntimeError: S\*\*t happens!' $log_file | wc -l`
- rm $tmpout $log_file
+ rm $log_file
rlLogInfo "Try override log-file"
- new_log_file=`mktemp new_log_fileXXXX`
+ new_log_file=`mktempfile new_log_fileXXXX`
rlRun "$LMICMD --log-file $new_log_file test log all 2>&1 >$stdout
$filter_debug" 0
- rlAssertNotDiffer logging/log_all_debug.stdout $stdout
- rlAssertNotDiffer logging/log_all_debug.stderr $stderr
+ rlAssertNotDifferAndLog logging/log_all_debug.stdout $stdout
+ rlAssertNotDifferAndLog \
+ `make_expected_stderr_output_from logging/log_all_debug.stderr` \
+ $stderr
cat $new_log_file | grep -v '^DEBUG: Option' >${new_log_file}.tmp
mv ${new_log_file}{.tmp,}
- rlAssertNotDiffer logging/log_all_debug.file $new_log_file
+ rlAssertNotDifferAndLog \
+ `make_expected_stderr_output_from logging/log_all_debug.file` \
+ $new_log_file
rlRun "[ -e $log_file ]" 1 "Log file from config file shall not be
written"
- [ -e $new_log_file ] && rm $new_log_file
+ [ -e $new_log_file ] && rm ${new_log_file}.tmp
[ -e $log_file ] && rm $log_file
rlLogInfo "Try to disable logging to a file"
rlRun "$LMICMD --log-file '' test log all 2>&1 >$stdout
$filter_debug" 0
- rlAssertNotDiffer logging/log_all_debug.stdout $stdout
- rlAssertNotDiffer logging/log_all_debug.stderr $stderr
+ rlAssertNotDifferAndLog logging/log_all_debug.stdout $stdout
+ rlAssertNotDifferAndLog \
+ `make_expected_stderr_output_from logging/log_all_debug.stderr` \
+ $stderr
rlRun "[ -e $log_file ]" 1 "Log file from config file shall not be
written"
[ -e $log_file ] && rm $log_file
rlLogInfo "Try override verbosity"
rlRun "$LMICMD -q test log all 2>&1 >$stdout $filter_debug" 0
- rlAssertNotDiffer logging/log_all_silent.stdout $stdout
- rlAssertNotDiffer logging/log_all_error.stderr $stderr
+ rlAssertNotDifferAndLog logging/log_all_silent.stdout $stdout
+ rlAssertNotDifferAndLog \
+ `make_expected_stderr_output_from logging/log_all_error.stderr` \
+ $stderr
cat $log_file | grep -v '^DEBUG: Option' >${log_file}.tmp
mv ${log_file}{.tmp,}
- rlAssertNotDiffer logging/log_all_debug.file $log_file
+ rlAssertNotDifferAndLog \
+ `make_expected_stderr_output_from logging/log_all_debug.file` \
+ $log_file
rm $log_file
rlRun "$LMICMD -v test log all >$stdout 2>$stderr" 0
- rlAssertNotDiffer logging/log_all_info.stdout $stdout
- rlAssertNotDiffer logging/log_all_info.stderr $stderr
+ rlAssertNotDifferAndLog logging/log_all_info.stdout $stdout
+ expected_err=`make_expected_stderr_output_from logging/log_all_info.stderr`
+ rlAssertNotDifferAndLog $expected_err $stderr
cat $log_file | grep -v '^DEBUG: Option' >${log_file}.tmp
mv ${log_file}{.tmp,}
- rlAssertNotDiffer logging/log_all_debug.file $log_file
+ rlAssertNotDifferAndLog \
+ `make_expected_stderr_output_from logging/log_all_debug.file` \
+ $log_file
rm $log_file
rlLogInfo "Change file log level"
sed -i 's/DEBUG/WARNING/' $config_file
rlAssertGrep 'Level = WARNING' $config_file
rlRun "$LMICMD test log all 2>&1 >$stdout $filter_debug" 0
- rlAssertNotDiffer logging/log_all_debug.stdout $stdout
- rlAssertNotDiffer logging/log_all_debug.stderr $stderr
- rlAssertNotDiffer logging/log_all_warn.file $log_file
+ rlAssertNotDifferAndLog logging/log_all_debug.stdout $stdout
+ rlAssertNotDifferAndLog \
+ `make_expected_stderr_output_from logging/log_all_debug.stderr` \
+ $stderr
+ rlAssertNotDifferAndLog logging/log_all_warn.file $log_file
[ -e $log_file ] && rm $log_file
rlLogInfo "Disable logging to console"
sed -i 's/\(LogToConsole.*\)True/\1False/' $config_file
rlAssertGrep 'LogToConsole = False' $config_file
rlRun "$LMICMD test log all >$stdout 2>$stderr" 0
- rlAssertNotDiffer logging/log_all_debug.stdout $stdout
+ rlAssertNotDifferAndLog logging/log_all_debug.stdout $stdout
rlAssertEquals "Nothing is written to stderr" `cat $stderr | wc -c` 0
- rlAssertNotDiffer logging/log_all_warn.file $log_file
+ rlAssertNotDifferAndLog logging/log_all_warn.file $log_file
[ -e $log_file ] && rm $log_file
rlLogInfo "Override tracing"
rlRun "$LMICMD --notrace test log all >$stdout 2>$stderr" 0
- rlAssertNotDiffer logging/log_all_debug_notrace.stdout $stdout
+ rlAssertNotDifferAndLog logging/log_all_debug_notrace.stdout $stdout
rlAssertEquals "Nothing is written to stderr" `cat $stderr | wc -c` 0
- rlAssertNotDiffer logging/log_all_warn.file $log_file
-
- for f in $log_file $new_log_file $config_file $stdout $stderr; do
- [ -e $f ] && rm $f
- done
-
+ rlAssertNotDifferAndLog logging/log_all_warn.file $log_file
rlPhaseEnd
rlPhaseStartTest
rlLogInfo "Test logging with settings"
- stdout=`mktemp stdoutXXXX`
- stderr=`mktemp stderrXXXX`
+ stdout=`mktempfile stdoutXXXX`
+ stderr=`mktempfile stderrXXXX`
rlRun "$LMI -c logging/defaults.conf test log all >$stdout 2>$stderr"
0
- rlAssertNotDiffer $stdout logging/log_all_default.stdout
- rlAssertNotDiffer $stderr logging/log_all_warn.stderr
+ rlAssertNotDifferAndLog $stdout logging/log_all_default.stdout
+ rlAssertNotDifferAndLog $stderr logging/log_all_warn.stderr
rm $stdout $stderr
rlPhaseEnd
-
rlPhaseStartCleanup
rlLogInfo "Removing temporary python sandbox"
rm -rf "$sandbox"
+ rlLogInfo "Removing temporary files"
+ rm $temporary_files 2>/dev/null
rlPhaseEnd
diff --git a/cli/test/test_versioning.sh b/cli/test/test_versioning.sh
index 0f7f5b6..7f38420 100644
--- a/cli/test/test_versioning.sh
+++ b/cli/test/test_versioning.sh
@@ -139,28 +139,25 @@ rlPhaseStartTest
rm $rlRun_LOG
else
- rlRun -s "$LMI help ver-hw"
- rlAssertGrep "^Hardware testing command\.$" $rlRun_LOG
- rlAssertGrep "^Usage:$" $rlRun_LOG
- rlAssertGrep "^\s\+lmi ver-hw system$" $rlRun_LOG
- rlAssertGrep "^\s\+lmi ver-hw hostname$" $rlRun_LOG
- rm $rlRun_LOG
-
- rlRun -s "$LMI help ver hw" 0
- rlAssertGrep "^Hardware testing command.$" $rlRun_LOG
- rlAssertGrep "^Usage:$" $rlRun_LOG
- rlAssertGrep "^\s\+lmi ver hw system$" $rlRun_LOG
- rlAssertGrep "^\s\+lmi ver hw hostname$" $rlRun_LOG
- rm $rlRun_LOG
+ for args in "help ver-hw" "help ver hw" "help ver hw
system"; do
+ rlRun -s "$LMI $args" 0
+ if [[ `cmp2int $LMI_HARDWARE_PROVIDER_VERSION` -ge `cmp2int 0.6.0` ]]; then
+ rlAssertGrep "^Hardware testing command for newer chassis"
$rlRun_LOG
+ else
+ rlAssertGrep "^Hardware testing command\.$" $rlRun_LOG
+ fi
- rlRun -s "$LMI help ver hw system" 0
- rlAssertGrep "^Hardware testing command.$" $rlRun_LOG
- rlAssertGrep "^Usage:$" $rlRun_LOG
- rlAssertGrep "^\s\+lmi ver hw system$" $rlRun_LOG
- rlAssertGrep "^\s\+lmi ver hw hostname$" $rlRun_LOG
- rm $rlRun_LOG
+ rlAssertGrep "^Usage:$" $rlRun_LOG
+ if echo "$args" | grep -q "ver-hw"; then
+ rlAssertGrep "^\s\+lmi ver-hw system$" $rlRun_LOG
+ rlAssertGrep "^\s\+lmi ver-hw hostname$" $rlRun_LOG
+ else
+ rlAssertGrep "^\s\+lmi ver hw system$" $rlRun_LOG
+ rlAssertGrep "^\s\+lmi ver hw hostname$" $rlRun_LOG
+ fi
+ rm $rlRun_LOG
+ done
fi
-
rlPhaseEnd
rlPhaseStartTest
@@ -185,7 +182,7 @@ rlPhaseStartTest
else
rlRun -s "$LMI ver-sw"
- rlAssertGrep "Prov version.*${LMI_SOFTWARE_PROVIDER_VERSION} (DEVEL)"
$rlRun_LOG
+ rlAssertGrep "Prov version.*[0-9.]\+ (DEVEL)" $rlRun_LOG
rm $rlRun_LOG
fi
@@ -214,13 +211,8 @@ rlPhaseStartTest
rlRun -s "$LMI ver-hw $cmd"
rlAssertEquals "Printed table has just 2 rows" \
`cat $rlRun_LOG | wc -l` 2
- rlAssertGrep "^Prov
version\s\+$LMI_SOFTWARE_PROVIDER_VERSION$ver_suffix\$" \
+ rlAssertGrep "^Prov
version\s\+$LMI_HARDWARE_PROVIDER_VERSION$ver_suffix\$" \
$rlRun_LOG
- if [[ $cmd == system ]]; then
- reg="^Chassis Type\s\+.*"
- else
- reg="^Hostname\s\+$HOSTNAME" $rlRun_LOG
- fi
rm $rlRun_LOG
done
fi