From: Robert W. <ro...@us...> - 2004-12-20 17:04:29
|
Update of /cvsroot/ltp/ltp/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30688/conformance/interfaces/aio_fsync Added Files: 1-1.c 10-1.c 11-1.c 12-1.c 13-1.c 14-1.c 2-1.c 3-1.c 4-1.c 4-2.c 5-1.c 6-1.c 7-1.c 8-1.c 8-2.c 8-3.c 8-4.c 9-1.c assertions.xml coverage.txt Log Message: Update to Version 1.5.0 --- NEW FILE: 4-2.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdlib.h> #include <aio.h> #include "posixtest.h" #define TNAME "aio_fsync/4-2.c" int main() { char tmpfname[256]; #define BUF_SIZE 111 char buf[BUF_SIZE]; int fd; struct aiocb aiocb_write; struct aiocb aiocb_fsync; #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif snprintf(tmpfname, sizeof(tmpfname), "/tmp/pts_aio_fsync_4_2_%d", getpid()); unlink(tmpfname); fd = open(tmpfname, O_CREAT | O_RDWR | O_EXCL, S_IRUSR | S_IWUSR); if (fd == -1) { printf(TNAME " Error at open(): %s\n", strerror(errno)); exit(PTS_UNRESOLVED); } unlink(tmpfname); memset(&aiocb_write, 0, sizeof(aiocb_write)); aiocb_write.aio_fildes = fd; aiocb_write.aio_buf = buf; aiocb_write.aio_nbytes = BUF_SIZE; if (aio_write(&aiocb_write) == -1) { printf(TNAME " Error at aio_write(): %s\n", strerror(errno)); exit(PTS_FAIL); } memset(&aiocb_fsync, 0, sizeof(aiocb_fsync)); aiocb_fsync.aio_fildes = fd; if (aio_fsync(O_SYNC, &aiocb_fsync) != 0) { printf(TNAME " Error at aio_fsync()\n"); exit(PTS_FAIL); } errno = 0; aio_return(&aiocb_fsync); if (errno != 0) { printf(TNAME " Error at aio_return() : %s\n", strerror(errno)); exit(PTS_FAIL); } close(fd); printf ("Test PASSED\n"); return PTS_PASS; } --- NEW FILE: 13-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <unistd.h> #include <aio.h> #include "posixtest.h" int main() { #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif return PTS_UNTESTED; } --- NEW FILE: assertions.xml --- <assertions> <assertion id="1" tag="ref:XSH6TC2:4055:4058"> aio_fsync() shall asynchronously force I/O operations associated with aio_fildes. </assertion> <assertion id="2" tag="ref:XSH6TC2:4060:4061"> if op is O_DSYNC, all queued I/O operations shall be completed as if by a call to fdatasync(). </assertion> <assertion id="3" tag="ref:XSH6TC2:4060:4061"> if op is O_SYNC, all queued I/O operations shall be completed as if by a call to fsync(). </assertion> <assertion id="4" tag="ref:XSH6TC2:4070:4071"> aio_error() and aio_return() may be used in order to determine the error status and return status of aio_fsync opertation. </assertion> <assertion id="5" tag="ref:XSH6TC2:4072:4073"> When the request is queued, error status is [EINPROGRESS]. </assertion> <assertion id="6" tag="ref:XSH6TC2:4075:4076"> If the operation does not complete successfully, the error status shall be set to indicate the error. </assertion> <assertion id="7" tag="ref:XSH6TC2:4076:4076"> The aio_sigevent member determines the asynchronous notificiation to occur. </assertion> <assertion id="8" tag="ref:XSH6TC2:4078:4079"> Except aio_fildes and aio_sigevent, all other members of the structure are ignored. </assertion> <assertion id="9" tag="ref:XSH6TC2:4084:4084"> aio_fsync() shall return the value 0 if the operation is successfully queued. </assertion> <assertion id="10" tag="ref:XSH6TC2:4084:4084"> aio_fsync() shall return the value -1 and set errno to indicate error if the operation is not successfully queued. </assertion> <assertion id="11" tag="ref:XSH6TC2:4088:4089"> aio_fsync() shall fail if: [EAGAIN] Operation was not queued due to temporary resource limitations. </assertion> <assertion id="12" tag="ref:XSH6TC2:4090:4091"> aio_fsync() shall fail if: [EBADF] aio_fildes is not a valid file descriptor for writing. </assertion> <assertion id="13" tag="ref:XSH6TC2:4092:4092"> aio_fsync() shall fail if: [EINVAL] This implementation does not support synchronized I/O for this file. </assertion> <assertion id="14" tag="ref:XSH6TC2:4093:4093"> aio_fsync() shall fail if: [EINVAL] op is not set to O_DSYNC or O_SYNC. </assertion> </assertions> --- NEW FILE: 8-3.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdlib.h> #include <aio.h> #include "posixtest.h" #define TNAME "aio_fsync/8-3.c" int main() { char tmpfname[256]; #define BUF_SIZE 111 char buf[BUF_SIZE]; int fd; struct aiocb aiocb_write; struct aiocb aiocb_fsync; #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif snprintf(tmpfname, sizeof(tmpfname), "/tmp/pts_aio_fsync_8_3_%d", getpid()); unlink(tmpfname); fd = open(tmpfname, O_CREAT | O_RDWR | O_EXCL, S_IRUSR | S_IWUSR); if (fd == -1) { printf(TNAME " Error at open(): %s\n", strerror(errno)); exit(PTS_UNRESOLVED); } unlink(tmpfname); memset(&aiocb_write, 0, sizeof(aiocb_write)); aiocb_write.aio_fildes = fd; aiocb_write.aio_buf = buf; aiocb_write.aio_nbytes = BUF_SIZE; if (aio_write(&aiocb_write) == -1) { printf(TNAME " Error at aio_write(): %s\n", strerror(errno)); exit(PTS_FAIL); } memset(&aiocb_fsync, 0, sizeof(aiocb_fsync)); aiocb_fsync.aio_fildes = fd; aiocb_fsync.aio_reqprio = -1; if (aio_fsync(O_SYNC, &aiocb_fsync) != 0) { printf(TNAME " Error at aio_fsync(): %s\n", strerror(errno)); exit(PTS_FAIL); } close(fd); printf ("Test PASSED\n"); return PTS_PASS; } --- NEW FILE: 14-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdlib.h> #include <aio.h> #include "posixtest.h" #define TNAME "aio_fsync/14-1.c" int main() { char tmpfname[256]; #define BUF_SIZE 111 char buf[BUF_SIZE]; int fd; struct aiocb aiocb_write; struct aiocb aiocb_fsync; #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif snprintf(tmpfname, sizeof(tmpfname), "/tmp/pts_aio_fsync_14_1_%d", getpid()); unlink(tmpfname); fd = open(tmpfname, O_CREAT | O_RDWR | O_EXCL, S_IRUSR | S_IWUSR); if (fd == -1) { printf(TNAME " Error at open(): %s\n", strerror(errno)); exit(PTS_UNRESOLVED); } unlink(tmpfname); memset(&aiocb_write, 0, sizeof(aiocb_write)); aiocb_write.aio_fildes = fd; aiocb_write.aio_buf = buf; aiocb_write.aio_nbytes = BUF_SIZE; if (aio_write(&aiocb_write) == -1) { printf(TNAME " Error at aio_write(): %s\n", strerror(errno)); exit(PTS_FAIL); } memset(&aiocb_fsync, 0, sizeof(aiocb_fsync)); aiocb_fsync.aio_fildes = fd; if (aio_fsync(-1, &aiocb_fsync) != -1) { printf(TNAME " aio_fsync() accepts bad op\n"); exit(PTS_FAIL); } if (errno != EINVAL) { printf(TNAME " errno is not EINVAL (%d)\n", errno); exit(PTS_FAIL); } close(fd); printf ("Test PASSED\n"); return PTS_PASS; } --- NEW FILE: 1-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <unistd.h> #include <aio.h> #include "posixtest.h" int main() { #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif return PTS_UNTESTED; } --- NEW FILE: 2-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdlib.h> #include <aio.h> #include "posixtest.h" #define TNAME "aio_fsync/2-1.c" #define BUF_SIZE 1024 int main() { char tmpfname[256]; char buf[BUF_SIZE]; int fd; struct aiocb aiocb_write; struct aiocb aiocb_fsync; #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif snprintf(tmpfname, sizeof(tmpfname), "/tmp/pts_aio_fsync_2_1_%d", getpid()); unlink(tmpfname); fd = open(tmpfname, O_CREAT | O_RDWR | O_EXCL, S_IRUSR | S_IWUSR); if (fd == -1) { printf(TNAME " Error at open(): %s\n", strerror(errno)); exit(PTS_UNRESOLVED); } unlink(tmpfname); memset(&aiocb_write, 0, sizeof(aiocb_write)); aiocb_write.aio_fildes = fd; aiocb_write.aio_buf = buf; aiocb_write.aio_nbytes = BUF_SIZE; if (aio_write(&aiocb_write) == -1) { printf(TNAME " Error at aio_write(): %s\n", strerror(errno)); exit(PTS_FAIL); } memset(&aiocb_fsync, 0, sizeof(aiocb_fsync)); aiocb_fsync.aio_fildes = fd; if (aio_fsync(O_DSYNC, &aiocb_fsync) != 0) { printf(TNAME " Error at aio_fsync(): %s\n", strerror(errno)); exit(PTS_FAIL); } close(fd); /* we didn't check if the operation is really performed */ return PTS_UNTESTED; } --- NEW FILE: 8-2.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdlib.h> #include <aio.h> #include "posixtest.h" #define TNAME "aio_fsync/8-2.c" int main() { char tmpfname[256]; #define BUF_SIZE 111 char buf[BUF_SIZE]; int fd; struct aiocb aiocb_write; struct aiocb aiocb_fsync; #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif snprintf(tmpfname, sizeof(tmpfname), "/tmp/pts_aio_fsync_8_2_%d", getpid()); unlink(tmpfname); fd = open(tmpfname, O_CREAT | O_RDWR | O_EXCL, S_IRUSR | S_IWUSR); if (fd == -1) { printf(TNAME " Error at open(): %s\n", strerror(errno)); exit(PTS_UNRESOLVED); } unlink(tmpfname); memset(&aiocb_write, 0, sizeof(aiocb_write)); aiocb_write.aio_fildes = fd; aiocb_write.aio_buf = buf; aiocb_write.aio_nbytes = BUF_SIZE; if (aio_write(&aiocb_write) == -1) { printf(TNAME " Error at aio_write(): %s\n", strerror(errno)); exit(PTS_FAIL); } memset(&aiocb_fsync, 0, sizeof(aiocb_fsync)); aiocb_fsync.aio_fildes = fd; aiocb_fsync.aio_buf = NULL; if (aio_fsync(O_SYNC, &aiocb_fsync) != 0) { printf(TNAME " Error at aio_fsync(): %s\n", strerror(errno)); exit(PTS_FAIL); } close(fd); printf ("Test PASSED\n"); return PTS_PASS; } --- NEW FILE: 10-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ /* * assertion: * * aio_fsync() shall asynchronously force I/O operations associated * with aio_fildes. * * method: * * UNTESTED * * We are not able to check if I/O operations have been forced. * */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <unistd.h> #include <aio.h> #include "posixtest.h" int main() { #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif return PTS_UNTESTED; } --- NEW FILE: 6-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <unistd.h> #include <aio.h> #include "posixtest.h" int main() { #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif return PTS_UNTESTED; } --- NEW FILE: 9-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdlib.h> #include <aio.h> #include "posixtest.h" #define TNAME "aio_fsync/9-1.c" int main() { char tmpfname[256]; #define BUF_SIZE 111 char buf[BUF_SIZE]; int fd; struct aiocb aiocb_write; struct aiocb aiocb_fsync; #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif snprintf(tmpfname, sizeof(tmpfname), "/tmp/pts_aio_fsync_9_1_%d", getpid()); unlink(tmpfname); fd = open(tmpfname, O_CREAT | O_RDWR | O_EXCL, S_IRUSR | S_IWUSR); if (fd == -1) { printf(TNAME " Error at open(): %s\n", strerror(errno)); exit(PTS_UNRESOLVED); } unlink(tmpfname); memset(&aiocb_write, 0, sizeof(aiocb_write)); aiocb_write.aio_fildes = fd; aiocb_write.aio_buf = buf; aiocb_write.aio_nbytes = BUF_SIZE; if (aio_write(&aiocb_write) == -1) { printf(TNAME " Error at aio_write(): %s\n", strerror(errno)); exit(PTS_FAIL); } memset(&aiocb_fsync, 0, sizeof(aiocb_fsync)); aiocb_fsync.aio_fildes = fd; if (aio_fsync(O_SYNC, &aiocb_fsync) != 0) { printf(TNAME " Error at aio_fsync(): %s\n", strerror(errno)); exit(PTS_FAIL); } close(fd); printf ("Test PASSED\n"); return PTS_PASS; } --- NEW FILE: 12-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdlib.h> #include <aio.h> #include "posixtest.h" #define TNAME "aio_fsync/12-1.c" int main() { struct aiocb aiocb; #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif memset(&aiocb, 0, sizeof(aiocb)); aiocb.aio_fildes = -1; if (aio_fsync(O_SYNC, &aiocb) != -1) { printf(TNAME " aio_fsync() accepts bad filedes\n"); exit(PTS_FAIL); } if (errno != EBADF) { printf(TNAME " errno is not EBADF (%d)\n", errno); exit(PTS_FAIL); } printf ("Test PASSED\n"); return PTS_PASS; } --- NEW FILE: 5-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdlib.h> #include <aio.h> #include "posixtest.h" #define TNAME "aio_fsync/5-1.c" #define BUF_SIZE 1024 int main() { char tmpfname[256]; char buf[BUF_SIZE]; int fd; struct aiocb aiocb_write; struct aiocb aiocb_fsync; int ret; #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif snprintf(tmpfname, sizeof(tmpfname), "/tmp/pts_aio_fsync_5_1_%d", getpid()); unlink(tmpfname); fd = open(tmpfname, O_CREAT | O_RDWR | O_EXCL, S_IRUSR | S_IWUSR); if (fd == -1) { printf(TNAME " Error at open(): %s\n", strerror(errno)); exit(PTS_UNRESOLVED); } unlink(tmpfname); memset(&aiocb_write, 0, sizeof(aiocb_write)); aiocb_write.aio_fildes = fd; aiocb_write.aio_buf = buf; aiocb_write.aio_nbytes = BUF_SIZE; if (aio_write(&aiocb_write) == -1) { printf(TNAME " Error at aio_write(): %s\n", strerror(errno)); exit(PTS_FAIL); } memset(&aiocb_fsync, 0, sizeof(aiocb_fsync)); aiocb_fsync.aio_fildes = fd; if (aio_fsync(O_SYNC, &aiocb_fsync) != 0) { printf(TNAME " Error at aio_fsync(): %s\n", strerror(errno)); exit(PTS_FAIL); } ret = PTS_UNTESTED; if (aio_error(&aiocb_fsync) == EINPROGRESS) ret = PTS_PASS; /* allow to check if aio_error() move from EINPROGRESS to * something else * otherwise test hangs */ while (aio_error(&aiocb_fsync) == EINPROGRESS); close(fd); /* we didn't check if the operation is really performed */ return ret; } --- NEW FILE: coverage.txt --- this file defines the coverage for the aio_fsync() function testing. Assertion Covered? 1 NO 2 NO 3 NO 4 YES 5 NO 6 NO 7 NO 8 YES 9 YES 10 NO 11 NO 12 YES 13 NO 14 YES --- NEW FILE: 7-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <unistd.h> #include <aio.h> #include "posixtest.h" int main() { #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif return PTS_UNTESTED; } --- NEW FILE: 8-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdlib.h> #include <aio.h> #include "posixtest.h" #define TNAME "aio_fsync/8-1.c" int main() { char tmpfname[256]; #define BUF_SIZE 111 char buf[BUF_SIZE]; int fd; struct aiocb aiocb_write; struct aiocb aiocb_fsync; #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif snprintf(tmpfname, sizeof(tmpfname), "/tmp/pts_aio_fsync_8_1_%d", getpid()); unlink(tmpfname); fd = open(tmpfname, O_CREAT | O_RDWR | O_EXCL, S_IRUSR | S_IWUSR); if (fd == -1) { printf(TNAME " Error at open(): %s\n", strerror(errno)); exit(PTS_UNRESOLVED); } unlink(tmpfname); memset(&aiocb_write, 0, sizeof(aiocb_write)); aiocb_write.aio_fildes = fd; aiocb_write.aio_buf = buf; aiocb_write.aio_nbytes = BUF_SIZE; if (aio_write(&aiocb_write) == -1) { printf(TNAME " Error at aio_write(): %s\n", strerror(errno)); exit(PTS_FAIL); } memset(&aiocb_fsync, 0, sizeof(aiocb_fsync)); aiocb_fsync.aio_fildes = fd; aiocb_fsync.aio_nbytes = -1; if (aio_fsync(O_SYNC, &aiocb_fsync) != 0) { printf(TNAME " Error at aio_fsync(): %s\n", strerror(errno)); exit(PTS_FAIL); } close(fd); printf ("Test PASSED\n"); return PTS_PASS; } --- NEW FILE: 8-4.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdlib.h> #include <aio.h> #include "posixtest.h" #define TNAME "aio_fsync/8-4.c" int main() { char tmpfname[256]; #define BUF_SIZE 111 char buf[BUF_SIZE]; int fd; struct aiocb aiocb_write; struct aiocb aiocb_fsync; #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif snprintf(tmpfname, sizeof(tmpfname), "/tmp/pts_aio_fsync_8_4_%d", getpid()); unlink(tmpfname); fd = open(tmpfname, O_CREAT | O_RDWR | O_EXCL, S_IRUSR | S_IWUSR); if (fd == -1) { printf(TNAME " Error at open(): %s\n", strerror(errno)); exit(PTS_UNRESOLVED); } unlink(tmpfname); memset(&aiocb_write, 0, sizeof(aiocb_write)); aiocb_write.aio_fildes = fd; aiocb_write.aio_buf = buf; aiocb_write.aio_nbytes = BUF_SIZE; if (aio_write(&aiocb_write) == -1) { printf(TNAME " Error at aio_write(): %s\n", strerror(errno)); exit(PTS_FAIL); } memset(&aiocb_fsync, 0, sizeof(aiocb_fsync)); aiocb_fsync.aio_fildes = fd; aiocb_fsync.aio_offset = -1; if (aio_fsync(O_SYNC, &aiocb_fsync) != 0) { printf(TNAME " Error at aio_fsync(): %s\n", strerror(errno)); exit(PTS_FAIL); } close(fd); printf ("Test PASSED\n"); return PTS_PASS; } --- NEW FILE: 3-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdlib.h> #include <aio.h> #include "posixtest.h" #define TNAME "aio_fsync/3-1.c" #define BUF_SIZE 1024 int main() { char tmpfname[256]; char buf[BUF_SIZE]; int fd; struct aiocb aiocb_write; struct aiocb aiocb_fsync; #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif snprintf(tmpfname, sizeof(tmpfname), "/tmp/pts_aio_fsync_3_1_%d", getpid()); unlink(tmpfname); fd = open(tmpfname, O_CREAT | O_RDWR | O_EXCL, S_IRUSR | S_IWUSR); if (fd == -1) { printf(TNAME " Error at open(): %s\n", strerror(errno)); exit(PTS_UNRESOLVED); } unlink(tmpfname); memset(&aiocb_write, 0, sizeof(aiocb_write)); aiocb_write.aio_fildes = fd; aiocb_write.aio_buf = buf; aiocb_write.aio_nbytes = BUF_SIZE; if (aio_write(&aiocb_write) == -1) { printf(TNAME " Error at aio_write(): %s\n", strerror(errno)); exit(PTS_FAIL); } memset(&aiocb_fsync, 0, sizeof(aiocb_fsync)); aiocb_fsync.aio_fildes = fd; if (aio_fsync(O_SYNC, &aiocb_fsync) != 0) { printf(TNAME " Error at aio_fsync(): %s\n", strerror(errno)); exit(PTS_FAIL); } close(fd); /* we didn't check if the operation is really performed */ return PTS_UNTESTED; } --- NEW FILE: 4-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdlib.h> #include <aio.h> #include "posixtest.h" #define TNAME "aio_fsync/4-1.c" int main() { char tmpfname[256]; #define BUF_SIZE 111 char buf[BUF_SIZE]; int fd; struct aiocb aiocb_write; struct aiocb aiocb_fsync; #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif snprintf(tmpfname, sizeof(tmpfname), "/tmp/pts_aio_fsync_4_1_%d", getpid()); unlink(tmpfname); fd = open(tmpfname, O_CREAT | O_RDWR | O_EXCL, S_IRUSR | S_IWUSR); if (fd == -1) { printf(TNAME " Error at open(): %s\n", strerror(errno)); exit(PTS_UNRESOLVED); } unlink(tmpfname); memset(&aiocb_write, 0, sizeof(aiocb_write)); aiocb_write.aio_fildes = fd; aiocb_write.aio_buf = buf; aiocb_write.aio_nbytes = BUF_SIZE; if (aio_write(&aiocb_write) == -1) { printf(TNAME " Error at aio_write(): %s\n", strerror(errno)); exit(PTS_FAIL); } memset(&aiocb_fsync, 0, sizeof(aiocb_fsync)); aiocb_fsync.aio_fildes = fd; if (aio_fsync(O_SYNC, &aiocb_fsync) != 0) { printf(TNAME " Error at aio_fsync()\n"); exit(PTS_FAIL); } if (aio_error(&aiocb_fsync) < 0) { printf(TNAME " Error at aio_error() : %s\n", strerror(errno)); exit(PTS_FAIL); } close(fd); printf ("Test PASSED\n"); return PTS_PASS; } --- NEW FILE: 11-1.c --- /* * Copyright (c) 2004, IBM Corporation. All rights reserved. * Created by: Lau...@bu... * This file is licensed under the GPL license. For the full content * of this license, see the COPYING file at the top level of this * source tree. */ #define _XOPEN_SOURCE 600 #include <stdio.h> #include <unistd.h> #include <aio.h> #include "posixtest.h" int main() { #if _POSIX_ASYNCHRONOUS_IO != 200112L exit(PTS_UNSUPPORTED); #endif return PTS_UNTESTED; } |