From patchwork Tue May 13 03:27:08 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hui Zhu X-Patchwork-Id: 880 Return-Path: X-Original-To: siddhesh@wilcox.dreamhost.com Delivered-To: siddhesh@wilcox.dreamhost.com Received: from homiemail-mx21.g.dreamhost.com (peon2454.g.dreamhost.com [208.113.200.127]) by wilcox.dreamhost.com (Postfix) with ESMTP id 7971136007A for ; Mon, 12 May 2014 20:27:20 -0700 (PDT) Received: by homiemail-mx21.g.dreamhost.com (Postfix, from userid 14314964) id 9B1E218CD4AE; Mon, 12 May 2014 20:27:19 -0700 (PDT) X-Original-To: gdb@patchwork.siddhesh.in Delivered-To: x14314964@homiemail-mx21.g.dreamhost.com Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by homiemail-mx21.g.dreamhost.com (Postfix) with ESMTPS id 66CCA18CD4A6 for ; Mon, 12 May 2014 20:27:19 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:cc :subject:content-type:content-transfer-encoding; q=dns; s= default; b=GpyEm8A4Al1hXO34cnUpFI/gDSMReYy7Kp9irCOw5Le3hCvUfdCLM W9GzjVM+9iWnXQsuLnaAOJn68xtPzksxCct4vgUWx3NMtKV/v5w+eXiccFWx/HeQ hkIvvbeCLmPRTF/McgeD/PPMueXpi9hsN5bNb8OV6OT3/t4pOebnrE= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:cc :subject:content-type:content-transfer-encoding; s=default; bh=R bfC+1qoxzkP8C9Qq32PjQrMOhg=; b=d6DihxBUC5hfALRraypcswaJStOkOHOK6 xzd4j8PMMocRrQKHFOf7cWy8VVSvVw8sxW21KpXGLvMul15yU+gb79R+5l46yhSK iOsN1UPBgzAG7m3fdnHuSj9mC7vAc2xIiSuJWIE9604NQTtruXLGblFd52AYfcVc OnO9CrfZpU= Received: (qmail 28092 invoked by alias); 13 May 2014 03:27:16 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 28080 invoked by uid 89); 13 May 2014 03:27:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 13 May 2014 03:27:14 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1Wk3N0-0007b3-Ip from Hui_Zhu@mentor.com for gdb-patches@sourceware.org; Mon, 12 May 2014 20:27:10 -0700 Received: from SVR-ORW-FEM-03.mgc.mentorg.com ([147.34.97.39]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Mon, 12 May 2014 20:27:10 -0700 Received: from localhost.localdomain (147.34.91.1) by svr-orw-fem-03.mgc.mentorg.com (147.34.97.39) with Microsoft SMTP Server id 14.2.247.3; Mon, 12 May 2014 20:27:09 -0700 Message-ID: <5371910C.9020607@mentor.com> Date: Tue, 13 May 2014 11:27:08 +0800 From: Hui Zhu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: gdb-patches ml CC: Nathan Sidwell Subject: [PATCH] Add system test before "set remote system-call-allowed 1" X-IsSubscribed: yes X-DH-Original-To: gdb@patchwork.siddhesh.in This patch is update version according to the discussion in https://www.sourceware.org/ml/gdb-patches/2009-11/msg00090.html. If test get the target doesn't support fileio system according to the remote log. It will set this test as "unsupported". Before I made this patch, I want add a check before all of tests in this file. But I found that the target maybe support one call but not others. For example: my target support Fwrite, Fopen and so on. But not Fgettimeofday. And it doesn't support Fsystem NULL but it support Fsystem not NULL. So I think if we want to check target support fileio, we need check them one by one. Thanks, Hui 2014-05-13 Nathan Sidwell Hui Zhu * gdb.base/fileio.exp: Add test for shell not available as well as available. * gdb.base/fileio.c (test_system): Check for shell twice. --- a/gdb/testsuite/gdb.base/fileio.c +++ b/gdb/testsuite/gdb.base/fileio.c @@ -55,7 +55,11 @@ time(time_t *t); Not applicable. system (const char * string); -1) Invalid string/command. - returns 127. */ +1) See if shell available - returns 0 +2) See if shell available - returns !0 +3) Execute simple shell command - returns 0 +4) Invalid string/command. - returns 127. */ + static const char *strerrno (int err); /* Note that OUTDIR is defined by the test suite. */ @@ -375,21 +379,26 @@ test_system () */ int ret; - /* Test for shell */ + /* Test for shell (testsuite should have it disabled). */ ret = system (NULL); - printf ("system 1: ret = %d %s\n", ret, ret != 0 ? "OK" : ""); + printf ("system 1: ret = %d %s\n", ret, ret == 0 ? "OK" : ""); + stop (); + /* Test for shell again (the testsuite will have enabled it now). */ + ret = system (NULL); + printf ("system 2: ret = %d %s\n", ret, ret != 0 ? "OK" : ""); stop (); /* This test prepares the directory for test_rename() */ sprintf (sys, "mkdir -p %s/%s %s/%s", OUTDIR, TESTSUBDIR, OUTDIR, TESTDIR2); ret = system (sys); if (ret == 127) - printf ("system 2: ret = %d /bin/sh unavailable???\n", ret); + printf ("system 3: ret = %d /bin/sh unavailable???\n", ret); else - printf ("system 2: ret = %d %s\n", ret, ret == 0 ? "OK" : ""); + printf ("system 3: ret = %d %s\n", ret, ret == 0 ? "OK" : ""); stop (); /* Invalid command (just guessing ;-) ) */ ret = system ("wrtzlpfrmpft"); - printf ("system 3: ret = %d %s\n", ret, WEXITSTATUS (ret) == 127 ? "OK" : ""); + printf ("system 4: ret = %d %s\n", ret, + WEXITSTATUS (ret) == 127 ? "OK" : ""); stop (); } --- a/gdb/testsuite/gdb.base/fileio.exp +++ b/gdb/testsuite/gdb.base/fileio.exp @@ -180,19 +180,34 @@ gdb_test continue \ "Continuing\\..*isatty 5:.*OK$stop_msg" \ "Isatty (open file)" -gdb_test continue \ -"Continuing\\..*system 1:.*OK$stop_msg" \ -"System says shell is available" +gdb_test_no_output "set debug remote 1" +set msg "System says shell is not available" +gdb_test_multiple "continue" $msg { + -re "Continuing\\..*Fsystem.*system 1:.*OK$stop_msg\r\n$gdb_prompt $" { + pass $msg + } + -re ".*Fsystem.*$gdb_prompt $" { + fail $msg + } + -re ".*$gdb_prompt $" { + unsupported $msg + } +} +gdb_test_no_output "set debug remote 0" gdb_test_no_output "set remote system-call-allowed 1" gdb_test continue \ "Continuing\\..*system 2:.*OK$stop_msg" \ +"System says shell is available" + +gdb_test continue \ +"Continuing\\..*system 3:.*OK$stop_msg" \ "System(3) call" # Is this ok? POSIX says system returns a waitpid status? gdb_test continue \ -"Continuing\\..*system 3:.*OK$stop_msg" \ +"Continuing\\..*system 4:.*OK$stop_msg" \ "System with invalid command returns 127" gdb_test continue \