personality01 Check that we can set the personality for a process. personality02 Check that we get EINVAL for a bad personality. exit01 Check that exit returns the correct values to the waiting parent exit02 Check that exit flushes output file buffers and closes files upon exiting wait02 Basic test for wait(2) system call. wait401 check that a call to wait4() correctly waits for a child process to exit wait402 check for ECHILD errno when using an illegal pid value waitpid01 Check that when a child kills itself by generating an alarm exception, the waiting parent is correctly notified. waitpid02 Check that when a child kills itself by generating an integer zero divide exception, the waiting parent is correctly notified. waitpid03 Check that parent waits until specific child has returned. waitpid04 test to check the error conditions in waitpid sys call waitpid05 Check that when a child kills itself with a kill statement after determining its process id by using getpid, the parent receives a correct report of the cause of its death. This also indirectly checks that getpid returns the correct process id. waitpid06 Tests to see if pid's returned from fork and waitpid are same. waitpid07 Tests to see if pid's returned from fork and waitpid are same. waitpid08 Tests to see if pid's returned from fork and waitpid are same waitpid09 Check ability of parent to wait until child returns, and that the child's process id is returned through the waitpid. Check that waitpid returns immediately if no child is present. waitpid10 Tests to see if pid's returned from fork and waitpid are same waitpid11 Tests to see if pid's returned from fork and waitpid are same waitpid12 Tests to see if pid's returned from fork and waitpid are same waitpid13 Tests to see if pid's returned from fork and waitpid are same fcntl01 Test F_DUPFD, F_SETFL cmds of fcntl fcntl02 Basic test for fcntl(2) using F_DUPFD argument. fcntl03 Basic test for fcntl(2) using F_GETFD argument. fcntl04 Basic test for fcntl(2) using F_GETFL argument. fcntl05 Basic test for fcntl(2) using F_GETLK argument. fcntl06 Error checking conditions for remote locking of regions of a file. fcntl07 Close-On-Exec functional test. fcntl07B Close-On-Exec of named pipe functional test. fcntl08 Basic test for fcntl(2) using F_SETFL argument. fcntl09 Basic test for fcntl(2) using F_SETLK argument. fcntl10 Basic test for fcntl(2) using F_SETLKW argument. fcntl11 Testcase to check locking of regions of a file fcntl12 Testcase to test that fcntl() sets EMFILE for F_DUPFD command. fcntl13 Testcase to test that fcntl() sets errno correctly. fcntl14 File locking test cases for fcntl. In Linux, S_ENFMT is not implemented in the kernel. However all standard Unix kernels define S_ENFMT as S_ISGID. So this test defines S_ENFMT as S_ISGID. fcntl15 Check that file locks are removed when file closed fcntl16 Additional file locking test cases for checking proper notification of processes on lock change fcntl17 Check deadlock detection for file locking fcntl18 Test to check the error conditions in fcntl system call fcntl19 Testcase to check locking of regions of a file fcntl20 Check locking of regions of a file fcntl21 Check locking of regions of a file dup01 Basic test for dup(2). dup02 Negative test for dup(2) with bad fd. dup03 Negative test for dup(2) (too many fds). dup04 Basic test for dup(2) of a system pipe descriptor. dup05 Basic test for dup(2) of a named pipe descriptor. dup201 Negative tests for dup2() with bad fd (EBADF), and for "too many open files" (EMFILE) dup202 Is the access mode the same for both file descriptors? 0: read only ? "0444" 1: write only ? "0222" 2: read/write ? "0666" dup203 Testcase to check the basic functionality of dup2(). dup204 Testcase to check the basic functionality of dup2(2). msync01 Verify that, msync() succeeds, when the region to synchronize, is part of, or all of a mapped region. msync02 Verify that msync() succeeds when the region to synchronize is mapped shared and the flags argument is MS_INVALIDATE. msync03 Verify that, msync() fails, when the region to synchronize, is outside the address space of the process. msync04 Verify that, msync() fails, when the region to synchronize, is mapped but the flags argument is invalid. msync05 Verify that, msync() fails, when the region to synchronize, was not mapped. sendfile02 Testcase to test the basic functionality of the sendfile(2) system call. sendfile03 Testcase to test that sendfile(2) system call returns appropriate errnos on error. fork01 Basic test for fork(2). fork02 Test correct operation of fork: pid == 0 in child; pid > 0 in parent from wait; fork03 Check that child can use a large text space and do a large number of operations. fork04 Child inheritance of Environment Variables after fork(). fork05 Make sure LDT is propagated correctly fork06 Test that a process can fork children a large number of times in succession fork07 Check that all children inherit parent's file descriptor fork08 Check if the parent's file descriptors are affected by actions in the child; they should not be. fork09 Check that child has access to a full set of files. fork10 Check inheritance of file descriptor by children, they should all be referring to the same file. fork11 Test that parent gets a pid from each child when doing wait vfork01 Fork a process using vfork() and verify that, the attribute values like euid, ruid, suid, egid, rgid, sgid, umask, inode and device number of root and current working directories are same as that of the parent process. vfork02 Fork a process using vfork() and verify that, the pending signals in the parent are not pending in the child process. ioctl01 Testcase to check the errnos set by the ioctl(2) system call. ioctl02 Testcase to test the TCGETA, and TCSETA ioctl implementations for the tty driver sockioctl01 Verify that ioctl() on sockets returns the proper errno for various failure cases getitimer01 check that a correct call to getitimer() succeeds getitimer02 check that a getitimer() call fails as expected with an incorrect second argument. getitimer03 check that a getitimer() call fails as expected with an incorrect first argument. setitimer01 check that a reasonable setitimer() call succeeds. setitimer02 check that a setitimer() call fails as expected with incorrect values. setitimer03 check that a setitimer() call fails as expected with incorrect values. float_trigo increase CPUs workload - verify that results of some math functions are stable trigonometric (acos, asin, atan, atan2, cos, sin, tan), hyperbolic (cosh, sinh, tanh), float_exp_log increase CPUs workload - verify that results of some math functions are stable exponential and logarithmic functions (exp, log, log10), Functions that manipulate floating-point numbers (modf, ldexp, frexp), Euclidean distance function (hypot), float_bessel increase CPUs workload - verify that results of some math functions are stable Bessel (j0, j1, y0, y1), Computes the natural logarithm of the gamma function (lgamma), fload_power increase CPUs workload - verify that results of some math functions are stable Computes sqrt, power, fmod float_iperb increase CPUs workload - verify that results of some math functions are stable pth_str01 Creates a tree of threads pth_str02 Creates n threads pth_str03 Creates a tree of threads does calculations, and returns result to parent asyncio02 Write/close flushes data to the file. fpathconf Basic test for fpathconf(2) gethostid01 Basic test for gethostid(2) pathconf01 Basic test for pathconf(2) setpgrp01 Basic test for the setpgrp(2) system call. setpgrp02 Testcase to check the basic functionality of the setpgrp(2) syscall. ulimit01 Basic test for the ulimit(2) system call. mmstress Performs General Stress with Race conditions mmap1 Test the LINUX memory manager. The program is aimed at stressing the memory manager by simultaneous map/unmap/read by light weight processes, the test is scheduled to run for a minimum of 24 hours. mmap2 Test the LINUX memory manager. The program is aimed at stressing the memory manager by repeated map/write/unmap of a of a large gb size file. mmap3 Test the LINUX memory manager. The program is aimed at stressing the memory manager by repeated map/write/unmap of file/memory of random size (maximum 1GB) this is done by multiple processes. mmap001 Tests mmapping a big file and writing it once mmap01 Verify that, mmap() succeeds when used to map a file where size of the file is not a multiple of the page size, the memory area beyond the end of the file to the end of the page is accessible. Also, verify that this area is all zeroed and the modifications done to this area are not written to the file. mmap02 Call mmap() with prot parameter set to PROT_READ and with the file descriptor being open for read, to map a file creating mapped memory with read access. The minimum file permissions should be 0444. mmap03 Call mmap() to map a file creating a mapped region with execute access under the following conditions - - The prot parameter is set to PROT_EXE - The file descriptor is open for read - The file being mapped has execute permission bit set. - The minimum file permissions should be 0555. The call should succeed to map the file creating mapped memory with the required attributes. mmap04 Call mmap() to map a file creating a mapped region with read/exec access under the following conditions - - The prot parameter is set to PROT_READ|PROT_EXEC - The file descriptor is open for read - The file being mapped has read and execute permission bit set. - The minimum file permissions should be 0555. The call should succeed to map the file creating mapped memory with the required attributes. mmap05 Call mmap() to map a file creating mapped memory with no access under the following conditions - - The prot parameter is set to PROT_NONE - The file descriptor is open for read(any mode other than write) - The minimum file permissions should be 0444. The call should succeed to map the file creating mapped memory with the required attributes. mmap06 Call mmap() to map a file creating a mapped region with read access under the following conditions - - The prot parameter is set to PROT_READ - The file descriptor is open for writing. The call should fail to map the file. mmap07 Call mmap() to map a file creating a mapped region with read access under the following conditions - - The prot parameter is set to PROT_WRITE - The file descriptor is open for writing. - The flags parameter has MAP_PRIVATE set. The call should fail to map the file. mmap08 Verify that mmap() fails to map a file creating a mapped region when the file specified by file descriptor is not valid. mremap01 Verify that, mremap() succeeds when used to expand the existing virtual memory mapped region to the requested size where the virtual memory area was previously mapped to a file using mmap(). mremap02 Verify that, mremap() fails when used to expand the existing virtual memory mapped region to the requested size, if the virtual memory area previously mapped was not page aligned or invalid argument specified. mremap03 Verify that, mremap() fails when used to expand the existing virtual memory mapped region to the requested size, if there already exists mappings that cover the whole address space requested or the old address specified was not mapped. mremap04 Verify that, mremap() fails when used to expand the existing virtual memory mapped region to the requested size, if the memory area cannot be expanded at the current virtual address and MREMAP_MAYMOVE flag not set. munmap01 Verify that, munmap call will succeed to unmap a mapped file or anonymous shared memory region from the calling process's address space and after successful completion of munmap, the unmapped region is no longer accessible. munmap02 Verify that, munmap call will succeed to unmap a mapped file or anonymous shared memory region from the calling process's address space if the region specified by the address and the length is part or all of the mapped region. munmap03 Verify that, munmap call will fail to unmap a mapped file or anonymous shared memory region from the calling process's address space if the address and the length of the region to be unmapped points outside the calling process's address space brk01 Test the basic functionality of brk. sbrk01 Basic test for the sbrk(2) system call. mprotect01 Testcase to check the error conditions for mprotect(2) mprotect02 Testcase to check the mprotect(2) system call. mprotect03 Testcase to check the mprotect(2) system call. msgctl01 create a message queue, then issue the IPC_STAT command and RMID commands to test the functionality msgctl02 create a message queue, then issue the IPC_SET command to lower the msg_qbytes value. msgctl03 create a message queue, then issue the IPC_RMID command msgctl04 test for EACCES, EFAULT and EINVAL errors using a variety of incorrect calls. msgctl05 test for EPERM error msgget01 create a message queue, write a message to it and read it back. msgget02 test for EEXIST and ENOENT errors msgget03 test for an ENOSPC error by using up all available message queues. msgget04 test for an EACCES error by creating a message queue with no read or write permission and then attempting to access it with various permissions. msgrcv01 test that msgrcv() receives the expected message msgrcv02 test for EACCES and EFAULT errors msgrcv03 test for EINVAL error msgrcv04 test for E2BIG and ENOMSG errors msgrcv05 test for EINTR error msgrcv06 test for EIDRM error msgsnd01 test that msgsnd() enqueues a message correctly msgsnd02 test for EACCES and EFAULT errors msgsnd03 test for EINVAL error msgsnd04 test for EAGAIN error msgsnd05 test for EINTR error msgsnd06 test for EIDRM error link02 Basic test for link(2) link03 Multi links tests link04 Negative test cases for link(2) link05 Multi links (EMLINK) negative test readlink01 Verify that, readlink will succeed to read the contents of the symbolic link created the process. readlink02 Basic test for the readlink(2) system call readlink03 Verify that, 1) readlink(2) returns -1 and sets errno to EACCES if search/write permission is denied in the directory where the symbolic link resides. 2) readlink(2) returns -1 and sets errno to EINVAL if the buffer size is not positive. 3) readlink(2) returns -1 and sets errno to EINVAL if the specified file is not a symbolic link file. 4) readlink(2) returns -1 and sets errno to ENAMETOOLONG if the pathname component of symbolic link is too long (ie, > PATH_MAX). 5) readlink(2) returns -1 and sets errno to ENOENT if the component of symbolic link points to an empty string. readlink04 Verify that, readlink call will succeed to read the contents of the symbolic link if invoked by non-root user who is not the owner of the symbolic link. symlink01 Test of various file function calls, such as rename or open, on a symbolic link file. symlink02 Basic test for the symlink(2) system call. symlink03 Verify that, 1) symlink(2) returns -1 and sets errno to EACCES if search/write permission is denied in the directory where the symbolic link is being created. 2) symlink(2) returns -1 and sets errno to EEXIST if the specified symbolic link already exists. 3) symlink(2) returns -1 and sets errno to EFAULT if the specified file or symbolic link points to invalid address. 4) symlink(2) returns -1 and sets errno to ENAMETOOLONG if the pathname component of symbolic link is too long (ie, > PATH_MAX). 5) symlink(2) returns -1 and sets errno to ENOTDIR if the directory component in pathname of symbolic link is not a directory. 6) symlink(2) returns -1 and sets errno to ENOENT if the component of symbolic link points to an empty string. symlink04 Verify that, symlink will succeed to create a symbolic link of an existing object name path. symlink05 Verify that, symlink will succeed to create a symbolic link of an non-existing object name path. unlink05 Basic test for the unlink(2) system call. unlink06 Test for the unlink(2) system call of a FIFO. unlink07 Tests for error handling for the unlink(2) system call. unlink08 More tests for error handling for the unlink(2) system call. linktest Regression test for max links per file rename01 This test will verify the rename(2) syscall basic functionality. Verify rename() works when the "new" file or directory does not exist. rename02 Basic test for the rename(2) system call rename03 This test will verify that rename(2) functions correctly when the "new" file or directory exists rename04 This test will verify that rename(2) failed when newpath is a non-empty directory and return EEXIST or ENOTEMPTY rename05 This test will verify that rename(2) fails with EISDIR rename06 This test will verify that rename(2) failed in EINVAL rename07 This test will verify that rename(2) failed in ENOTDIR rename08 This test will verify that rename(2) syscall failed in EFAULT rename09 check rename() fails with EACCES rename10 This test will verify that rename(2) syscall fails with ENAMETOOLONG and ENOENT rename11 This test will verify that rename(2) failed in EBUSY rename12 check rename() fails with EPERM rename13 Verify rename() return successfully and performs no other action when "old" file and "new" file link to the same file. rmdir01 This test will verify that rmdir(2) syscall basic functionality. verify rmdir(2) returns a value of 0 and the directory being removed rmdir02 This test will verify that rmdir(2) fail in 1. ENOTEMPTY 2. EBUSY 3. ENAMETOOLONG 4. ENOENT 5. ENOTDIR 6. EFAULT 7. EFAULT rmdir03 check rmdir() fails with EPERM or EACCES rmdir04 Basic test for the rmdir(2) system call rmdir05 Verify that rmdir(2) returns a value of -1 and sets errno to indicate the error. mkdir01 Basic errno test for mkdir(2) mkdir02 This test will verify that new directory created by mkdir(2) inherits the group ID from the parent directory and S_ISGID bit, if the S_ISGID bit is set in the parent directory. mkdir03 Check mkdir() with various error conditions that should produce EFAULT, ENAMETOOLONG, EEXIST, ENOENT and ENOTDIR mkdir04 Attempt to create a directory in a directory having no permissions. mkdir05 This test will verify the mkdir(2) syscall basic functionality mkdir08 Basic test for mkdir(2) mknod01 Basic test for mknod(2) mknod02 Verify that mknod(2) succeeds when used to create a filesystem node with set group-ID bit set on a directory without set group-ID bit set. The node created should have set group-ID bit set and its gid should be equal to that of its parent directory. mknod03 Verify that mknod(2) succeeds when used to create a filesystem node with set group-ID bit set on a directory with set group-ID bit set. The node created should have set group-ID bit set and its gid should be equal to the effective gid of the process. mknod04 Verify that mknod(2) succeeds when used to create a filesystem node on a directory with set group-ID bit set. The node created should not have group-ID bit set and its gid should be equal to the effective gid of the process. mknod05 Verify that mknod(2) succeeds when used by root to create a filesystem node with set group-ID bit set on a directory with set group-ID bit set. The node created should have set group-ID bit set and its gid should be equal to that of its parent directory. mknod06 Verify that, 1) mknod(2) returns -1 and sets errno to EEXIST if specified path already exists. 2) mknod(2) returns -1 and sets errno to EFAULT if pathname points outside user's accessible address space. 3) mknod(2) returns -1 and sets errno to ENOENT if the directory component in pathname does not exist. 4) mknod(2) returns -1 and sets errno to ENAMETOOLONG if the pathname component was too long. 5) mknod(2) returns -1 and sets errno to ENOTDIR if the directory component in pathname is not a directory. mknod07 Verify that, 1) mknod(2) returns -1 and sets errno to EPERM if the process id of the caller is not super-user. 2) mknod(2) returns -1 and sets errno to EACCES if parent directory does not allow write permission to the process. mknod08 Verify that mknod(2) succeeds when used to create a filesystem node on a directory without set group-ID bit set. The node created should not have set group-ID bit set and its gid should be equal to that of its parent directory. access01 Basic test for access(2) using F_OK, R_OK, W_OK, and X_OK arguments. access02 Verify that access() succeeds to check the read/write/execute permissions on a file if the mode argument passed was R_OK/W_OK/X_OK. Also verify that, access() succeeds to test the accessibility of the file referred to by symbolic link if the pathname points to a symbolic link. access03 EFAULT error testing for access(2). access04 Verify that, 1. access() fails with -1 return value and sets errno to EACCES if the permission bits of the file mode do not permit the requested (Read/Write/Execute) access. 2. access() fails with -1 return value and sets errno to EINVAL if the specified access mode argument is invalid. 3. access() fails with -1 return value and sets errno to EFAULT if the pathname points outside allocate address space for the process. 4. access() fails with -1 return value and sets errno to ENOENT if the specified file doesn't exist (or pathname is NULL). 5. access() fails with -1 return value and sets errno to ENAMETOOLONG if the pathname size is > PATH_MAX characters. access05 Verify that access() succeeds to check the existence of a file if search access is permitted on the pathname of the specified file. access06 EFAULT error testing for access(2). chroot01 Testcase to check the whether chroot sets errno to EPERM. chroot02 Test functionality of chroot(2) chroot03 Testcase to test whether chroot(2) sets errno correctly. pipeio This tool can be used to beat on system or named pipes. See the help() function below for user information. pipe01 Testcase to check the basic functionality of the pipe(2) syscall: Check that both ends of the pipe (both file descriptors) are available to a process opening the pipe. pipe05 Check what happens when pipe is passed a bad file descriptor. pipe06 Check what happens when the system runs out of pipes. pipe08 Check that a SIGPIPE signal is generated when a write is attempted on an empty pipe. pipe09 Check that two processes can use the same pipe at the same time. pipe10 Check that parent can open a pipe and have a child read from it pipe11 Check if many children can read what is written to a pipe by the parent. sem01 Creates a semaphore and two processes. The processes each go through a loop where they semdown, delay for a random amount of time, and semup, so they will almost always be fighting for control of the semaphore. sem02 The application creates several threads using pthread_create(). One thread performs a semop() with the SEM_UNDO flag set. The change in semaphore value performed by that semop should be "undone" only when the last pthread exits. semctl01 test the 10 possible semctl() commands semctl02 test for EACCES error semctl03 test for EINVAL and EFAULT errors semctl04 test for EPERM error semctl05 test for ERANGE error semget01 test that semget() correctly creates a semaphore set semget02 test for EACCES and EEXIST errors semget03 test for ENOENT error semget05 test for ENOSPC error semget06 test for EINVAL error semop01 test that semop() basic functionality is correct semop02 test for E2BIG, EACCES, EFAULT and EINVAL errors semop03 test for EFBIG error semop04 test for EAGAIN error semop05 test for EINTR and EIDRM errors msgctl01 create a message queue, then issue the IPC_STAT command and RMID commands to test the functionality msgctl02 create a message queue, then issue the IPC_SET command to lower the msg_qbytes value. msgctl03 create a message queue, then issue the IPC_RMID command msgctl04 test for EACCES, EFAULT and EINVAL errors using a variety of incorrect calls. msgctl05 test for EPERM error msgget01 create a message queue, write a message to it and read it back. msgget02 test for EEXIST and ENOENT errors msgget03 test for an ENOSPC error by using up all available message queues. msgget04 test for an EACCES error by creating a message queue with no read or write permission and then attempting to access it with various permissions. msgrcv01 test that msgrcv() receives the expected message msgrcv02 test for EACCES and EFAULT errors msgrcv03 test for EINVAL error msgrcv04 test for E2BIG and ENOMSG errors msgrcv05 test for EINTR error msgrcv06 test for EIDRM error msgsnd01 test that msgsnd() enqueues a message correctly msgsnd02 test for EACCES and EFAULT errors msgsnd03 test for EINVAL error msgsnd04 test for EAGAIN error msgsnd05 test for EINTR error msgsnd06 test for EIDRM error shmat01 test that shmat() works correctly shmat02 check for EINVAL and EACCES errors shmat03 test for EACCES error shmctl01 test the IPC_STAT, IPC_SET and IPC_RMID commands as they are used with shmctl() shmctl02 check for EACCES, EFAULT and EINVAL errors shmctl03 check for EACCES, and EPERM errors shmdt01 check that shared memory is detached correctly shmdt02 check for EINVAL error shmget01 test that shmget() correctly creates a shared memory segment shmget02 check for ENOENT, EEXIST and EINVAL errors shmget03 test for ENOSPC error shmget04 test for EACCES error shmget05 test for EACCES error openfile Creates files and opens simultaneously open01 Open a file with oflag = O_CREAT set, does it set the sticky bit off? Open "/tmp" with O_DIRECTORY, does it set the S_IFDIR bit on? open02 Test if open without O_CREAT returns -1 if a file does not exist. open03 Basic test for open(2) open04 Testcase to check that open(2) sets EMFILE if a process opens files more than its descriptor size open05 Testcase to check open(2) sets errno to EACCES correctly. open06 Testcase to check open(2) sets errno to ENXIO correctly. open07 Test the open(2) system call to ensure that it sets ELOOP correctly. open08 Check for the following errors: 1. EEXIST 2. EISDIR 3. ENOTDIR 4. ENAMETOOLONG 5. EFAULT 6. ETXTBSY openfile Creates files and opens simultaneously chdir01 Check proper operation of chdir(): tests whether the system call can it change the current, working directory, and find a file there? Will it fail on a non-directory entry ? chdir02 Basic test for chdir(2). chdir03 Testcase for testing that chdir(2) sets EACCES errno chdir04 Testcase to test whether chdir(2) sets errno correctly. chmod01 Verify that, chmod(2) succeeds when used to change the mode permissions of a file. chmod02 Basic test for chmod(2). chmod03 Verify that, chmod(2) will succeed to change the mode of a file and set the sticky bit on it if invoked by non-root (uid != 0) process with the following constraints, - the process is the owner of the file. - the effective group ID or one of the supplementary group ID's of the process is equal to the group ID of the file. chmod04 Verify that, chmod(2) will succeed to change the mode of a directory and set the sticky bit on it if invoked by non-root (uid != 0) process with the following constraints, - the process is the owner of the directory. - the effective group ID or one of the supplementary group ID's of the process is equal to the group ID of the directory. chmod05 Verify that, chmod(2) will succeed to change the mode of a directory but fails to set the setgid bit on it if invoked by non-root (uid != 0) process with the following constraints, - the process is the owner of the directory. - the effective group ID or one of the supplementary group ID's of the process is not equal to the group ID of the directory. chmod06 Verify that, 1) chmod(2) returns -1 and sets errno to EPERM if the effective user id of process does not match the owner of the file and the process is not super user. 2) chmod(2) returns -1 and sets errno to EACCES if search permission is denied on a component of the path prefix. 3) chmod(2) returns -1 and sets errno to EFAULT if pathname points outside user's accessible address space. 4) chmod(2) returns -1 and sets errno to ENAMETOOLONG if the pathname component is too long. 5) chmod(2) returns -1 and sets errno to ENOTDIR if the directory component in pathname is not a directory. 6) chmod(2) returns -1 and sets errno to ENOENT if the specified file does not exists. chmod07 Verify that, chmod(2) will succeed to change the mode of a file/directory and sets the sticky bit on it if invoked by root (uid = 0) process with the following constraints, - the process is not the owner of the file/directory. - the effective group ID or one of the supplementary group ID's of the process is equal to the group ID of the file/directory. chown01 Basic test for chown(2). chown02 Verify that, when chown(2) invoked by super-user to change the owner and group of a file specified by path to any numeric owner(uid)/group(gid) values, - clears setuid and setgid bits set on an executable file. - preserves setgid bit set on a non-group-executable file. chown03 Verify that, chown(2) succeeds to change the group of a file specified by path when called by non-root user with the following constraints, - euid of the process is equal to the owner of the file. - the intended gid is either egid, or one of the supplementary gids of the process. Also, verify that chown() clears the setuid/setgid bits set on the file. chown04 Verify that, 1) chown(2) returns -1 and sets errno to EPERM if the effective user id of process does not match the owner of the file and the process is not super user. 2) chown(2) returns -1 and sets errno to EACCES if search permission is denied on a component of the path prefix. 3) chown(2) returns -1 and sets errno to EFAULT if pathname points outside user's accessible address space. 4) chown(2) returns -1 and sets errno to ENAMETOOLONG if the pathname component is too long. 5) chown(2) returns -1 and sets errno to ENOTDIR if the directory component in pathname is not a directory. 6) chown(2) returns -1 and sets errno to ENOENT if the specified file does not exists. chown05 Verify that, chown(2) succeeds to change the owner and group of a file specified by path to any numeric owner(uid)/group(gid) values when invoked by super-user. close01 Test that closing a regular file and a pipe works correctly close02 Check that an invalid file descriptor returns EBADF close08 Basic test for close(2). fchdir01 create a directory and cd into it. fchdir02 try to cd into a bad directory (bad fd). fchmod01 Basic test for Fchmod(2). fchmod02 Verify that, fchmod(2) will succeed to change the mode of a file/directory set the sticky bit on it if invoked by root (uid = 0) process with the following constraints, - the process is not the owner of the file/directory. - the effective group ID or one of the supplementary group ID's of the process is equal to the group ID of the file/directory. fchmod03 Verify that, fchmod(2) will succeed to change the mode of a file and set the sticky bit on it if invoked by non-root (uid != 0) process with the following constraints, - the process is the owner of the file. - the effective group ID or one of the supplementary group ID's of the process is equal to the group ID of the file. fchmod04 Verify that, fchmod(2) will succeed to change the mode of a directory and set the sticky bit on it if invoked by non-root (uid != 0) process with the following constraints, - the process is the owner of the directory. - the effective group ID or one of the supplementary group ID's of the process is equal to the group ID of the directory. fchmod05 Verify that, fchmod(2) will succeed to change the mode of a directory but fails to set the setgid bit on it if invoked by non-root (uid != 0) process with the following constraints, - the process is the owner of the directory. - the effective group ID or one of the supplementary group ID's of the process is not equal to the group ID of the directory. fchmod06 Verify that, 1) fchmod(2) returns -1 and sets errno to EPERM if the effective user id of process does not match the owner of the file and the process is not super user. 2) fchmod(2) returns -1 and sets errno to EBADF if the file descriptor of the specified file is not valid. fchmod07 Verify that, fchmod(2) succeeds when used to change the mode permissions of a file specified by file descriptor. fchown01 Basic test for fchown(2). fchown02 Verify that, when fchown(2) invoked by super-user to change the owner and group of a file specified by file descriptor to any numeric owner(uid)/group(gid) values, - clears setuid and setgid bits set on an executable file. - preserves setgid bit set on a non-group-executable file. fchown03 Verify that, fchown(2) succeeds to change the group of a file specified by path when called by non-root user with the following constraints, - euid of the process is equal to the owner of the file. - the intended gid is either egid, or one of the supplementary gids of the process. Also, verify that fchown() clears the setuid/setgid bits set on the file. fchown04 Verify that, 1) fchown(2) returns -1 and sets errno to EPERM if the effective user id of process does not match the owner of the file and the process is not super user. 2) fchown(2) returns -1 and sets errno to EBADF if the file descriptor of the specified file is not valid. fchown05 Verify that, fchown(2) succeeds to change the owner and group of a file specified by file descriptor to any numeric owner(uid)/group(gid) values when invoked by super-user. lchown01 Verify that, lchown(2) succeeds to change the owner and group of a file specified by path to any numeric owner(uid)/group(gid) values when invoked by super-user. lchown02 Verify that, 1) lchown(2) returns -1 and sets errno to EPERM if the effective user id of process does not match the owner of the file and the process is not super user. 2) lchown(2) returns -1 and sets errno to EACCES if search permission is denied on a component of the path prefix. 3) lchown(2) returns -1 and sets errno to EFAULT if pathname points outside user's accessible address space. 4) lchown(2) returns -1 and sets errno to ENAMETOOLONG if the pathname component is too long. 5) lchown(2) returns -1 and sets errno to ENOTDIR if the directory component in pathname is not a directory. 6) lchown(2) returns -1 and sets errno to ENOENT if the specified file does not exists. creat01 Testcase to check the basic functionality of the creat(2) system call. creat03 Testcase to check whether the sticky bit cleared. creat04 Testcase to check creat(2) fails with EACCES creat05 Testcase to check that creat(2) system call returns EMFILE. creat06 Testcase to check creat(2) sets the following errnos correctly: 1. EISDIR 2. ENAMETOOLONG 3. ENOENT 4. ENOTDIR 5. EFAULT 6. EACCES creat07 Testcase to check creat(2) sets the following errnos correctly: 1. ETXTBSY creat09 Basic test for creat(2) using 0700 argument. truncate01 Verify that, truncate(2) succeeds to truncate a file to a specified length. truncate02 Verify that, truncate(2) succeeds to truncate a file to a certain length, but the attempt to read past the truncated length will fail. truncate03 Verify that, 1) truncate(2) returns -1 and sets errno to EACCES if search/write permission denied for the process on the component of the path prefix or named file. 2) truncate(2) returns -1 and sets errno to ENOTDIR if the component of the path prefix is not a directory. 3) truncate(2) returns -1 and sets errno to EFAULT if pathname points outside user's accessible address space. 4) truncate(2) returns -1 and sets errno to ENAMETOOLONG if the component of a pathname exceeded 255 characters or entire pathname exceeds 1023 characters. 5) truncate(2) returns -1 and sets errno to ENOENT if the named file does not exist. ftruncate01 Verify that, ftruncate(2) succeeds to truncate a file to a specified length if the file indicated by file descriptor opened for writing. ftruncate02 Verify that, ftruncate(2) succeeds to truncate a file to a certain length, but the attempt to read past the truncated length will fail. ftruncate03 Verify that, 1) ftruncate(2) returns -1 and sets errno to EINVAL if the specified truncate length is less than 0. 2) ftruncate(2) returns -1 and sets errno to EBADF if the file descriptor of the specified file is not valid. vhangup01 Check the return value, and errno of vhangup(2) when a non-root user calls vhangup(). vhangup02 To test the basic functionality of vhangup(2) growfiles This program will grow a list of files. Each file will grow by grow_incr before the same file grows twice. Each file is open and closed before next file is opened. pipe01 Testcase to check the basic functionality of the pipe(2) syscall: Check that both ends of the pipe (both file descriptors) are available to a process opening the pipe. pipe05 Check what happens when pipe is passed a bad file descriptor. pipe06 Check what happens when the system runs out of pipes. pipe08 Check that a SIGPIPE signal is generated when a write is attempted on an empty pipe. pipe09 Check that two processes can use the same pipe at the same time. pipe10 Check that parent can open a pipe and have a child read from it pipe11 Check if many children can read what is written to a pipe by the parent. pipeio This tool can be used to beat on system or named pipes. See the help() function below for user information. /ipc_stress/message_queue_test_01.c /ipc_stress/pipe_test_01.c /ipc_stress/semaphore_test_01.c /ipc_stress/single_test_01.c proc01 Recursively reads all files within /proc filesystem. lftest The purpose of this test is to verify the file size limitations of a filesystem. It writes one buffer at a time and lseeks from the beginning of the file to the end of the last write position. The intent is to test lseek64. llseek01 Verify that, llseek() call succeeds to set the file pointer position to an offset larger than file size. Also, verify that any attempt to write to this location fails. llseek02 Verify that, 1. llseek() returns -1 and sets errno to EINVAL, if the 'Whence' argument is not a proper value. 2. llseek() returns -1 and sets errno to EBADF, if the file handle of the specified file is not valid. lseek01 Basic test for lseek(2) lseek02 Negative test for lseek(2) lseek03 Negative test for lseek(2) whence lseek04 Negative test for lseek(2) of a fifo lseek05 Negative test for lseek(2) of a pipe lseek06 Verify that, lseek() call succeeds to set the file pointer position to less than or equal to the file size, when a file is opened for read or write. lseek07 Verify that, lseek() call succeeds to set the file pointer position to more than the file size, when a file is opened for reading/writing. lseek08 Verify that, lseek() call succeeds to set the file pointer position to the end of the file when 'whence' value set to SEEK_END and any attempts to read from that position should fail. lseek09 Verify that, lseek() call succeeds to set the file pointer position to the current specified location, when 'whence' value is set to SEEK_CUR and the data read from the specified location should match the expected data. lseek10 Verify that, 1. lseek() returns -1 and sets errno to ESPIPE, if the file handle of the specified file is associated with a pipe, socket, or FIFO. 2. lseek() returns -1 and sets errno to EINVAL, if the 'Whence' argument is not a proper value. 3. lseek() returns -1 and sets errno to EBADF, if the file handle of the specified file is not valid. rwtest A wrapper for doio and iogen. doio a general purpose io initiator with system call and write logging. See doio.h for the structure which defines what doio requests should look like. Currently doio can handle read,write,reada,writea,ssread, sswrite, and many varieties of listio requests. For disk io, if the O_SSD flag is set doio will allocate the appropriate amount of ssd and do the transfer - thus, doio can handle all of the primitive types of file io. iogen A tool for generating file/sds io for a doio process pread01 Verify the functionality of pread() by writing known data using pwrite() to the file at various specified offsets and later read from the file from various specified offsets, comparing the data read against the data written. pread02 Verify that, 1) pread() fails when attempted to read from an unnamed pipe. 2) pread() fails if the specified offset position was invalid. pwrite01 Verify the functionality of pwrite() by writing known data using pwrite() to the file at various specified offsets and later read from the file from various specified offsets, comparing the data written against the data read using read(). pwrite02 Verify that, 1) pwrite() fails when attempted to write to an unnamed pipe. 2) pwrite() fails if the specified offset position was invalid. read01 Basic test for the read(2) system call read02 test 1: Does read return -1 if file descriptor is not valid, check for EBADF test 2: Check if read sets EISDIR, if the fd refers to a directory test 3: Check if read sets EFAULT, if buf is -1. read03 Testcase to check that read() sets errno to EAGAIN read04 Testcase to check if read returns the number of bytes read correctly. readv01 Testcase to check the basic functionality of the readv(2) system call. readv02 Testcase to check the error conditions of the readv(2) system call. write01 Basic test for write(2) system call. write02 Basic functionality test: does the return from write match the count of the number of bytes written. write03 Testcase to check that write(2) doesn't corrupt a file when it fails write04 Testcase to check that write() sets errno to EAGAIN write05 Check the return value, and errnos of write(2) - when the file descriptor is invalid - EBADF - when the buf parameter is invalid - EFAULT - on an attempt to write to a pipe that is not open for reading - EPIPE writev01 Testcase to check the basic functionality of writev(2) system call. writev02 In these testcases, writev() is called with partially valid data to be written in a sparse file. writev03 The testcases are written calling writev() with partially valid data to overwrite the contents, to write in the beginning and to write in the end of the file. writev04 The testcases are written calling writev() with partially valid data to overwrite the contents, to write in the beginning and to write in the end of the file. This is same as writev03, but the length of buffer used here is 8192 bytes. writev05 These testcases are written to test writev() on sparse files. This is same as writev02. But the initial write() with valid data is done at the beginning of the file. disktest Does repeated accesses to a filespec and optionally writes to, reads from, and verifies the data. By default, disktest makes assumptions about the running environment which allows for a quick start of IO generation. However, Disktest has a large number of command line options which can be used to adapt the test for a variety of uses including data integrity, medium integrity, performance, and simple application simulation. getdents01 get a directory entry getdents02 check that we get a failure with a bad file descriptor getdents03 check for an EINVAL error getdents04 check for an ENOTDIR error getdents05 check that we get a failure with a bad dirp address. process_stress Spawn creates a tree of processes with Dval depth and Bval breadth. Each parent will spawn Bval children. Each child will store information about themselves in shared memory. The leaf nodes will communicate the existence of one another through message queues, once each leaf node has received communication from all of her siblings she will reduce the semaphore count and exit. Meanwhile all parents are waiting to hear from their children through the use of semaphores. When the semaphore count reaches zero then the parent knows all the children have talked to one another. Locking of the connter semaphore is provided by the use of another (binary) semaphore. sched_stress Exports required environment variables and runs sched_driver sched_driver This program uses system calls to change the priorities of the throughput measurement testcases. When real-time is in effect, priorities 50 through 64 are used. (MAX_PRI and MIN_PRI) When user-time (normal) is in effect, 0-14 (corresponding to nice() calls) is used. The driver only keeps track of values from 50 to 64, and the testcases will scale them down to 0 to 14 when needed, to change the priority of a user-time process. time-schedule This programme will determine the context switch (scheduling) overhead on a system. It takes into account SMP machines. True context switches are measured. trace_sched This utility spawns N tasks, each task sets its priority by making a system call to the scheduler. The thread function reads the priority that the scheduler sets for this task and also reads from /proc the processor this task last executed on the information that is gathered by the thread function may be in real-time. Its only an approximation. sched_getscheduler01 Testcase to check sched_getscheduler() returns correct return value sched_getscheduler02 To check for the errno ESRCH sched_setscheduler01 Testcase to test whether sched_setscheduler(2) sets the errnos correctly. sched_setscheduler02 Testcase to test whether sched_setscheduler(2) sets the errnos correctly. sched_yield01 Testcase to check that sched_yield returns correct values. nice01 Verify that root can provide a negative value to nice() and hence root can decrease the nice value of the process using nice() system call nice02 Verify that any user can successfully increase the nice value of the process by passing a higher increment value (> max. applicable limits) to nice() system call. nice03 Verify that any user can successfully increase the nice value of the process by passing an increment value (< max. applicable limits) to nice() system call. nice04 Verify that, nice(2) fails when, a non-root user attempts to increase the priority of a process by specifying a negative increment value. nice05 Basic test for nice(2) poll01 Verify that valid open file descriptor must be provided to poll() to succeed. select01 Basic test for the select(2) system call to a fd of regular file with no I/O and small timeout select02 Basic test for the select(2) system call to fd of system pipe with no I/O and small timeout select03 Basic test for the select(2) system call to fd of a named-pipe (FIFO) select04 Verify that select(2) returns immediately (does not block) if the timeout value is zero. select05 Verify that select(2) fails when one or more of the file descriptor sets specify a file descriptor which is not valid. select06 Verify that select(2) fails when a signal is delivered before any of the selected events occur and before the timeout interval expires. select07 Verify that select(2) fails when an invalid timeout interval is specified. select08 Verify the functionality of select(2) by passing non-null writefds which points to a regular file, pipes or FIFO's. select09 Verify the functionality of select(2) by passing non-null readfds which points to a regular file, pipes or FIFO's. select10 Verify that a successful call to select() shall return the desired number of modified descriptors for which bits are set in the bit masks, where descriptors points to a regular file, pipes or FIFO's. sem01 Creates a semaphore and two processes. The processes each go through a loop where they semdown, delay for a random amount of time, and semup, so they will almost always be fighting for control of the semaphore. sem02 The application creates several threads using pthread_create(). One thread performs a semop() with the SEM_UNDO flag set. The change in semaphore value performed by that semop should be "undone" only when the last pthread exits. semctl01 test the 10 possible semctl() commands semctl02 test for EACCES error semctl03 test for EINVAL and EFAULT errors semctl04 test for EPERM error semctl05 test for ERANGE error semget01 test that semget() correctly creates a semaphore set semget02 test for EACCES and EEXIST errors semget03 test for ENOENT error semget05 test for ENOSPC error semget06 test for EINVAL error semop01 test that semop() basic functionality is correct semop02 test for E2BIG, EACCES, EFAULT and EINVAL errors semop03 test for EFBIG error semop04 test for EAGAIN error semop05 test for EINTR and EIDRM errors shmat01 test that shmat() works correctly shmat02 check for EINVAL and EACCES errors shmat03 test for EACCES error shmctl01 test the IPC_STAT, IPC_SET and IPC_RMID commands as they are used with shmctl() shmctl02 check for EACCES, EFAULT and EINVAL errors shmctl03 check for EACCES, and EPERM errors shmdt01 check that shared memory is detached correctly shmdt02 check for EINVAL error shmget01 test that shmget() correctly creates a shared memory segment shmget02 check for ENOENT, EEXIST and EINVAL errors shmget03 test for ENOSPC error shmget04 test for EACCES error shmget05 test for EACCES error shmat1 Test the LINUX memory manager. The program is aimed at stressing the memory manager by repeated shmat/write/read/ shmatd of file/memory of random size (maximum 1000 * 4096) done by multiple processes. shm_test This program is designed to stress the Memory management sub - system of Linux. This program will spawn multiple pairs of reader and writer threads. One thread will create the shared segment of random size and write to this memory, the other pair will read from this memory. sigaction01 Test some features of sigaction (see below for more details) sigaction02 Testcase to check the basic errnos set by the sigaction(2) syscall. sigaltstack01 Send a signal using the main stack. While executing the signal handler compare a variable's address lying on the main stack with the stack boundaries returned by sigaltstack(). sigaltstack02 Verify that, 1. sigaltstack() fails and sets errno to EINVAL when "ss_flags" field pointed to by 'ss' contains invalid flags. 2. sigaltstack() fails and sets errno to ENOMEM when the size of alternate stack area is less than MINSIGSTKSZ. sighold02 Basic test for the sighold02(2) system call. signal01 set the signal handler to our own function signal02 Test that we get an error using illegal signals signal03 Boundary value and other invalid value checking of signal setup and signal sending. signal04 restore signals to default behavior signal05 set signals to be ignored sigprocmask01 Verify that sigprocmask() succeeds to examine and change the calling process's signal mask. Also, verify that sigpending() succeeds to store signal mask that are blocked from delivery and pending for the calling process. sigrelse01 Basic test for the sigrelse(2) system call. sigsuspend01 Verify that sigsuspend() succeeds to change process's current signal mask with the specified signal mask and suspends the process execution until the delivery of a signal. kill01 Test case to check the basic functionality of kill(). kill02 Sending a signal to processes with the same process group ID kill03 Test case to check that kill fails when given an invalid signal. kill04 Test case to check that kill() fails when passed a non-existent pid. kill05 Test case to check that kill() fails when passed a pid owned by another user. kill06 Test case to check the basic functionality of kill() when killing an entire process group with a negative pid. kill07 Test case to check that SIGKILL can not be caught. kill08 Test case to check the basic functionality of kill() when kill an entire process group. kill09 Basic test for kill(2) kill10 Signal flooding test. mtest01 mallocs memory at a time until malloc fails. mallocstress This program is designed to stress the VMM by doing repeated */ mallocs and frees, with out using the swap space. This is */ achieved by spawning N threads with repeatedly malloc and free*/ a memory of size M. The stress can be increased by increasing */ the number of repetitions over the default number using the */ -l [num] option. clisrv Sender: Read contents of data file. Write each line to socket, then read line back from socket and write to standard output. Receiver: Read a stream socket one line at a time and write each line back to the sender. Usage: pthcli [port number] socket01 Verify that socket() returns the proper errno for various failure cases socketpair01 Verify that socketpair() returns the proper errno for various failure cases sockioctl01 Verify that ioctl() on sockets returns the proper errno for various failure cases connect01 Verify that connect() returns the proper errno for various failure cases getpeername01 Verify that getpeername() returns the proper errno for various failure cases getsockname01 Verify that getsockname() returns the proper errno for various failure cases getsockopt01 Verify that getsockopt() returns the proper errno for various failure cases listen01 Verify that listen() returns the proper errno for various failure cases accept01 Verify that accept() returns the proper errno for various failure cases bind01 Verify that bind() returns the proper errno for various failure cases recv01 Verify that recv() returns the proper errno for various failure cases recvfrom01 Verify that recvfrom() returns the proper errno for various failure cases recvmsg01 Verify that recvmsg() returns the proper errno for various failure cases send01 Verify that send() returns the proper errno for various failure cases sendmsg01 Verify that sendmsg() returns the proper errno for various failure cases sendto01 Verify that sendto() returns the proper errno for various failure cases setsockopt01 Verify that setsockopt() returns the proper errno for various failure cases fstat01 Basic test for fstat(2) fstat02 Verify that, fstat(2) succeeds to get the status of a file and fills the stat structure elements though file pointed to by file descriptor not opened for reading. fstat03 Verify that, fstat(2) returns -1 and sets errno to EBADF if the file pointed to by file descriptor is not valid. fstat04 Verify that, fstat(2) succeeds to get the status of a file pointed by file descriptor and fills the stat structure elements. fstatfs01 Basic test for fstatfs(2) fstatfs02 Testcase to check fstatfs() sets errno correctly. lstat01 Verify that, lstat(2) succeeds to get the status of a file pointed to by symlink and fills the stat structure elements. lstat02 Basic test for lstat(2) lstat03 Verify that, 1) lstat(2) returns -1 and sets errno to EACCES if search permission is denied on a component of the path prefix. 2) lstat(2) returns -1 and sets errno to ENOENT if the specified file does not exists or empty string. 3) lstat(2) returns -1 and sets errno to EFAULT if pathname points outside user's accessible address space. 4) lstat(2) returns -1 and sets errno to ENAMETOOLONG if the pathname component is too long. 5) lstat(2) returns -1 and sets errno to ENOTDIR if the directory component in pathname is not a directory. stat01 Verify that, stat(2) succeeds to get the status of a file and fills the stat structure elements. stat02 Verify that, stat(2) succeeds to get the status of a file and fills the stat structure elements though process doesn't have read access to the file. stat03 Verify that, 1) stat(2) returns -1 and sets errno to EACCES if search permission is denied on a component of the path prefix. 2) stat(2) returns -1 and sets errno to ENOENT if the specified file does not exists or empty string. 3) stat(2) returns -1 and sets errno to EFAULT if pathname points outside user's accessible address space. 4) stat(2) returns -1 and sets errno to ENAMETOOLONG if the pathname component is too long. 5) stat(2) returns -1 and sets errno to ENOTDIR if the directory component in pathname is not a directory. stat05 Basic test for the stat05(2) system call. statfs01 Basic test for the statfs(2) system call. statfs02 Testcase to check that statfs(2) sets errno correctly. read01 Basic test for the read(2) system call read02 test 1: Does read return -1 if file descriptor is not valid, check for EBADF test 2: Check if read sets EISDIR, if the fd refers to a directory test 3: Check if read sets EFAULT, if buf is -1. read03 Testcase to check that read() sets errno to EAGAIN read04 Testcase to check if read returns the number of bytes read correctly. umask01 Basic test for the umask(2) system call. umask02 Check that umask changes the mask, and that the previous value of the mask is returned correctly for each value. umask03 Check that umask changes the mask, and that the previous value of the mask is returned correctly for each value. getgroups01 Getgroups system call critical test getgroups02 Basic test for getgroups(2) getgroups03 Verify that, getgroups() system call gets the supplementary group IDs of the calling process. getgroups04 Verify that, getgroups() fails with -1 and sets errno to EINVAL if the size argument value is -ve. gethostname01 Basic test for gethostname(2) getpgid01 Testcase to check the basic functionality of getpgid(). getpgid02 Testcase to check the basic functionality of getpgid(). getpgrp01 Basic test for getpgrp(2) getpriority01 Verify that getpriority() succeeds get the scheduling priority of the current process, process group or user. getpriority02 Verify that, 1) getpriority() sets errno to ESRCH if no process was located was located for 'which' and 'who' arguments. 2) getpriority() sets errno to EINVAL if 'which' argument was not one of PRIO_PROCESS, PRIO_PGRP, or PRIO_USER. getresgid01 Verify that getresgid() will be successful to get the real, effective and saved user id of the calling process. getresgid02 Verify that getresgid() will be successful to get the real, effective and saved user ids after calling process invokes setregid() to change the effective/saved gids to that of specified user. getresgid03 Verify that getresgid() will be successful to get the real, effective and saved user ids after calling process invokes setresgid() to change the effective gid to that of specified user. getresuid01 Verify that getresuid() will be successful to get the real, effective and saved user id of the calling process. getresuid02 Verify that getresuid() will be successful to get the real, effective and saved user ids after calling process invokes setreuid() to change the effective/saved uids to that of specified user. getresuid03 Verify that getresuid() will be successful to get the real, effective and saved user ids after calling process invokes setresuid() to change the effective uid to that of specified user. getsid01 call getsid() and make sure it succeeds getsid02 call getsid() with an invalid PID to produce a failure setfsgid01 Testcase to check the basic functionality of setfsgid(2) system call. setfsuid01 Testcase to test the basic functionality of the setfsuid(2) system call. setgid01 Basic test for the setgid(2) system call. setgid02 Testcase to ensure that the setgid() system call sets errno to EPERM setgroups01 Basic test for the setgroups(2) system call. setgroups02 Verify that, 1. setgroups() fails with -1 and sets errno to EINVAL if the size argument value is > NGROUPS 2. setgroups() fails with -1 and sets errno to EPERM if the calling process is not super-user. setgroups03 Verify that, only root process can invoke setgroups() system call to set the supplementary group IDs of the process. setpgid01 Basic test for setpgid(2) system call. setpgid02 Testcase to check that setpgid() sets errno correctly. setpgid03 Test to check the error and trivial conditions in setpgid system call setpriority01 set the priority for the test process lower. setpriority02 test for an expected failure by trying to raise the priority for the test process while not having permissions to do so. setpriority03 test for an expected failure by using an invalid PRIO value setpriority04 setpriority04 test for an expected failure by using an invalid process id setpriority05 test for an expected failure by trying to change a process with an ID that is different from the test process setregid01 Basic test for the setregid(2) system call. setregid02 Test that setregid() fails and sets the proper errno values when a non-root user attempts to change the real or effective group id to a value other than the current gid or the current effective gid. setregid03 Test setregid() when executed by a non-root user. setregid04 Test setregid() when executed by root. setresuid01 Test setresuid() when executed by root. setresuid02 Test that a non-root user can change the real, effective and saved uid values through the setresuid system call. setresuid03 Test that the setresuid system call sets the proper errno values when a non-root user attempts to change the real, effective or saved uid to a value other than one of the current uid, the current effective uid of the current saved uid. Also verify that setresuid fails if an invalid uid value is given. setreuid01 Basic test for the setreuid(2) system call. setreuid02 Test setreuid() when executed by root. setreuid03 Test setreuid() when executed by an unprivileged user. setreuid04 Test that root can change the real and effective uid to an unprivileged user. setreuid05 Test the setreuid() feature, verifying the role of the saved-set-uid and setreuid's effect on it. setreuid06 Test that EINVAL is set when setreuid is given an invalid user id. setrlimit01 Testcase to check the basic functionality of the setrlimit system call. setrlimit02 Testcase to test the different errnos set by setrlimit(2) system call. setrlimit03 Test for EPERM when the super-user tries to increase RLIMIT_NOFILE beyond the system limit. setsid01 Test to check the error and trivial conditions in setsid system call setuid01 Basic test for the setuid(2) system call. setuid02 Basic test for the setuid(2) system call as root. setuid03 Test to check the error and trivial conditions in setuid fs_perms Regression test for Linux filesystem permissions. uname01 Basic test for the uname(2) system call. uname02 Call uname() with an invalid address to produce a failure uname03 Call uname() and make sure it succeeds sysctl01 Testcase for testing the basic functionality of sysctl(2) system call. This testcase attempts to read the kernel parameters using sysctl({CTL_KERN, KERN_ }, ...) and compares it with the known values. sysctl03 Testcase to check that sysctl(2) sets errno to EPERM correctly. sysctl04 Testcase to check that sysctl(2) sets errno to ENOTDIR sysctl05 Testcase to check that sysctl(2) sets errno to EFAULT time01 Basic test for the time(2) system call. time02 Verify that time(2) returns the value of time in seconds since the Epoch and stores this value in the memory pointed to by the parameter. times01 Basic test for the times(2) system call. times02 Testcase to test that times() sets errno correctly times03 Testcase to check the basic functionality of the times() system call. utime01 Verify that the system call utime() successfully sets the modification and access times of a file to the current time, if the times argument is null, and the user ID of the process is "root". utime02 Verify that the system call utime() successfully sets the modification and access times of a file to the current time, under the following constraints, - The times argument is null. - The user ID of the process is not "root". - The file is owned by the user ID of the process. utime03 Verify that the system call utime() successfully sets the modification and access times of a file to the current time, under the following constraints, - The times argument is null. - The user ID of the process is not "root". - The file is not owned by the user ID of the process. - The user ID of the process has write access to the file. utime04 Verify that the system call utime() successfully sets the modification and access times of a file to the time specified by times argument, if the times argument is not null, and the user ID of the process is "root". utime05 Verify that the system call utime() successfully sets the modification and access times of a file to the value specified by the times argument under the following constraints, - The times argument is not null, - The user ID of the process is not "root". - The file is owned by the user ID of the process. utime06 1. Verify that the system call utime() fails to set the modification and access times of a file to the current time, under the following constraints, - The times argument is null. - The user ID of the process is not "root". - The file is not owned by the user ID of the process. - The user ID of the process does not have write access to the file. 2. Verify that the system call utime() fails to set the modification and access times of a file if the specified file doesn't exist. settimeofday01 Testcase to check the basic functionality of settimeofday(). settimeofday02 Testcase to check that settimeofday() sets errnos correctly. stime01 Verify that the system call stime() successfully sets the system's idea of data and time if invoked by "root" user. stime02 Verify that the system call stime() fails to set the system's idea of data and time if invoked by "non-root" user. gettimeofday01 Testcase to check that gettimeofday(2) sets errno to EFAULT. alarm01 Basic test for alarm(2). alarm02 Boundary Value Test for alarm(2). alarm03 Alarm(2) cleared by a fork. alarm04 Check that when an alarm request is made, the signal SIGALRM is received even after the process has done an exec(). alarm05 Check the functionality of the Alarm system call when the time input parameter is non zero. alarm06 Check the functionality of the Alarm system call when the time input parameter is zero. alarm07 Check the functionality of the alarm() when the time input parameter is non-zero and the process does a fork. getegid01 Basic test for getegid(2) geteuid01 Basic test for geteuid(2) getgid01 Basic test for getgid(2) getgid02 Testcase to check the basic functionality of getgid(). getgid03 Testcase to check the basic functionality of getegid(). getpid01 Basic test for getpid(2) getpid02 Verify that getpid() system call gets the process ID of the of the calling process. getppid01 Testcase to check the basic functionality of the getppid() syscall. getuid01 Basic test for getuid(2) getuid02 Testcase to check the basic functionality of the geteuid() system call. getuid03 Testcase to check the basic functionality of the getuid() system call. nanosleep01 Verify that nanosleep() will be successful to suspend the execution of a process for a specified time. nanosleep02 Verify that nanosleep() will be successful to suspend the execution of a process, returns after the receipt of a signal and writes the remaining sleep time into the structure. nanosleep03 Verify that nanosleep() will fail to suspend the execution of a process for a specified time if interrupted by a non-blocked signal. nanosleep04 Verify that nanosleep() will fail to suspend the execution of a process if the specified pause time is invalid.