From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18744 invoked by alias); 19 Feb 2013 06:57:14 -0000 Received: (qmail 18724 invoked by uid 22791); 19 Feb 2013 06:57:13 -0000 X-SWARE-Spam-Status: No, hits=-4.8 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-oa0-f50.google.com (HELO mail-oa0-f50.google.com) (209.85.219.50) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 19 Feb 2013 06:57:07 +0000 Received: by mail-oa0-f50.google.com with SMTP id l20so6572508oag.37 for ; Mon, 18 Feb 2013 22:57:06 -0800 (PST) X-Received: by 10.60.29.194 with SMTP id m2mr3760706oeh.36.1361257026799; Mon, 18 Feb 2013 22:57:06 -0800 (PST) MIME-Version: 1.0 Received: by 10.60.46.133 with HTTP; Mon, 18 Feb 2013 22:56:26 -0800 (PST) In-Reply-To: <5122049C.3050800@codesourcery.com> References: <50F3ADB8.1000603@codesourcery.com> <50F55E11.40008@codesourcery.com> <50F67844.5040007@codesourcery.com> <87a9s6a4tu.fsf@fleche.redhat.com> <5122049C.3050800@codesourcery.com> From: Hui Zhu Date: Tue, 19 Feb 2013 06:57:00 -0000 Message-ID: Subject: Re: [PATCH] Add CTF support to GDB [5] Add test for CTF function To: Yao Qi Cc: Tom Tromey , Joel Brobecker , gdb-patches ml Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes 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 X-SW-Source: 2013-02/txt/msg00488.txt.bz2 On Mon, Feb 18, 2013 at 6:38 PM, Yao Qi wrote: > On 01/25/2013 07:09 PM, Hui Zhu wrote: >> >> +# Get the pathname of babeltrace and set it to $which_babeltrace. >> +# If host doesn't have babeltrace, $which_babeltrace will set to 0. >> +if [info exists BABELTRACE] { >> >> + set which_babeltrace ${BABELTRACE} >> +} else { >> + remote_exec host "which babeltrace" "" "/dev/null" >> "babeltrace.which" >> >> + remote_upload host "babeltrace.which" >> + set which_babeltrace [file_contents "babeltrace.which"] >> + remote_file build delete "babeltrace.which" >> + remote_file host delete "babeltrace.which" >> +} >> + >> +# Use $which_babeltrace check $ctfdir. >> +if { $which_babeltrace =3D=3D "" } then { >> >> + unsupported "babeltrace check ctf directory" >> +} else { >> + # Let babeltrace output an error to make sure current way is right. >> >> + remote_exec host "$which_babeltrace not_exist" "" "/dev/null" >> "babeltrace.output" >> + remote_upload host "babeltrace.output" >> + set babeltrace_output [file_contents "babeltrace.output"] >> + remote_file build delete "babeltrace.output" >> + remote_file host delete "babeltrace.output" >> + if { [string last "\[error\]" $babeltrace_output] =3D=3D -1 } then { >> + unsupported "cannot handle babeltrace output" >> + } else { >> + #Call $which_babeltrace check $ctfdir. >> >> + remote_exec host "$which_babeltrace $ctfdir" "" "/dev/null" >> "babeltrace.output" >> + remote_upload host "babeltrace.output" >> + set babeltrace_output [file_contents "babeltrace.output"] >> + remote_file build delete "babeltrace.output" >> + remote_file host delete "babeltrace.output" >> + if { [string last "\[error\]" $babeltrace_output] !=3D -1 } then= { >> + fail "babeltrace open ctf directory" >> + } >> + } >> +} > > > Unless I misunderstand it, it is still incorrect. IIUC, what you want to= do > here is to run "babeltrace" to check your trace data, you can simply do > > remote_exec host "babeltrace $ctfdir < /dev/null" "" "/dev/null" > "output" > > You can tell from the return value and "output" about > 1) whether babeltrace is installed on host machine, > 2) whether babeltrace is executed successfully. If I think is right, this idea base on "babeltrace" will not change its error output. But if they change the error output in some feature version. And maybe in different environment, this test will face with different version of "babeltrace". So what I want in this test call "babeltrace" is: 1. Make sure the system have the "babeltrace". It is not because call this command got error. Just because the system really don't have it. 2. Make sure the current way in test is the right way to check the output of babeltrace. 3. Use this way to check the output the babeltrace. Are you sure a "remote_exec" is OK for this part? Or maybe I think too much in this part? :) Thanks, Hui > > DejaGNU is smart enough to know what is the host machine, and execute this > command there, which is determined by the board file. If you are testing= a > native gdb, the command will be run in local machine, if you are testing = GDB > in a remote host way (test a native mingw32 native gdb on linux machine), > this command will be executed on the remote host (a windows machine). > > -- > Yao (=E9=BD=90=E5=B0=A7)