summaryrefslogtreecommitdiffstats
path: root/third_party/lcov/descriptions.tests
diff options
context:
space:
mode:
authorjrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-03 03:26:46 +0000
committerjrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-03 03:26:46 +0000
commit1e1f6af9207b71845aa2f360e5d231825f317a09 (patch)
treec369805fe40cdaa9ee646cf98e44854be1538414 /third_party/lcov/descriptions.tests
parent4acc19a6f31abef9608546d10f107240603ca57e (diff)
downloadchromium_src-1e1f6af9207b71845aa2f360e5d231825f317a09.zip
chromium_src-1e1f6af9207b71845aa2f360e5d231825f317a09.tar.gz
chromium_src-1e1f6af9207b71845aa2f360e5d231825f317a09.tar.bz2
lcov-1.7 into third_party for code coverage on POSIX systems.
Non-lcov-1.7 files are lcov/LICENCE lcov/README.chromium lcov/bin/mcov Review URL: http://codereview.chromium.org/57083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13066 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/lcov/descriptions.tests')
-rw-r--r--third_party/lcov/descriptions.tests2990
1 files changed, 2990 insertions, 0 deletions
diff --git a/third_party/lcov/descriptions.tests b/third_party/lcov/descriptions.tests
new file mode 100644
index 0000000..b91fe39
--- /dev/null
+++ b/third_party/lcov/descriptions.tests
@@ -0,0 +1,2990 @@
+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 <chunksize> 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.
+