Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Jun 2017 08:37:34 -0600
From:      Alan Somers <asomers@freebsd.org>
To:        Glen Barber <gjb@freebsd.org>
Cc:        Ngie Cooper <ngie@freebsd.org>,  "src-committers@freebsd.org" <src-committers@freebsd.org>,  "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   Re: svn commit: r319173 - stable/11/tests/sys/aio
Message-ID:  <CAOtMX2hrxe48mCCTsG=etAxysBqKvouR6VVPf-9dqA%2BhJqKRgw@mail.gmail.com>
In-Reply-To: <20170602125001.GA44390@FreeBSD.org>
References:  <201705300309.v4U3911t053281@repo.freebsd.org> <20170602125001.GA44390@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jun 2, 2017 at 6:50 AM, Glen Barber <gjb@freebsd.org> wrote:
> On Tue, May 30, 2017 at 03:09:01AM +0000, Ngie Cooper wrote:
>> Author: ngie
>> Date: Tue May 30 03:09:01 2017
>> New Revision: 319173
>> URL: https://svnweb.freebsd.org/changeset/base/319173
>>
>> Log:
>>   MFC r312913,r318100,r318107:
>>
>>   r312913 (by asomers):
>>
>>   Improve the aio tests
>>
>>   * Add tests for aio_suspend(2).
>>   * Add tests for polled completion notification.
>>   * Test the full matrix of file descriptor types and completion notification
>>     mechanisms.
>>   * Don't bother with mkstemp, because ATF runs every test in its own temp dir.
>>   * Fix some typos.
>>   * Remove extraneous ATF_REQUIRE_KERNEL_MODULE calls.
>>
>>   r318100:
>>
>>   style(9): move function definition curly braces to column 0
>>
>>   r318107:
>>
>>   Remove unused constant (PATH_TEMPLATE)
>>
>>   It was made unnecessary in r312913.
>>
>>   MFC with:   r312913
>>
>> Modified:
>>   stable/11/tests/sys/aio/aio_test.c
>> Directory Properties:
>>   stable/11/   (props changed)
>>
>> Modified: stable/11/tests/sys/aio/aio_test.c
>> ==============================================================================
>> --- stable/11/tests/sys/aio/aio_test.c        Tue May 30 03:05:22 2017        (r319172)
>> +++ stable/11/tests/sys/aio/aio_test.c        Tue May 30 03:09:01 2017        (r319173)
>> @@ -33,7 +33,7 @@
>>   * reading it from a second descriptor using AIO.  For some targets, the same
>>   * fd is used for write and read (i.e., file, md device), but for others the
>>   * operation is performed on a peer (pty, socket, fifo, etc).  A timeout is
>> - * initiated to detect undo blocking.  This test does not attempt to exercise
>> + * initiated to detect undue blocking.  This test does not attempt to exercise
>>   * error cases or more subtle asynchronous behavior, just make sure that the
>>   * basic operations work on some basic object types.
>>   */
>> @@ -63,8 +63,6 @@
>>  #include "freebsd_test_suite/macros.h"
>>  #include "local.h"
>>
>> -#define      PATH_TEMPLATE   "aio.XXXXXXXXXX"
>> -
>>  /*
>>   * GLOBAL_MAX sets the largest usable buffer size to be read and written, as
>>   * it sizes ac_buffer in the aio_context structure.  It is also the default
>> @@ -74,6 +72,13 @@
>>  #define      GLOBAL_MAX      16384
>>
>>  #define      BUFFER_MAX      GLOBAL_MAX
>> +
>> +/*
>> + * A completion function will block until the aio has completed, then return
>> + * the result of the aio.  errno will be set appropriately.
>> + */
>> +typedef ssize_t (*completion)(struct aiocb*);
>> +
>>  struct aio_context {
>>       int              ac_read_fd, ac_write_fd;
>>       long             ac_seed;
>> @@ -179,6 +184,48 @@ aio_context_init(struct aio_context *ac, int read_fd,
>>       ac->ac_cleanup_arg = cleanup_arg;
>>  }
>>
>> +static ssize_t
>> +poll(struct aiocb *aio)
>> +{
>> +     int err;
>> +
>> +     while ((err = aio_error(aio)) == EINPROGRESS && !aio_timedout)
>> +             usleep(25000);
>> +     switch (err) {
>> +             case EINPROGRESS:
>> +                     errno = EINTR;
>> +                     return (-1);
>> +             case 0:
>> +                     return (aio_return(aio));
>> +             default:
>> +                     return (err);
>> +     }
>> +}
>> +
>
> This appears to have broken GCC builds.
>
>  ===> tests/sys/aio (all)
>  cc1: warnings being treated as errors
>  /usr/src/tests/sys/aio/aio_test.c: In function 'poll':
>  /usr/src/tests/sys/aio/aio_test.c:190: warning: declaration of 'err' shadows a global declaration
>  /usr/obj/powerpc.powerpc/usr/src/tmp/usr/include/err.h:49: warning: shadowed declaration is here
>  /usr/src/tests/sys/aio/aio_test.c: In function 'suspend':
>  /usr/src/tests/sys/aio/aio_test.c:209: warning: declaration of 'err' shadows a global declaration
>  /usr/obj/powerpc.powerpc/usr/src/tmp/usr/include/err.h:49: warning: shadowed declaration is here
>
> Glen

I think it needs an MFC of r312919 by rwatson.  I'll take care of it.
-Alan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2hrxe48mCCTsG=etAxysBqKvouR6VVPf-9dqA%2BhJqKRgw>