aio_suspend/9-1 is same as 4-1, so remove it. Signed-off-by: Bian Naimeng <[email protected]>
--- .../conformance/interfaces/aio_suspend/9-1.c | 242 -------------------- 1 files changed, 0 insertions(+), 242 deletions(-) delete mode 100644 testcases/open_posix_testsuite/conformance/interfaces/aio_suspend/9-1.c diff --git a/testcases/open_posix_testsuite/conformance/interfaces/aio_suspend/9-1.c b/testcases/open_posix_testsuite/conformance/interfaces/aio_suspend/9-1.c deleted file mode 100644 index 39d504d..0000000 --- a/testcases/open_posix_testsuite/conformance/interfaces/aio_suspend/9-1.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Copyright (c) 2004, Bull SA. All rights reserved. - * Created by: [email protected] - * 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_suspend() shall fail if: - [EAGAIN] No AIO indicated in the list completed before timeout - * - * method: - * - * - write to a file - * - submit a list of read requests - * - check that the selected request has not completed - * - suspend on selected request - * - check that the suspend timed out and returned EAGAIN - * - */ - -#define _XOPEN_SOURCE 600 -#include <sys/stat.h> -#include <aio.h> -#include <errno.h> -#include <fcntl.h> -#include <signal.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#include "posixtest.h" - -#define TNAME "aio_suspend/9-1.c" - -#define NUM_AIOCBS 10 -#define BUF_SIZE 1024*1024 -#define WAIT_FOR_AIOCB 6 - -int received_selected = 0; -int received_all = 0; - -void -sigrt1_handler(int signum, siginfo_t *info, void *context) -{ - if (info->si_value.sival_int == WAIT_FOR_AIOCB) - received_selected = 1; -} - -void -sigrt2_handler(int signum, siginfo_t *info, void *context) -{ - received_all = 1; -} - -int -main () -{ - char tmpfname[256]; - int fd; - - struct aiocb **aiocbs; - struct aiocb *plist[2]; - char *bufs; - struct sigaction action; - struct sigevent event; - struct timespec ts = {0, 10000000}; /* 10 ms */ - int errors = 0; - int ret; - int err; - int i; - - if (sysconf(_SC_ASYNCHRONOUS_IO) != 200112L) - return PTS_UNSUPPORTED; - - snprintf(tmpfname, sizeof(tmpfname), "/tmp/pts_aio_suspend_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); - - bufs = (char *) malloc (NUM_AIOCBS*BUF_SIZE); - - if (bufs == NULL) { - printf (TNAME " Error at malloc(): %s\n", strerror (errno)); - close (fd); - exit(PTS_UNRESOLVED); - } - - if (write (fd, bufs, NUM_AIOCBS*BUF_SIZE) != (NUM_AIOCBS*BUF_SIZE)) { - printf(TNAME " Error at write(): %s\n", strerror(errno)); - free (bufs); - close (fd); - exit(PTS_UNRESOLVED); - } - - - - aiocbs = (struct aiocb**)malloc(sizeof(struct aiocb *) * NUM_AIOCBS); - - /* Queue up a bunch of aio reads */ - for (i = 0; i < NUM_AIOCBS; i++) { - - aiocbs[i] = (struct aiocb*)malloc(sizeof(struct aiocb)); - memset(aiocbs[i], 0, sizeof(struct aiocb)); - - aiocbs[i]->aio_fildes = fd; - aiocbs[i]->aio_offset = i * BUF_SIZE; - aiocbs[i]->aio_buf = &bufs[i*BUF_SIZE]; - aiocbs[i]->aio_nbytes = BUF_SIZE; - aiocbs[i]->aio_lio_opcode = LIO_READ; - - /* Use SIRTMIN+1 for individual completions */ - aiocbs[i]->aio_sigevent.sigev_notify = SIGEV_SIGNAL; - aiocbs[i]->aio_sigevent.sigev_signo = SIGRTMIN+1; - aiocbs[i]->aio_sigevent.sigev_value.sival_int = i; - } - - /* Use SIGRTMIN+2 for list completion */ - event.sigev_notify = SIGEV_SIGNAL; - event.sigev_signo = SIGRTMIN+2; - event.sigev_value.sival_ptr = NULL; - - /* Setup handler for individual operation completion */ - action.sa_sigaction = sigrt1_handler; - sigemptyset(&action.sa_mask); - action.sa_flags = SA_SIGINFO|SA_RESTART; - sigaction(SIGRTMIN+1, &action, NULL); - - /* Setup handler for list completion */ - action.sa_sigaction = sigrt2_handler; - sigemptyset(&action.sa_mask); - action.sa_flags = SA_SIGINFO|SA_RESTART; - sigaction(SIGRTMIN+2, &action, NULL); - - /* Setup suspend list */ - plist[0] = NULL; - plist[1] = aiocbs[WAIT_FOR_AIOCB]; - - /* Submit request list */ - ret = lio_listio(LIO_NOWAIT, aiocbs, NUM_AIOCBS, &event); - - if (ret) { - printf(TNAME " Error at lio_listio() %d: %s\n", errno, strerror(errno)); - for (i=0; i<NUM_AIOCBS; i++) - free (aiocbs[i]); - free (bufs); - free (aiocbs); - close (fd); - exit (PTS_UNRESOLVED); - } - - /* Check selected request has not completed yet */ - if (received_selected) { - printf (TNAME " Error : AIOCB %d already completed before suspend\n", - WAIT_FOR_AIOCB); - for (i=0; i<NUM_AIOCBS; i++) - free (aiocbs[i]); - free (bufs); - free (aiocbs); - close (fd); - exit (PTS_FAIL); - } - - /* Suspend on selected request */ - ret = aio_suspend((const struct aiocb **)plist, 2, &ts); - - /* Check selected request has not completed */ - if (received_selected) { - printf (TNAME " Error : AIOCB %d should not have completed after timed out suspend\n", - WAIT_FOR_AIOCB); - for (i=0; i<NUM_AIOCBS; i++) - free (aiocbs[i]); - free (bufs); - free (aiocbs); - close (fd); - exit (PTS_FAIL); - } - - /* timed out aio_suspend should return -1 and set errno to EAGAIN */ - if (ret != -1) { - printf (TNAME " aio_suspend() should return -1\n"); - for (i=0; i<NUM_AIOCBS; i++) - free (aiocbs[i]); - free (bufs); - free (aiocbs); - close (fd); - exit (PTS_FAIL); - } - - if (errno != EAGAIN) { - printf (TNAME " aio_suspend() should set errno to EAGAIN: %d (%s)\n", - errno, strerror (errno)); - for (i=0; i<NUM_AIOCBS; i++) - free (aiocbs[i]); - free (bufs); - free (aiocbs); - close (fd); - exit (PTS_FAIL); - } - - /* Wait for list processing completion */ - while (!received_all) - sleep (1); - - /* Check return code and free things */ - for (i = 0; i < NUM_AIOCBS; i++) { - err = aio_error(aiocbs[i]); - ret = aio_return(aiocbs[i]); - - if ((err != 0) && (ret != BUF_SIZE)) { - printf(TNAME " req %d: error = %d - return = %d\n", i, err, ret); - errors++; - } - - free (aiocbs[i]); - } - - free (bufs); - free (aiocbs); - - close(fd); - - if (errors != 0) - exit (PTS_FAIL); - - printf (TNAME " PASSED\n"); - - return PTS_PASS; -} -- 1.7.0.4 ------------------------------------------------------------------------------ Centralized Desktop Delivery: Dell and VMware Reference Architecture Simplifying enterprise desktop deployment and management using Dell EqualLogic storage and VMware View: A highly scalable, end-to-end client virtualization framework. Read more! http://p.sf.net/sfu/dell-eql-dev2dev _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
