From mboxrd@z Thu Jan 1 00:00:00 1970 From: David F Barrera Subject: Re: [PATCH][XM-TEST] Fix bugzilla # 674 by changing the xm-test Console.py to wait for the command prompt. Date: Mon, 19 Jun 2006 11:17:57 -0500 Message-ID: <4496CE35.5090205@us.ibm.com> References: <1150483754.7702.13.camel@localhost.localdomain> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070604060006040607050709" Return-path: In-Reply-To: <1150483754.7702.13.camel@localhost.localdomain> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Harry Butterworth Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------070604060006040607050709 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Harry, I tested your patch against the same code base as with the xm-test ran without your patch. The results look much better. Attached are the xm-test reports from both runs, with and without your patch, on two machines, one a SLES 9 based x335, and the other a RHEL 4 based HS20 Blade running a 32-bit OS. Harry Butterworth wrote: > Lots of xm-test tests are failing with console timeouts on some machines > at the moment. I reproduced the problem and found it was due to some > probing activity in the boot process of the -xen kernel. The behaviour > of the current xm-test code is to assume that the boot process has > finished after performing three one-second waits for input---when the > probing activity introduces more than three one-second delays the test > suite breaks. > > The patch below changes the test suite to wait for the command prompt > before attempting to submit a command. The timeout is increased from 3 > seconds to 3 minutes but the wait exits early when the prompt is found > so the test suite doesn't take any longer to run. > > DO NOT APPLY. This patch is FOR REVIEW ONLY at this stage since my > python skills are pretty lame and it really needs to get some testing > from people who have actually been experiencing problems. For me, > xm-test works the same on my machine with and without this patch. > > Signed-off-by Harry Butterworth > > ------------------------------------------------------------------------ > > diff -r ee3d10828937 -r 2dcc3cc7118e tools/xm-test/lib/XmTestLib/Console.py > --- a/tools/xm-test/lib/XmTestLib/Console.py Fri Jun 16 13:43:54 2006 > +++ b/tools/xm-test/lib/XmTestLib/Console.py Fri Jun 16 18:28:52 2006 > @@ -82,9 +82,6 @@ > > tty.setraw(self.consoleFd, termios.TCSANOW) > > - self.__chewall(self.consoleFd) > - > - > def __addToHistory(self, line): > self.historyBuffer.append(line) > self.historyLines += 1 > @@ -120,34 +117,47 @@ > output""" > self.PROMPT = prompt > > - > - def __chewall(self, fd): > + def __getprompt(self, fd): > timeout = 0 > - bytes = 0 > - > - while timeout < 3: > - i, o, e = select.select([fd], [], [], 1) > - if fd in i: > - try: > - foo = os.read(fd, 1) > - if self.debugMe: > - sys.stdout.write(foo) > - bytes += 1 > - except Exception, exn: > - raise ConsoleError(str(exn)) > - > - else: > - timeout += 1 > - > - if self.limit and bytes >= self.limit: > + bytes = 0 > + while timeout < 180: > + # eat anything while total bytes less than limit else raise RUNAWAY > + while (not self.limit) or (bytes < self.limit): > + i, o, e = select.select([fd], [], [], 1) > + if fd in i: > + try: > + foo = os.read(fd, 1) > + if self.debugMe: > + sys.stdout.write(foo) > + bytes += 1 > + except Exception, exn: > + raise ConsoleError(str(exn)) > + else: > + break > + else: > raise ConsoleError("Console run-away (exceeded %i bytes)" > % self.limit, RUNAWAY) > - > - if self.debugMe: > - print "Ignored %i bytes of miscellaneous console output" % bytes > - > - return bytes > - > + # press enter > + os.write(self.consoleFd, "\n") > + # look for prompt > + for prompt_char in "\r\n" + self.PROMPT: > + i, o, e = select.select([fd], [], [], 1) > + if fd in i: > + try: > + foo = os.read(fd, 1) > + if self.debugMe: > + sys.stdout.write(foo) > + if foo != prompt_char: > + break > + except Exception, exn: > + raise ConsoleError(str(exn)) > + else: > + timeout += 1 > + break > + else: > + break > + else: > + raise ConsoleError("Timed out waiting for console prompt") > > def __runCmd(self, command, saveHistory=True): > output = "" > @@ -155,7 +165,7 @@ > lines = 0 > bytes = 0 > > - self.__chewall(self.consoleFd) > + self.__getprompt(self.consoleFd) > > if verbose: > print "[%s] Sending `%s'" % (self.domain, command) > @@ -176,7 +186,7 @@ > "Failed to read from console (fd=%i): %s" % > (self.consoleFd, exn)) > else: > - raise ConsoleError("Timed out waiting for console") > + raise ConsoleError("Timed out waiting for console command") > > if self.limit and bytes >= self.limit: > raise ConsoleError("Console run-away (exceeded %i bytes)" > > ------------------------------------------------------------------------ > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel > -- Regards, David F Barrera Linux Technology Center Systems and Technology Group, IBM "The wisest men follow their own direction. " Euripides --------------070604060006040607050709 Content-Type: text/plain; name="hs20.rhel4-x86_32_harry.report" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="hs20.rhel4-x86_32_harry.report" Xm-test execution summary: PASS: 99 FAIL: 18 XPASS: 0 XFAIL: 3 Details: FAIL: 01_block_attach_device_pos block-attach failed device did not switch to Connected state FAIL: 02_block_attach_file_device_pos block-attach failed device did not switch to Connected state FAIL: 04_block_attach_device_repeatedly_pos Device is not actually attached to domU FAIL: 05_block_attach_and_dettach_device_repeatedly_pos block-attach failed device did not switch to Connected state FAIL: 09_block_attach_and_dettach_device_check_data_pos xm block-attach returned invalid 256 != 0 FAIL: 12_block_attach_shared_domU Unable to start domain FAIL: 01_block-destroy_btblock_pos Unable to create domain FAIL: 02_block-destroy_rtblock_pos xm block-attach returned invalid 256 != 0 FAIL: 05_block-destroy_byname_pos Unable to create domain FAIL: 13_create_multinic_pos (0 nics) Failed to create domain FAIL: 14_create_blockroot_pos Failed to create domain FAIL: 03_memset_random_pos Timed out waiting for console prompt FAIL: 01_migrate_localhost_pos xm migrate returned invalid 256 != 0 XFAIL: 02_network_local_ping_pos ping loopback failed for size 65507. ping eth0 failed for size 65507. XFAIL: 05_network_dom0_ping_pos Ping to dom0 failed for size 65507. XFAIL: 11_network_domU_ping_pos Ping failed for size 1 48 64 512 1440 1500 1505 4096 4192 32767 65507. FAIL: 12_network_domU_tcp_pos TCP hping2 failed for size 16384 24567 32767 65495. FAIL: 13_network_domU_udp_pos UDP hping2 failed for size 32767 65495. --------------070604060006040607050709 Content-Type: text/plain; name="hs20.rhel4-x86_32.report" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="hs20.rhel4-x86_32.report" Xm-test execution summary: PASS: 69 FAIL: 48 XPASS: 0 XFAIL: 3 Details: FAIL: 01_block_attach_device_pos FAIL: 02_block_attach_file_device_pos Unknown reason FAIL: 04_block_attach_device_repeatedly_pos Unknown reason FAIL: 05_block_attach_and_dettach_device_repeatedly_pos Unknown reason FAIL: 07_block_attach_baddevice_neg Unknown reason FAIL: 08_block_attach_bad_filedevice_neg Unknown reason FAIL: 09_block_attach_and_dettach_device_check_data_pos Unknown reason FAIL: 12_block_attach_shared_domU Unknown reason FAIL: 01_block-destroy_btblock_pos Unknown reason FAIL: 02_block-destroy_rtblock_pos Unknown reason FAIL: 06_block-destroy_check_list_pos Unknown reason FAIL: 01_block-list_pos Unknown reason FAIL: 03_block-list_anotherbd_pos Unknown reason FAIL: 06_block-list_checkremove_pos block-detach failed device did not disappear FAIL: 01_block_device_read_verify Unknown reason FAIL: 02_block_device_write_verify Unknown reason FAIL: 01_create_basic_pos Unknown reason FAIL: 11_create_concurrent_pos Unknown reason FAIL: 12_create_concurrent_stress_pos Unknown reason FAIL: 13_create_multinic_pos Unknown reason FAIL: 14_create_blockroot_pos Unknown reason FAIL: 15_create_smallmem_pos Unknown reason FAIL: 01_destroy_basic_pos Unknown reason FAIL: 07_destroy_stale_pos Unknown reason FAIL: 04_list_goodparm_pos Unknown reason FAIL: 03_memset_random_pos Unknown reason FAIL: 04_memset_smallmem_pos Unknown reason FAIL: 01_migrate_localhost_pos xm migrate returned invalid 256 != 0 XFAIL: 02_network_local_ping_pos Failed to create domain FAIL: 03_network_local_tcp_pos Failed to create domain FAIL: 04_network_local_udp_pos Unknown reason XFAIL: 05_network_dom0_ping_pos Ping to dom0 failed for size 65507. FAIL: 06_network_dom0_tcp_pos Unknown reason FAIL: 07_network_dom0_udp_pos Failed to create domain XFAIL: 11_network_domU_ping_pos Failed to create domain FAIL: 12_network_domU_tcp_pos Failed to create domain FAIL: 13_network_domU_udp_pos Failed to create domain FAIL: 01_network_attach_pos Unknown reason FAIL: 02_network_attach_detach_pos Unknown reason FAIL: 03_network_attach_detach_multiple_pos xm network-attach returned invalid 256 != 0 FAIL: 01_pause_basic_pos Unknown reason FAIL: 01_reboot_basic_pos Unknown reason FAIL: 01_restore_basic_pos Unknown reason FAIL: 04_restore_withdevices_pos Failed to create domain FAIL: 01_save_basic_pos Unknown reason FAIL: 03_save_bogusfile_neg Unknown reason FAIL: 03_sysrq_withreboot_pos Unknown reason FAIL: 01_unpause_basic_pos Unknown reason --------------070604060006040607050709 Content-Type: text/plain; name="x335sles9_harry.report" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="x335sles9_harry.report" Xm-test execution summary: PASS: 105 FAIL: 11 XPASS: 0 XFAIL: 3 Details: FAIL: 01_block_attach_device_pos block-attach failed device did not switch to Connected state FAIL: 02_block_attach_file_device_pos block-attach failed device did not switch to Connected state FAIL: 04_block_attach_device_repeatedly_pos Device is not actually attached to domU FAIL: 05_block_attach_and_dettach_device_repeatedly_pos block-attach failed device did not switch to Connected state XFAIL: 02_network_local_ping_pos ping loopback failed for size 65507. ping eth0 failed for size 65507. XFAIL: 05_network_dom0_ping_pos Ping to dom0 failed for size 1440 1500 1505 4096 65507. FAIL: 06_network_dom0_tcp_pos TCP hping2 to dom0 failed for size 4096 4192 32767. FAIL: 07_network_dom0_udp_pos UDP hping2 to dom0 failed for size 64 512 1440 1500 1505 4096 32767 65495. XFAIL: 11_network_domU_ping_pos Ping failed for size 1 48 64 512 1440 1500 1505 4096 4192 32767 65507. FAIL: 12_network_domU_tcp_pos TCP hping2 failed for size 16384 24567 32767 65495. FAIL: 13_network_domU_udp_pos UDP hping2 failed for size 32767 65495. --------------070604060006040607050709 Content-Type: text/plain; name="x335sles9.report" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="x335sles9.report" Xm-test execution summary: PASS: 68 FAIL: 48 XPASS: 0 XFAIL: 3 Details: FAIL: 01_block_attach_device_pos FAIL: 02_block_attach_file_device_pos block-attach failed device did not switch to Connected state FAIL: 04_block_attach_device_repeatedly_pos Unknown reason FAIL: 05_block_attach_and_dettach_device_repeatedly_pos Unknown reason FAIL: 07_block_attach_baddevice_neg Unknown reason FAIL: 09_block_attach_and_dettach_device_check_data_pos Unknown reason FAIL: 12_block_attach_shared_domU Unknown reason FAIL: 01_block-destroy_btblock_pos Unknown reason FAIL: 02_block-destroy_rtblock_pos Unknown reason FAIL: 05_block-destroy_byname_pos Unknown reason FAIL: 06_block-destroy_check_list_pos Unknown reason FAIL: 01_block-list_pos Unknown reason FAIL: 02_block-list_attachbd_pos Unknown reason FAIL: 03_block-list_anotherbd_pos Unknown reason FAIL: 01_block_device_read_verify Unknown reason FAIL: 02_block_device_write_verify Unknown reason FAIL: 01_create_basic_pos Unknown reason FAIL: 11_create_concurrent_pos Unknown reason FAIL: 12_create_concurrent_stress_pos Unknown reason FAIL: 13_create_multinic_pos Unknown reason FAIL: 14_create_blockroot_pos Unknown reason FAIL: 15_create_smallmem_pos Unknown reason FAIL: 01_destroy_basic_pos Unknown reason FAIL: 07_destroy_stale_pos Unknown reason FAIL: 04_list_goodparm_pos Unknown reason FAIL: 01_memset_basic_pos Unknown reason FAIL: 03_memset_random_pos Unknown reason FAIL: 04_memset_smallmem_pos Unknown reason FAIL: 01_migrate_localhost_pos Unknown reason XFAIL: 02_network_local_ping_pos ping loopback failed for size 65507. ping eth0 failed for size 65507. FAIL: 03_network_local_tcp_pos Unknown reason XFAIL: 05_network_dom0_ping_pos Unknown reason FAIL: 06_network_dom0_tcp_pos Unknown reason FAIL: 07_network_dom0_udp_pos Unknown reason XFAIL: 11_network_domU_ping_pos Ping failed for size 1 48 64 512 1440 1500 1505 4096 4192 32767 65507. FAIL: 12_network_domU_tcp_pos Unknown reason FAIL: 13_network_domU_udp_pos UDP hping2 failed for size 32767 65495. FAIL: 01_network_attach_pos Unknown reason FAIL: 03_network_attach_detach_multiple_pos Unknown reason FAIL: 01_pause_basic_pos Unknown reason FAIL: 01_reboot_basic_pos Unknown reason FAIL: 01_restore_basic_pos Unknown reason FAIL: 04_restore_withdevices_pos Unknown reason FAIL: 03_save_bogusfile_neg Unknown reason FAIL: 01_shutdown_basic_pos Unknown reason FAIL: 02_sysrq_sync_pos Unknown reason FAIL: 03_sysrq_withreboot_pos Unknown reason FAIL: 01_unpause_basic_pos Unknown reason --------------070604060006040607050709 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------070604060006040607050709--