svn commit: r319173 - stable/11/tests/sys/aio

Glen Barber gjb at FreeBSD.org
Fri Jun 2 12:50:04 UTC 2017


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20170602/4c124c0a/attachment.sig>


More information about the svn-src-all mailing list