/**************************************************************************** * apps/testing/testsuites/kernel/syscall/include/SyscallTest.h * * SPDX-License-Identifier: Apache-2.0 * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. The * ASF licenses this file to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. * ****************************************************************************/ #ifndef __SYSCALLTEST_H #define __SYSCALLTEST_H /**************************************************************************** * Included Files ****************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include /* Functions to help test */ int checknames(char *pfilnames, DIR *ddir); int check_and_report_ftruncatetest(int fd, off_t offset, char data, off_t trunc_len); int tst_fill_file(const char *path, char pattern, size_t bs, size_t bcount); char *sock_addr(const struct sockaddr *sa, socklen_t salen, char *res, size_t len); /* @return port in network byte order. */ unsigned short get_unused_port(void(cleanup_fn)(void), unsigned short family, int type); int safe_close(int fildes); int safe_socket(int domain, int type, int protocol); int safe_connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); int safe_getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen); int safe_bind(int socket, const struct sockaddr *address, socklen_t address_len); int safe_listen(int socket, int backlog); int safe_open(const char *pathname, int oflags, ...); /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ /* The test files generated during the 'syscall-test' are stored in this * directory */ #define SYSCALL_TEST_DIR "syscall_test_dir" #define MOUNT_DIR CONFIG_TESTS_TESTSUITES_MOUNT_DIR #define SAFE_OPEN(pathname, oflags, ...) \ safe_open((pathname), (oflags), ##__VA_ARGS__) #define SAFE_FCNTL(fd, cmd, ...) \ ({ \ int tst_ret_ = fcntl(fd, cmd, ##__VA_ARGS__); \ if (tst_ret_ == -1) \ { \ syslog(LOG_ERR, "fcntl(%i,%s,...) failed", fd, #cmd); \ fail_msg("test fail !"); \ } \ tst_ret_ == -1 ? 0 : tst_ret_; \ }) #define SAFE_CLOSE(fd) \ do \ { \ safe_close((fd)); \ fd = -1; \ } while (0) /**************************************************************************** * Public Function Prototypes ****************************************************************************/ /* quickly fill a test file */ int cmtestfillfile(const char *path, char pattern, size_t bs, size_t bcount); /* setup function */ int test_nuttx_syscall_test_group_setup(void **state); /* teardown function */ int test_nuttx_syscall_test_group_teardown(void **state); /* tools */ int checknames(char *pfilnames, DIR *ddir); int check_and_report_ftruncatetest(int fd, off_t offset, char data, off_t trunc_len); int tst_fill_fd(int fd, char pattern, size_t bs, size_t bcount); int tst_fill_file(const char *path, char pattern, size_t bs, size_t bcount); int safe_open(const char *pathname, int oflags, ...); ssize_t safe_write(int fildes, const void *buf, size_t nbyte); off_t safe_lseek(int fd, off_t offset, int whence); int safe_close(int fildes); void safe_touch(const char *file, const int lineno, const char *pathname, mode_t mode); #ifdef CONFIG_NET char *sock_addr(const struct sockaddr *sa, socklen_t salen, char *res, size_t len); unsigned short get_unused_port(void(cleanup_fn)(void), unsigned short family, int type); int safe_socket(int domain, int type, int protocol); int safe_connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); int safe_getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen); int safe_bind(int socket, const struct sockaddr *address, socklen_t address_len); int safe_listen(int socket, int backlog); #endif /* test case function */ /* cases/chdir_test.c * ***********************************************/ void test_nuttx_syscall_chdir01(FAR void **state); void test_nuttx_syscall_chdir02(FAR void **state); /* cases/accept_test.c * ***********************************************/ void test_nuttx_syscall_accept01(FAR void **state); /* cases/getitimer_test.c * ***********************************************/ void test_nuttx_syscall_getitimer01(FAR void **state); /* cases/clock_gettime_test.c * ****************************************/ void test_nuttx_syscall_clockgettime01(FAR void **state); /* cases/clock_nanosleep_test.c * **************************************/ void test_nuttx_syscall_clocknanosleep01(FAR void **state); void test_nuttx_syscall_clocknanosleep02(FAR void **state); /* cases/clock_settime_test.c * ****************************************/ void test_nuttx_syscall_clocksettime01(FAR void **state); /* cases/close_test.c * ************************************************/ void test_nuttx_syscall_close01(FAR void **state); void test_nuttx_syscall_close02(FAR void **state); void test_nuttx_syscall_close03(FAR void **state); /* cases/creat_test.c * ************************************************/ void test_nuttx_syscall_creat01(FAR void **state); void test_nuttx_syscall_creat02(FAR void **state); /* cases/fcntl_test.c * ************************************************/ void test_nuttx_syscall_fcntl01(FAR void **state); void test_nuttx_syscall_fcntl02(FAR void **state); void test_nuttx_syscall_fcntl03(FAR void **state); void test_nuttx_syscall_fcntl04(FAR void **state); void test_nuttx_syscall_fcntl05(FAR void **state); void test_nuttx_syscall_fcntl06(FAR void **state); /* cases/fsatfs_test.c * ***********************************************/ void test_nuttx_syscall_fstatfs01(FAR void **state); /* cases/fsync_test.c * ************************************************/ void test_nuttx_syscall_fsync01(FAR void **state); void test_nuttx_syscall_fsync02(FAR void **state); void test_nuttx_syscall_fsync03(FAR void **state); /* cases/ftruncate_test.c * ********************************************/ void test_nuttx_syscall_ftruncate01(FAR void **state); /* cases/getcwd_test.c * ***********************************************/ void test_nuttx_syscall_getcwd01(FAR void **state); void test_nuttx_syscall_getcwd02(FAR void **state); /* cases/getpid_test.c * ***********************************************/ void test_nuttx_syscall_getpid01(FAR void **state); /* cases/getppid_test.c * **********************************************/ void test_nuttx_syscall_getppid01(FAR void **state); /* cases/gethostname_test.c * ******************************************/ void test_nuttx_syscall_gethostname01(FAR void **state); /* cases/getTimeofday_test.c * *****************************************/ void test_nuttx_syscall_gettimeofday01(FAR void **state); /* cases/lseek_test.c * ************************************************/ void test_nuttx_syscall_lseek01(FAR void **state); void test_nuttx_syscall_lseek07(FAR void **state); /* cases/lstat_test.c * ************************************************/ void test_nuttx_syscall_lstat01(FAR void **state); /* cases/dup_test.c * **************************************************/ void test_nuttx_syscall_dup01(FAR void **state); void test_nuttx_syscall_dup02(FAR void **state); void test_nuttx_syscall_dup03(FAR void **state); void test_nuttx_syscall_dup04(FAR void **state); void test_nuttx_syscall_dup05(FAR void **state); /* cases/dup2_test.c * **************************************************/ void test_nuttx_syscall_dup201(FAR void **state); void test_nuttx_syscall_dup202(FAR void **state); /* cases/fpathconf_test.c * *********************************************/ void test_nuttx_syscall_fpathconf01(FAR void **state); /* cases/getegid_test.c * ***********************************************/ void test_nuttx_syscall_getegid01(FAR void **state); void test_nuttx_syscall_getegid02(FAR void **state); /* cases/geteuid_test.c * ***********************************************/ void test_nuttx_syscall_geteuid01(FAR void **state); void test_nuttx_syscall_geteuid02(FAR void **state); /* cases/getgid_test.c * ***********************************************/ void test_nuttx_syscall_getgid01(FAR void **state); void test_nuttx_syscall_getgid02(FAR void **state); /* cases/getuid_test.c * ***********************************************/ void test_nuttx_syscall_getuid01(FAR void **state); void test_nuttx_syscall_getuid02(FAR void **state); /* cases/pathconf_test.c * *********************************************/ void test_nuttx_syscall_pathconf01(FAR void **state); /* cases/pipe_test.c * *************************************************/ void test_nuttx_syscall_pipe01(FAR void **state); void test_nuttx_syscall_pipe02(FAR void **state); /* cases/pread_test.c * ************************************************/ void test_nuttx_syscall_pread01(FAR void **state); /* cases/pwrite_test.c * ***********************************************/ void test_nuttx_syscall_pwrite01(FAR void **state); void test_nuttx_syscall_pwrite02(FAR void **state); /* cases/rmdir_test.c * ************************************************/ void test_nuttx_syscall_rmdir01(FAR void **state); void test_nuttx_syscall_rmdir02(FAR void **state); /* ases/syscall_truncate_test.c * **********************************************/ void test_nuttx_syscall_truncate01(FAR void **state); /* cases/unlink_test.c * ***********************************************/ void test_nuttx_syscall_unlink01(FAR void **state); /* cases/nansleep_test.c * *********************************************/ void test_nuttx_syscall_nansleep01(FAR void **state); void test_nuttx_syscall_nansleep02(FAR void **state); /* cases/time_test.c * *************************************************/ void test_nuttx_syscall_time01(FAR void **state); void test_nuttx_syscall_time02(FAR void **state); /* cases/timer_create_test.c * *****************************************/ void test_nuttx_syscall_timercreate01(FAR void **state); /* cases/timer_delete_test.c * *****************************************/ void test_nuttx_syscall_timerdelete01(FAR void **state); /* cases/timer_gettime_test.c * ****************************************/ void test_nuttx_syscall_timergettime01(FAR void **state); /* cases/mkdir_test.c * ************************************************/ void test_nuttx_syscall_mkdir01(FAR void **state); void test_nuttx_syscall_mkdir02(FAR void **state); void test_nuttx_syscall_mkdir03(FAR void **state); /* cases/syscall_sched_test.c * ***********************************************/ void test_nuttx_syscall_sched01(FAR void **state); void test_nuttx_syscall_sched02(FAR void **state); void test_nuttx_syscall_sched03(FAR void **state); void test_nuttx_syscall_sched04(FAR void **state); /* cases/write_test.c * ************************************************/ void test_nuttx_syscall_write01(FAR void **state); void test_nuttx_syscall_write02(FAR void **state); void test_nuttx_syscall_write03(FAR void **state); /* cases/read_test.c * *************************************************/ void test_nuttx_syscall_read01(FAR void **state); void test_nuttx_syscall_read02(FAR void **state); void test_nuttx_syscall_read03(FAR void **state); void test_nuttx_syscall_read04(FAR void **state); /* cases/symlink_test.c * **********************************************/ void test_nuttx_syscall_symlink01(FAR void **state); void test_nuttx_syscall_symlink02(FAR void **state); /* cases/socket_test.c * **********************************************/ void test_nuttx_syscall_sockettest01(FAR void **state); void test_nuttx_syscall_sockettest02(FAR void **state); /* cases/getpeername_test.c * **********************************************/ void test_nuttx_syscall_connect01(FAR void **state); /* cases/getpeername_test.c * **********************************************/ void test_nuttx_syscall_getpeername01(FAR void **state); /* cases/getsocketopt_test.c * **********************************************/ void test_nuttx_syscall_getsockopt01(FAR void **state); /* cases/recvfrom_test.c * **********************************************/ void test_nuttx_syscall_recvfromtest01(FAR void **state); /* cases/setsocketopt01_test.c * **********************************************/ void test_nuttx_syscall_setsockopt01(FAR void **state); /* cases/listen_test.c * **********************************************/ void test_nuttx_syscall_listen01(FAR void **state); /* cases/socketpair_test.c * **********************************************/ void test_nuttx_syscall_socketpair01(FAR void **state); void test_nuttx_syscall_socketpair02(FAR void **state); /* cases/bind_test.c * **********************************************/ void test_nuttx_syscall_bind01(FAR void **state); #endif