Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp162531yba; Thu, 2 May 2019 22:36:52 -0700 (PDT) X-Google-Smtp-Source: APXvYqzzkQ+lgauvSpskp9+HU/GsgLQYfr6X7oWa+gDQAHjWFnolqaWYKIBfNa8xTCyIoGa2XZM+ X-Received: by 2002:a17:902:2ba6:: with SMTP id l35mr7997662plb.56.1556861812434; Thu, 02 May 2019 22:36:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556861812; cv=none; d=google.com; s=arc-20160816; b=uekOM5P3EQg/4ZgQp04vu+NWDct/ffpaZNY7LovHEgbATxcpn+CIByMRECoYIk4gn1 iRenuA+MkGO3/+zY30aVSkQtuph/KDO1xkf8YyeJq0XKlXwtdHXDn9DMP9Ju5JkGWr4o 4casZEbGCZ6Mx5Pmi6BpKy5Xzz1gSuLwnbDAXCU2xQELUhdy7VcovFNb1v8MPvUOxPx4 QlWo4d0RuRBVIsmDMNkwqoYZyfHcNPffYF15E0RFt4PfJgHs+sUaaoRvVx+QaeT81q0k DFui7d4jox7DhHK+tMJekQ/RrXcv+lVYz4uAqA1nntHhHVAiwbbR/REk7NYGDxRV5HzG ZNjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=MP+BYohbe5InwRfSzvg57aXOQ3N16hg/j/194MGpAY0=; b=mMKUoJEv0YyKCZv4sCJeFgUEXF5a9zzw11i+whTxNEO/DUILbEx/zBcJlJ6cGsXRuc pi7yuY4ETqwuAPYNu9L0JnzeAuEKnntuocdBZtcTq1depnug2xWIi5CczK8QFjRt3lOO 67z15/iDIvrtWjTd/HTaJLkqIHJr15/aC8+tsYbX9qw8UCGkAifwBCsoFbbw+k8iugaa YEnZ9rlEbl35KzwjR+mIzPbTbHLeNhOq77wy7KzH114tddkwTa321m1ARf9EBQfCLaPs ch/ZTaMWsf3EpqnRRD/nECkpKiQCRAnH0OFglsz1/y+t9f6n2zcJgI1CZoGiOABbjkEU /FUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=nX2mqnQH; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r20si1267983pls.19.2019.05.02.22.36.37; Thu, 02 May 2019 22:36:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=nX2mqnQH; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726340AbfECEhj (ORCPT + 99 others); Fri, 3 May 2019 00:37:39 -0400 Received: from mail-ot1-f66.google.com ([209.85.210.66]:46948 "EHLO mail-ot1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726193AbfECEhi (ORCPT ); Fri, 3 May 2019 00:37:38 -0400 Received: by mail-ot1-f66.google.com with SMTP id 77so4174255otu.13 for ; Thu, 02 May 2019 21:37:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=MP+BYohbe5InwRfSzvg57aXOQ3N16hg/j/194MGpAY0=; b=nX2mqnQH8G7lAq/7boHjf6fgeLW4OhXc8dycc5+By6G9miBNlXzrVPV09oM01sBY2z 1PY2T/XYJRHqtEONNgq9PADGf03W5G4sziQ4uRTMnqAEoh6iNM5a9Ezoiyo1ndCy7ojW tk5gH9WgN5g9NpRotxrQseR6tWEmch2vzDn0sL0k1iRMx7bM8e8KuZGIwI0PZSgcFr3+ TlFU9bnfKzaF/HkPoJxOnNiQ3CLrmM6khM79ImW9xBb83Molxw1NMYQ6x9BlXbS1s9zs S9Wn0BBJ13BpxlnQuKJTgsk8nHAZ3z9hw5P/B+YZkt20RKzyQ4WKZ9zq8VVw1rVYepe+ 8Lqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=MP+BYohbe5InwRfSzvg57aXOQ3N16hg/j/194MGpAY0=; b=o3TDXZQ8ymUJNEypGSDNbaVgGT6erGeNiT4FmTDTEIuyzB6rchEYvfUCq7hgI2Iw3+ M2D3Aa/3+n6Ynd2tVBf9meeu5KMPl6KrhWA8ovApyLl+adPRvoamkJQU2ex06mPgCmgq e2MJgYXlNGZLb00tD+s6wmjPXPVBvt58UNoSpWJi/JYo8HknDQ6AjuUycx7MEr0CeCUK duz0VST+h4JGsfPtfO3T0EHoUpeRqC+QTw1KSYaDf6UD1wTqM1qvd85xAKNHEEIqAGdU PtfUOGSeFHcHeR3Q59gz5TQdtZ25wMxuyDEh0oHnXYVW1/FM5D+7AaGx8UV57Kx6xd5f JBEQ== X-Gm-Message-State: APjAAAUWhyG3hvzviS1+Xh033ovYrgdkJtdEHIZRxC+BaTPdRu9aZZP4 i2I4xr1zBrZyKc8ECJWmDI06rb8uWeE1fRuxvA/65g== X-Received: by 2002:a9d:7f19:: with SMTP id j25mr5018212otq.25.1556858257579; Thu, 02 May 2019 21:37:37 -0700 (PDT) MIME-Version: 1.0 References: <20190501230126.229218-1-brendanhiggins@google.com> <20190501230126.229218-4-brendanhiggins@google.com> <1befe456-d981-d726-44f9-ebe3702ee51d@kernel.org> In-Reply-To: <1befe456-d981-d726-44f9-ebe3702ee51d@kernel.org> From: Brendan Higgins Date: Thu, 2 May 2019 21:37:26 -0700 Message-ID: Subject: Re: [PATCH v2 03/17] kunit: test: add string_stream a std::stream like string builder To: shuah Cc: Frank Rowand , Greg KH , Kees Cook , Kieran Bingham , Luis Chamberlain , Rob Herring , Stephen Boyd , devicetree , dri-devel , kunit-dev@googlegroups.com, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kbuild@vger.kernel.org, Linux Kernel Mailing List , linux-kselftest@vger.kernel.org, linux-nvdimm , linux-um@lists.infradead.org, Sasha Levin , "Bird, Timothy" , Amir Goldstein , Dan Carpenter , Dan Williams , Daniel Vetter , Jeff Dike , Joel Stanley , Julia Lawall , Kevin Hilman , Knut Omang , Logan Gunthorpe , Michael Ellerman , Petr Mladek , Richard Weinberger , David Rientjes , Steven Rostedt , wfg@linux.intel.com, skhan@linuxfoundation.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, May 2, 2019 at 6:26 PM shuah wrote: > > On 5/1/19 5:01 PM, Brendan Higgins wrote: < snip > > > diff --git a/kunit/Makefile b/kunit/Makefile > > index 5efdc4dea2c08..275b565a0e81f 100644 > > --- a/kunit/Makefile > > +++ b/kunit/Makefile > > @@ -1 +1,2 @@ > > -obj-$(CONFIG_KUNIT) += test.o > > +obj-$(CONFIG_KUNIT) += test.o \ > > + string-stream.o > > diff --git a/kunit/string-stream.c b/kunit/string-stream.c > > new file mode 100644 > > index 0000000000000..7018194ecf2fa > > --- /dev/null > > +++ b/kunit/string-stream.c > > @@ -0,0 +1,144 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > +/* > > + * C++ stream style string builder used in KUnit for building messages. > > + * > > + * Copyright (C) 2019, Google LLC. > > + * Author: Brendan Higgins > > + */ > > + > > +#include > > +#include > > +#include > > + > > +int string_stream_vadd(struct string_stream *this, > > + const char *fmt, > > + va_list args) > > +{ > > + struct string_stream_fragment *fragment; > > Since there is field with the same name, please use a different > name. Using the same name for the struct which contains a field > of the same name get very confusing and will hard to maintain > the code. > > > + int len; > > + va_list args_for_counting; > > + unsigned long flags; > > + > > + /* Make a copy because `vsnprintf` could change it */ > > + va_copy(args_for_counting, args); > > + > > + /* Need space for null byte. */ > > + len = vsnprintf(NULL, 0, fmt, args_for_counting) + 1; > > + > > + va_end(args_for_counting); > > + > > + fragment = kmalloc(sizeof(*fragment), GFP_KERNEL); > > + if (!fragment) > > + return -ENOMEM; > > + > > + fragment->fragment = kmalloc(len, GFP_KERNEL); > > This is confusing. See above comment. Good point. Will fix in the next revision. < snip > Thanks!