From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 86454 invoked by alias); 23 Jul 2019 07:50:17 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 86446 invoked by uid 89); 23 Jul 2019 07:50:17 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.2 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS autolearn=ham version=3.3.1 spammy=UD:gdb.log, gdblog, gdb.log X-HELO: mx1.suse.de Received: from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 23 Jul 2019 07:50:16 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 25A08AF7C for ; Tue, 23 Jul 2019 07:50:14 +0000 (UTC) Date: Tue, 23 Jul 2019 07:50:00 -0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH][gdb/testsuite] Fix command result testing in mi-complete.exp Message-ID: <20190723075010.GA27426@delia> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) X-IsSubscribed: yes X-SW-Source: 2019-07/txt/msg00532.txt.bz2 Hi, When running gdb.mi/mi-complete.exp in conjunction with: ... $ stress -c $(($(cat /proc/cpuinfo | grep -c "^processor") + 1)) ... we get less than 50% full passes: ... $ for n in $(seq 1 100); do \ make V=1 -O check \ 'RUNTESTFLAGS=gdb.mi/mi-complete.exp --target_board=unix'; \ done 2>&1 \ | grep "expected passes" | sort | uniq -c 45 # of expected passes 7 9 # of expected passes 8 46 # of expected passes 9 ... A diff between a passing and failing gdb.log shows this difference: ... -&"set max-completions 1\n" 2-complete br +&"set max-completions 1\n" ... The problem is that the test-case issues the "set max-completion " command, and without waiting for the output issues a next command, and tries to parse the results of both commands, expecting a specific interleaving of the various output streams. Fix the FAIL by waiting for the result of the "set max-completion " command before issuing another command. Tested on x86_64-linux. OK for trunk? Thanks, - Tom [gdb/testsuite] Fix command result testing in mi-complete.exp gdb/testsuite/ChangeLog: 2019-07-23 Tom de Vries PR testsuite/24711 * gdb.mi/mi-complete.exp: Wait for "set max-completions" result before issuing next command. --- gdb/testsuite/gdb.mi/mi-complete.exp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gdb/testsuite/gdb.mi/mi-complete.exp b/gdb/testsuite/gdb.mi/mi-complete.exp index 692b004fd9..5b9613548f 100644 --- a/gdb/testsuite/gdb.mi/mi-complete.exp +++ b/gdb/testsuite/gdb.mi/mi-complete.exp @@ -58,14 +58,16 @@ mi_gdb_test "-info-gdb-mi-command complete" \ # Limit max completions and check that max_completions_reached=\"0\" is set # to 1. -send_gdb "set max-completions 1\n" +mi_gdb_test "set max-completions 1" ".*=cmd-param-changed.*\\^done" \ + "set max-completions 1" mi_gdb_test "2-complete br" \ ".*2\\^done,completion=\"br\[A-Za-z0-9-\]+\",matches=\\\[\"br\[A-Za-z0-9-\]+\"\\\],max_completions_reached=\"1\"" \ "-complete br, max-completions 1" # Disable completions and check an error is returned -send_gdb "set max-completions 0\n" +mi_gdb_test "set max-completions 0" ".*=cmd-param-changed.*\\^done" \ + "set max-completions 0" mi_gdb_test "3-complete br" \ ".*3\\^error,msg=\".*" \