[Ovirt-devel] [PATCH node-image] Fixing the autotest script.

Darryl L. Pierce dpierce at redhat.com
Tue May 19 21:34:07 UTC 2009


The test_stateless_pxe_nohd test was broken. Fixed.

Result code was not matching the success/failure state for the tests.
Fixed.

Signed-off-by: Darryl L. Pierce <dpierce at redhat.com>
---
 autotest.sh |  115 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 65 insertions(+), 50 deletions(-)

diff --git a/autotest.sh b/autotest.sh
index 12d3e30..e5e23a8 100755
--- a/autotest.sh
+++ b/autotest.sh
@@ -81,8 +81,7 @@ execute_test () {
     log "Completed test: $testname [result=$rc]"
 
     if [ $rc -ne 0 ]; then
-        log "Build fails smoke tests."
-        exit 1
+	log "Build fails smoke tests."
     fi
 
     return $rc
@@ -103,7 +102,7 @@ setup_pxeboot () {
     # set default kernel arguments if none were provided
     # the defaults boot in standalone mode
     if [ -z "$kernelargs" ]; then
-	kernelargs="ovirt_standalone"
+	kernelargs="standalone"
     fi
 
     local definition="DEFAULT pxeboot"
@@ -133,18 +132,18 @@ start_dnsmasq () {
     stop_dnsmasq
     debug "Starting dnsmasq"
     dns_startup="sudo /usr/sbin/dnsmasq --read-ethers
-                                        --dhcp-range=${NETWORK}.100,${NETWORK}.254,255.255.255.0,24h
-                                        --conf-file=
-                                        --interface=${iface}
-                                        --bind-interfaces
-                                        --except-interface=lo
-                                        --dhcp-boot=tftpboot/pxelinux.0
-                                        --enable-tftp
-                                        --tftp-root=${tftproot}
-                                        --log-facility=/tmp/dnsmasq-${nodename}.log
-                                        --log-queries
-                                        --log-dhcp
-                                        --pid-file=${pidfile}"
+					--dhcp-range=${NETWORK}.100,${NETWORK}.254,255.255.255.0,24h
+					--conf-file=
+					--interface=${iface}
+					--bind-interfaces
+					--except-interface=lo
+					--dhcp-boot=tftpboot/pxelinux.0
+					--enable-tftp
+					--tftp-root=${tftproot}
+					--log-facility=/tmp/dnsmasq-${nodename}.log
+					--log-queries
+					--log-dhcp
+					--pid-file=${pidfile}"
     if [ -n "$macaddress" ]; then
 	dns_startup="${dns_startup} --dhcp-host=${macaddress},${NODE_ADDRESS}"
     fi
@@ -407,8 +406,7 @@ tests=''; testcount=0;
 
 # $1 - test name
 add_test () {
-    tests[$testcount]=$1
-    testcount=$testcount+1
+    tests="${tests} $1"
 }
 
 # $1 - node name
@@ -470,19 +468,20 @@ substitute_boot_device () {
     fi
 }
 
-add_test "test_stateless_pxe_with_nohd"
-test_stateless_pxe_with_nohd () {
-    local nodename="${vm_prefix}-stateless-pxe-nohd"
+add_test "test_stateless_pxe"
+test_stateless_pxe () {
+    local nodename="${vm_prefix}-stateless-pxe"
     local workdir=$(mktemp -d)
 
     start_networking $nodename $IFACE_NAME false true $workdir
 
-    configure_node "${nodename}" "network" "" "" "" "local noapic=true"
-    boot_with_pxe "${nodename}" "firstboot=no" "${workdir}"
+    configure_node "${nodename}" "network" "" "10000" "" "local noapic=true"
+    boot_with_pxe "${nodename}" "standalone firstboot=no" "${workdir}"
 
     expect -c '
 set timeout 120
-log_file -noappend stateless-pxe-nohd.log
+
+log_file -noappend stateless-pxe.log
 
 spawn sudo virsh console '"${nodename}"'
 
@@ -491,20 +490,18 @@ expect {
     -exact "Starting ovirt-early:" { send_log "\n\nMarker 2\n\n"; exp_continue }
     -exact "Starting ovirt:"       { send_log "\n\nMarker 3\n\n"; exp_continue }
     -exact "Starting ovirt-post:"  { send_log "\n\nMarker 4\n\n"; exp_continue }
-    -exact "login:"      { send_log "\n\nMarker 5\n\n"; exit }
+    -re    "localhost.*login:"     { send_log "\n\nMarker 5\n\n"; exit }
     timeout {
-        send_log "\nMarker not found.\n\n"
+	send_log "\nTimeout waiting for marker..\n\n"
 	exit 1
     } eof {
-        send_log "Unexpected end of file."
+	send_log "Unexpected end of file."
 	exit 2
     }
-
-    send_log \"\n\nUnexpected end of interaction.\n\n\"
-    exit 3
 }
-'
 
+send_log "\n\nUnexpected end of interaction.\n\n"
+exit 3'
     result=$?
 
     destroy_node $nodename
@@ -513,14 +510,14 @@ expect {
     return $result
 }
 
-add_test "test_stateless_pxe"
-test_stateless_pxe () {
-    local nodename="${vm_prefix}-stateless-pxe"
+add_test "test_stateless_pxe_with_nohd"
+test_stateless_pxe_with_nohd () {
+    local nodename="${vm_prefix}-stateless-pxe-nohd"
     local workdir=$(mktemp -d)
 
     start_networking $nodename $IFACE_NAME false true $workdir
 
-    configure_node "${nodename}" "network" "" "10000" "" "local noapic=true"
+    configure_node "${nodename}" "network" "" "" "" "local noapic=true"
     boot_with_pxe "${nodename}" "firstboot=no" "${workdir}"
 
     expect -c '
@@ -537,16 +534,17 @@ expect {
     -exact "Starting ovirt-post:"  { send_log "\n\nMarker 4\n\n"; exp_continue }
     -re    "localhost.*login:"     { send_log "\n\nMarker 5\n\n"; exit }
     timeout {
-        send_log "\nMarker not found.\n\n"
-	exit 1
+       send_log "\nTimeout waiting for marker..\n\n"
+       exit 1
     } eof {
-        send_log "Unexpected end of file."
-	exit 2
+       send_log "Unexpected end of file."
+       exit 2
     }
 }
 
 send_log "\n\nUnexpected end of interaction.\n\n"
 exit 3'
+
     result=$?
 
     destroy_node $nodename
@@ -568,7 +566,7 @@ test_stateful_pxe () {
     start_networking $nodename $IFACE_NAME false true $workdir
 
     configure_node "${nodename}" "network" "" "10000" "" "local noapic=true"
-    boot_with_pxe "${nodename}" "ovirt_standalone ovirt_init=/dev/vda ovirt_local_boot ip=${ipaddress}" ${workdir}
+    boot_with_pxe "${nodename}" "standalone storage_init=/dev/vda local_boot ip=${ipaddress}" ${workdir}
 
     # verify the booting and installation
     expect -c '
@@ -586,10 +584,10 @@ expect {
     -exact "Starting partitioning of /dev/vda" { send_log "\n\nMarker 6\n\n"; exp_continue }
     -exact "Restarting system"                 { send_log "\n\nMarker 7\n\n"; exit }
     timeout {
-        send_log "\nMarker not found.\n\n"
+	send_log "\nTimeout waiting for marker..\n\n"
 	exit 1
     } eof {
-        send_log "Unexpected end of file."
+	send_log "Unexpected end of file."
 	exit 2
     }
 }
@@ -616,11 +614,11 @@ expect {
     -re "localhost.*login:" { send_log "\n\nLogin marker found\n\n"; exit }
 
     timeout {
-        send_log "\nMarker not found.\n\n"
-        exit 1
+	send_log "\nMarker not found.\n\n"
+	exit 1
     } eof {
-        send_log "Unexpected end of file."
-        exit 2
+	send_log "Unexpected end of file."
+	exit 2
     }
 }
 
@@ -639,11 +637,11 @@ expect {
     -exact "64 bytes from '"${ipaddress}"'" { send_log "\n\nGot ping response!\n"; send_log "\n\nNetworking verified!\n"; exit }
 
     timeout {
-        send_log "\nMarker not found.\n\n"
-        exit 1
+	send_log "\nMarker not found.\n\n"
+	exit 1
     } eof {
-        send_log "Unexpected end of file."
-        exit 2
+	send_log "Unexpected end of file."
+	exit 2
     }
 }
 
@@ -676,13 +674,15 @@ setup_for_testing () {
 
 # cleans up any loose ends
 cleanup_after_testing () {
+    debug "Cleaning up"
     stop_dnsmasq
     stop_networking
     # destroy any running vms
     vm_list=$(sudo virsh list --all | awk '/'${vm_prefix}-'/ { print $2 }')
     test -n "$vm_list" && for vm in $vm_list; do
-        destroy_node $vm
+	destroy_node $vm
     done
+    stop_networking
 }
 
 # check commandline options
@@ -715,15 +715,30 @@ set +u
 if [ $# -gt 0 -a -n "$1" ]; then RESULTS=$1; else RESULTS=autotest.log; fi
 set -u
 
+result_file=$(mktemp)
+debug "result_file=${result_file}"
+
 log "Logging results to file: ${RESULTS}"
 {
     setup_for_testing
 
     log "Begin Testing: ${isoname}"
+    log "Tests: ${tests}"
 
     for test in ${tests}; do
 	execute_test $test
+	result=$?
+
+	if [ $result != 0 ]; then
+	    echo "${result}" > $result_file
+	    break
+	fi
     done
 
     log "End Testing: ${isoname}"
+
 } | sudo tee --append $RESULTS
+
+if [ -s "$result_file" ]; then
+    exit $(cat $result_file)
+fi
-- 
1.6.0.6




More information about the ovirt-devel mailing list