From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 52155 invoked by alias); 30 Oct 2015 10:45:43 -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 52118 invoked by uid 89); 30 Oct 2015 10:45:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Fri, 30 Oct 2015 10:45:39 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (Postfix) with ESMTPS id 25E1EC0798E5; Fri, 30 Oct 2015 10:45:38 +0000 (UTC) Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t9UAjaUn010986; Fri, 30 Oct 2015 06:45:36 -0400 Message-ID: <56334A4F.3000308@redhat.com> Date: Fri, 30 Oct 2015 15:41:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: =?UTF-8?B?TWFyY2luIEtvxZtjaWVsbmlja2k=?= , gdb-patches@sourceware.org Subject: Re: [PATCH 01/13] gdb/record: Add testcases for a few syscalls. References: <5632035E.30809@redhat.com> <1446151197-17144-1-git-send-email-koriakin@0x04.net> In-Reply-To: <1446151197-17144-1-git-send-email-koriakin@0x04.net> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-SW-Source: 2015-10/txt/msg00755.txt.bz2 Excellent. Fix the nits below, and you're good to go. Please push with these fixed. On 10/29/2015 08:39 PM, Marcin Kościelnicki wrote: > PR python/18073 > diff --git a/gdb/testsuite/gdb.reverse/fstatat-reverse.c b/gdb/testsuite/gdb.reverse/fstatat-reverse.c > new file mode 100644 > index 0000000..759d466 > --- /dev/null > +++ b/gdb/testsuite/gdb.reverse/fstatat-reverse.c > @@ -0,0 +1,43 @@ > +/* This testcase is part of GDB, the GNU debugger. > + > + Copyright 2008-2015 Free Software Foundation, Inc. > + > + This program is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 3 of the License, or > + (at your option) any later version. > + > + This program is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with this program. If not, see . */ > + > +#define _GNU_SOURCE > +#include > +#include > +#include > + > +void > +marker1 (void) > +{ > +} > + > +void > +marker2 (void) > +{ > +} > + > +struct stat buf; > + > +int > +main () (void) here (and elsewhere as needed), as discussed. > diff --git a/gdb/testsuite/gdb.reverse/pipe-reverse.c b/gdb/testsuite/gdb.reverse/pipe-reverse.c > new file mode 100644 > index 0000000..ec8438c > --- /dev/null > +++ b/gdb/testsuite/gdb.reverse/pipe-reverse.c > @@ -0,0 +1,39 @@ > +#define _GNU_SOURCE > +#include > + > +void > +marker1 (void) > +{ > +} > + > +void > +marker2 (void) > +{ > +} > + > +int fds[2] = { -1, -1 }; > + > +int > +main () { Like break before {. > + marker1 (); > + pipe (fds); > + marker2 (); > + return 0; > +} > --- /dev/null > +++ b/gdb/testsuite/gdb.reverse/recvmsg-reverse.c > @@ -0,0 +1,94 @@ > +#define _GNU_SOURCE > +#include > +#include > +#include > +#include > + > +void > +marker1 (void) > +{ > +} > + > +void > +marker2 (void) > +{ > +} > + > +char wdata[] = "abcdef"; > + > +struct iovec wv[1] = { > + { wdata, 6 }, > +}; > + > +char wc[CMSG_SPACE(sizeof (struct ucred)) + CMSG_SPACE(sizeof (int))]; Space before parens. > + > +struct msghdr wmsg = { > + 0, 0, > + wv, 1, > + wc, sizeof wc, > + 0, > +}; > + > +char rdata[5] = "xxxx"; > + > +struct iovec rv[2] = { > + {&rdata[2], 2}, > + {&rdata[0], 2}, > +}; > + > +char rc[CMSG_SPACE(sizeof (struct ucred)) + 7]; > + > +struct msghdr rmsg = { > + 0, 0, > + rv, 2, > + rc, sizeof rc, > + 0, > +}; > + > +int fds[2]; > + > +int > +main () > +{ > + int itrue = 1; > + /* prepare cmsg to send */ > + struct cmsghdr *cm1 = CMSG_FIRSTHDR(&wmsg); > + cm1->cmsg_len = CMSG_LEN(sizeof (struct ucred)); Space before parens, twice. > + cm1->cmsg_level = AF_UNIX; > + cm1->cmsg_type = SCM_CREDENTIALS; > + struct ucred *uc = (void *)CMSG_DATA(cm1); Space after cast. Space before parens. > + uc->pid = getpid (); > + uc->uid = getuid (); > + uc->gid = getgid (); > + struct cmsghdr *cm2 = CMSG_NXTHDR(&wmsg, cm1); > + cm2->cmsg_len = CMSG_LEN(sizeof (int)); Space before parens, twice. > + cm2->cmsg_level = AF_UNIX; > + cm2->cmsg_type = SCM_RIGHTS; > + int *pfd = (void *)CMSG_DATA(cm2); Space after cast. Space before parens. > + *pfd = 2; > + /* do the syscalls */ > + marker1(); Space before parens. > + socketpair (AF_UNIX, SOCK_DGRAM, 0, fds); > + setsockopt (fds[0], SOL_SOCKET, SO_PASSCRED, &itrue, sizeof itrue); > + sendmsg (fds[1], &wmsg, 0); > + recvmsg (fds[0], &rmsg, 0); > + marker2(); Space before parens. > new file mode 100644 > index 0000000..a681335 > --- /dev/null > +++ b/gdb/testsuite/gdb.reverse/waitpid-reverse.c > @@ -0,0 +1,45 @@ > +#include > +#include > +#include > + > +void > +marker1 (void) > +{ > +} > + > +void > +marker2 (void) > +{ > +} > + > +int status = -1; > + > +int > +main () > +{ > + marker1 (); > + if (!fork ()) { > + _exit (123); > + } else { > + waitpid (-1, &status, 0); > + } Formatting {} go on their own lines. But since this these single-line statements, drop the unnecessary {}s: if (!fork ()) _exit (123); else waitpid (-1, &status, 0); > + marker2 (); > + return 0; > +} Thanks, Pedro Alves