1 personality01 2 Check that we can set the personality for a process. 3 personality02 4 Check that we get EINVAL for a bad personality. 5 exit01 6 Check that exit returns the correct values to the waiting parent 7 exit02 8 Check that exit flushes output file buffers and closes files upon 9 exiting 10 wait02 11 Basic test for wait(2) system call. 12 wait401 13 check that a call to wait4() correctly waits for a child 14 process to exit 15 wait402 16 check for ECHILD errno when using an illegal pid value 17 18 waitpid01 19 Check that when a child kills itself by generating an alarm 20 exception, the waiting parent is correctly notified. 21 waitpid02 22 Check that when a child kills itself by generating an integer zero 23 divide exception, the waiting parent is correctly notified. 24 waitpid03 25 Check that parent waits until specific child has returned. 26 waitpid04 27 test to check the error conditions in waitpid sys call 28 waitpid05 29 Check that when a child kills itself with a kill statement after 30 determining its process id by using getpid, the parent receives a 31 correct report of the cause of its death. This also indirectly 32 checks that getpid returns the correct process id. 33 waitpid06 34 Tests to see if pid's returned from fork and waitpid are same. 35 waitpid07 36 Tests to see if pid's returned from fork and waitpid are same. 37 waitpid08 38 Tests to see if pid's returned from fork and waitpid are same 39 waitpid09 40 Check ability of parent to wait until child returns, and that the 41 child's process id is returned through the waitpid. Check that 42 waitpid returns immediately if no child is present. 43 waitpid10 44 Tests to see if pid's returned from fork and waitpid are same 45 waitpid11 46 Tests to see if pid's returned from fork and waitpid are same 47 waitpid12 48 Tests to see if pid's returned from fork and waitpid are same 49 waitpid13 50 Tests to see if pid's returned from fork and waitpid are same 51 fcntl01 52 Test F_DUPFD, F_SETFL cmds of fcntl 53 fcntl02 54 Basic test for fcntl(2) using F_DUPFD argument. 55 fcntl03 56 Basic test for fcntl(2) using F_GETFD argument. 57 fcntl04 58 Basic test for fcntl(2) using F_GETFL argument. 59 fcntl05 60 Basic test for fcntl(2) using F_GETLK argument. 61 fcntl06 62 Error checking conditions for remote locking of regions of a file. 63 fcntl07 64 Close-On-Exec functional test. 65 fcntl07B 66 Close-On-Exec of named pipe functional test. 67 fcntl08 68 Basic test for fcntl(2) using F_SETFL argument. 69 fcntl09 70 Basic test for fcntl(2) using F_SETLK argument. 71 fcntl10 72 Basic test for fcntl(2) using F_SETLKW argument. 73 fcntl11 74 Testcase to check locking of regions of a file 75 76 fcntl12 77 78 Testcase to test that fcntl() sets EMFILE for F_DUPFD command. 79 80 fcntl13 81 82 Testcase to test that fcntl() sets errno correctly. 83 84 fcntl14 85 86 File locking test cases for fcntl. In Linux, S_ENFMT is not implemented 87 in the kernel. However all standard Unix kernels define S_ENFMT as 88 S_ISGID. So this test defines S_ENFMT as S_ISGID. 89 90 fcntl15 91 92 Check that file locks are removed when file closed 93 94 fcntl16 95 96 Additional file locking test cases for checking proper notification 97 of processes on lock change 98 99 fcntl17 100 101 Check deadlock detection for file locking 102 103 fcntl18 104 105 Test to check the error conditions in fcntl system call 106 107 fcntl19 108 109 Testcase to check locking of regions of a file 110 111 fcntl20 112 113 Check locking of regions of a file 114 115 fcntl21 116 117 Check locking of regions of a file 118 119 dup01 120 121 Basic test for dup(2). 122 123 dup02 124 125 Negative test for dup(2) with bad fd. 126 127 dup03 128 129 Negative test for dup(2) (too many fds). 130 131 dup04 132 133 Basic test for dup(2) of a system pipe descriptor. 134 135 dup05 136 137 Basic test for dup(2) of a named pipe descriptor. 138 139 dup201 140 141 Negative tests for dup2() with bad fd (EBADF), and for "too many 142 open files" (EMFILE) 143 144 dup202 145 146 Is the access mode the same for both file descriptors? 147 0: read only ? "0444" 148 1: write only ? "0222" 149 2: read/write ? "0666" 150 151 dup203 152 153 Testcase to check the basic functionality of dup2(). 154 155 dup204 156 157 Testcase to check the basic functionality of dup2(2). 158 159 160 msync01 161 162 Verify that, msync() succeeds, when the region to synchronize, is part 163 of, or all of a mapped region. 164 165 msync02 166 167 Verify that msync() succeeds when the region to synchronize is mapped 168 shared and the flags argument is MS_INVALIDATE. 169 170 msync03 171 172 Verify that, msync() fails, when the region to synchronize, is outside 173 the address space of the process. 174 175 msync04 176 177 Verify that, msync() fails, when the region to synchronize, is mapped 178 but the flags argument is invalid. 179 180 msync05 181 182 Verify that, msync() fails, when the region to synchronize, was not 183 mapped. 184 185 186 sendfile02 187 188 Testcase to test the basic functionality of the sendfile(2) system call. 189 190 sendfile03 191 192 Testcase to test that sendfile(2) system call returns appropriate 193 errnos on error. 194 195 fork01 196 Basic test for fork(2). 197 fork02 198 Test correct operation of fork: 199 pid == 0 in child; 200 pid > 0 in parent from wait; 201 fork03 202 Check that child can use a large text space and do a large 203 number of operations. 204 fork04 205 Child inheritance of Environment Variables after fork(). 206 fork05 207 Make sure LDT is propagated correctly 208 fork06 209 Test that a process can fork children a large number of 210 times in succession 211 fork07 212 Check that all children inherit parent's file descriptor 213 fork08 214 Check if the parent's file descriptors are affected by 215 actions in the child; they should not be. 216 fork09 217 Check that child has access to a full set of files. 218 fork10 219 Check inheritance of file descriptor by children, they 220 should all be referring to the same file. 221 fork11 222 Test that parent gets a pid from each child when doing wait 223 vfork01 224 Fork a process using vfork() and verify that, the attribute values like 225 euid, ruid, suid, egid, rgid, sgid, umask, inode and device number of 226 root and current working directories are same as that of the parent 227 process. 228 vfork02 229 Fork a process using vfork() and verify that, the pending signals in 230 the parent are not pending in the child process. 231 ioctl01 232 233 Testcase to check the errnos set by the ioctl(2) system call. 234 235 ioctl02 236 237 Testcase to test the TCGETA, and TCSETA ioctl implementations for 238 the tty driver 239 240 sockioctl01 241 242 Verify that ioctl() on sockets returns the proper errno for various 243 failure cases 244 245 getitimer01 246 check that a correct call to getitimer() succeeds 247 248 249 getitimer02 250 check that a getitimer() call fails as expected 251 with an incorrect second argument. 252 253 getitimer03 254 check that a getitimer() call fails as expected 255 with an incorrect first argument. 256 257 setitimer01 258 check that a reasonable setitimer() call succeeds. 259 260 261 setitimer02 262 check that a setitimer() call fails as expected 263 with incorrect values. 264 265 setitimer03 266 check that a setitimer() call fails as expected 267 with incorrect values. 268 269 float_trigo 270 increase CPUs workload - verify that results of some math functions are stable 271 trigonometric (acos, asin, atan, atan2, cos, sin, tan), 272 hyperbolic (cosh, sinh, tanh), 273 274 float_exp_log 275 increase CPUs workload - verify that results of some math functions are stable 276 exponential and logarithmic functions (exp, log, log10), 277 Functions that manipulate floating-point numbers (modf, ldexp, frexp), 278 Euclidean distance function (hypot), 279 280 float_bessel 281 increase CPUs workload - verify that results of some math functions are stable 282 Bessel (j0, j1, y0, y1), 283 Computes the natural logarithm of the gamma function (lgamma), 284 285 fload_power 286 increase CPUs workload - verify that results of some math functions are stable 287 Computes sqrt, power, fmod 288 289 float_iperb 290 increase CPUs workload - verify that results of some math functions are stable 291 pth_str01 292 293 Creates a tree of threads 294 295 pth_str02 296 297 Creates n threads 298 299 pth_str03 300 301 Creates a tree of threads does calculations, and 302 returns result to parent 303 304 305 asyncio02 306 307 Write/close flushes data to the file. 308 309 310 fpathconf 311 312 Basic test for fpathconf(2) 313 314 gethostid01 315 316 Basic test for gethostid(2) 317 318 319 pathconf01 320 321 Basic test for pathconf(2) 322 323 setpgrp01 324 325 Basic test for the setpgrp(2) system call. 326 327 setpgrp02 328 329 Testcase to check the basic functionality of the setpgrp(2) syscall. 330 331 332 ulimit01 333 334 Basic test for the ulimit(2) system call. 335 336 mmstress 337 338 Performs General Stress with Race conditions 339 340 mmap1 341 342 Test the LINUX memory manager. The program is aimed at 343 stressing the memory manager by simultaneous map/unmap/read 344 by light weight processes, the test is scheduled to run for 345 a minimum of 24 hours. 346 347 mmap2 348 349 Test the LINUX memory manager. The program is aimed at 350 stressing the memory manager by repeated map/write/unmap of a 351 of a large gb size file. 352 353 mmap3 354 355 Test the LINUX memory manager. The program is aimed at 356 stressing the memory manager by repeated map/write/unmap 357 of file/memory of random size (maximum 1GB) this is done by 358 multiple processes. 359 360 mmap001 361 362 Tests mmapping a big file and writing it once 363 364 mmap01 365 366 Verify that, mmap() succeeds when used to map a file where size of the 367 file is not a multiple of the page size, the memory area beyond the end 368 of the file to the end of the page is accessible. Also, verify that 369 this area is all zeroed and the modifications done to this area are 370 not written to the file. 371 372 mmap02 373 374 Call mmap() with prot parameter set to PROT_READ and with the file 375 descriptor being open for read, to map a file creating mapped memory 376 with read access. The minimum file permissions should be 0444. 377 378 mmap03 379 380 Call mmap() to map a file creating a mapped region with execute access 381 under the following conditions - 382 - The prot parameter is set to PROT_EXE 383 - The file descriptor is open for read 384 - The file being mapped has execute permission bit set. 385 - The minimum file permissions should be 0555. 386 387 The call should succeed to map the file creating mapped memory with the 388 required attributes. 389 390 mmap04 391 392 Call mmap() to map a file creating a mapped region with read/exec access 393 under the following conditions - 394 - The prot parameter is set to PROT_READ|PROT_EXEC 395 - The file descriptor is open for read 396 - The file being mapped has read and execute permission bit set. 397 - The minimum file permissions should be 0555. 398 399 The call should succeed to map the file creating mapped memory with the 400 required attributes. 401 402 403 mmap05 404 405 Call mmap() to map a file creating mapped memory with no access under 406 the following conditions - 407 - The prot parameter is set to PROT_NONE 408 - The file descriptor is open for read(any mode other than write) 409 - The minimum file permissions should be 0444. 410 411 The call should succeed to map the file creating mapped memory with the 412 required attributes. 413 414 mmap06 415 416 Call mmap() to map a file creating a mapped region with read access 417 under the following conditions - 418 - The prot parameter is set to PROT_READ 419 - The file descriptor is open for writing. 420 421 The call should fail to map the file. 422 423 424 mmap07 425 426 Call mmap() to map a file creating a mapped region with read access 427 under the following conditions - 428 - The prot parameter is set to PROT_WRITE 429 - The file descriptor is open for writing. 430 - The flags parameter has MAP_PRIVATE set. 431 432 The call should fail to map the file. 433 434 mmap08 435 436 Verify that mmap() fails to map a file creating a mapped region 437 when the file specified by file descriptor is not valid. 438 439 440 mremap01 441 442 Verify that, mremap() succeeds when used to expand the existing 443 virtual memory mapped region to the requested size where the 444 virtual memory area was previously mapped to a file using mmap(). 445 446 mremap02 447 448 Verify that, 449 mremap() fails when used to expand the existing virtual memory mapped 450 region to the requested size, if the virtual memory area previously 451 mapped was not page aligned or invalid argument specified. 452 453 mremap03 454 455 Verify that, 456 mremap() fails when used to expand the existing virtual memory mapped 457 region to the requested size, if there already exists mappings that 458 cover the whole address space requested or the old address specified was 459 not mapped. 460 461 mremap04 462 463 Verify that, 464 mremap() fails when used to expand the existing virtual memory mapped 465 region to the requested size, if the memory area cannot be expanded at 466 the current virtual address and MREMAP_MAYMOVE flag not set. 467 468 munmap01 469 470 Verify that, munmap call will succeed to unmap a mapped file or 471 anonymous shared memory region from the calling process's address space 472 and after successful completion of munmap, the unmapped region is no 473 longer accessible. 474 475 munmap02 476 477 Verify that, munmap call will succeed to unmap a mapped file or 478 anonymous shared memory region from the calling process's address space 479 if the region specified by the address and the length is part or all of 480 the mapped region. 481 482 munmap03 483 484 Verify that, munmap call will fail to unmap a mapped file or anonymous 485 shared memory region from the calling process's address space if the 486 address and the length of the region to be unmapped points outside the 487 calling process's address space 488 489 brk01 490 Test the basic functionality of brk. 491 492 sbrk01 493 Basic test for the sbrk(2) system call. 494 495 496 mprotect01 497 498 Testcase to check the error conditions for mprotect(2) 499 500 mprotect02 501 502 Testcase to check the mprotect(2) system call. 503 504 mprotect03 505 506 Testcase to check the mprotect(2) system call. 507 508 msgctl01 509 create a message queue, then issue the IPC_STAT command 510 and RMID commands to test the functionality 511 512 513 msgctl02 514 create a message queue, then issue the IPC_SET command 515 to lower the msg_qbytes value. 516 517 518 msgctl03 519 create a message queue, then issue the IPC_RMID command 520 521 522 523 msgctl04 524 test for EACCES, EFAULT and EINVAL errors using 525 a variety of incorrect calls. 526 527 528 msgctl05 529 test for EPERM error 530 531 532 533 msgget01 534 create a message queue, write a message to it and 535 read it back. 536 537 538 msgget02 539 test for EEXIST and ENOENT errors 540 541 542 msgget03 543 test for an ENOSPC error by using up all available 544 message queues. 545 546 msgget04 547 test for an EACCES error by creating a message queue 548 with no read or write permission and then attempting 549 to access it with various permissions. 550 551 msgrcv01 552 test that msgrcv() receives the expected message 553 554 msgrcv02 555 test for EACCES and EFAULT errors 556 557 msgrcv03 558 test for EINVAL error 559 560 msgrcv04 561 test for E2BIG and ENOMSG errors 562 563 msgrcv05 564 test for EINTR error 565 566 msgrcv06 567 test for EIDRM error 568 569 msgsnd01 570 test that msgsnd() enqueues a message correctly 571 572 msgsnd02 573 test for EACCES and EFAULT errors 574 575 msgsnd03 576 test for EINVAL error 577 578 msgsnd04 579 test for EAGAIN error 580 581 msgsnd05 582 test for EINTR error 583 584 585 msgsnd06 586 test for EIDRM error 587 588 link02 589 590 Basic test for link(2) 591 592 link03 593 594 Multi links tests 595 596 link04 597 598 Negative test cases for link(2) 599 600 link05 601 602 Multi links (EMLINK) negative test 603 604 readlink01 605 606 Verify that, readlink will succeed to read the contents of the symbolic 607 link created the process. 608 609 readlink02 610 611 Basic test for the readlink(2) system call 612 613 readlink03 614 615 Verify that, 616 1) readlink(2) returns -1 and sets errno to EACCES if search/write 617 permission is denied in the directory where the symbolic link 618 resides. 619 2) readlink(2) returns -1 and sets errno to EINVAL if the buffer size 620 is not positive. 621 3) readlink(2) returns -1 and sets errno to EINVAL if the specified 622 file is not a symbolic link file. 623 4) readlink(2) returns -1 and sets errno to ENAMETOOLONG if the 624 pathname component of symbolic link is too long (ie, > PATH_MAX). 625 5) readlink(2) returns -1 and sets errno to ENOENT if the component of 626 symbolic link points to an empty string. 627 628 readlink04 629 630 Verify that, readlink call will succeed to read the contents of the 631 symbolic link if invoked by non-root user who is not the owner of the 632 symbolic link. 633 634 635 symlink01 636 637 Test of various file function calls, such as rename or open, on a symbolic 638 link file. 639 640 symlink02 641 642 Basic test for the symlink(2) system call. 643 644 symlink03 645 646 Verify that, 647 1) symlink(2) returns -1 and sets errno to EACCES if search/write 648 permission is denied in the directory where the symbolic link is 649 being created. 650 2) symlink(2) returns -1 and sets errno to EEXIST if the specified 651 symbolic link already exists. 652 3) symlink(2) returns -1 and sets errno to EFAULT if the specified 653 file or symbolic link points to invalid address. 654 4) symlink(2) returns -1 and sets errno to ENAMETOOLONG if the 655 pathname component of symbolic link is too long (ie, > PATH_MAX). 656 5) symlink(2) returns -1 and sets errno to ENOTDIR if the directory 657 component in pathname of symbolic link is not a directory. 658 6) symlink(2) returns -1 and sets errno to ENOENT if the component of 659 symbolic link points to an empty string. 660 661 symlink04 662 663 Verify that, symlink will succeed to create a symbolic link of an existing 664 object name path. 665 666 667 symlink05 668 669 Verify that, symlink will succeed to create a symbolic link of an 670 non-existing object name path. 671 672 673 unlink05 674 675 Basic test for the unlink(2) system call. 676 677 unlink06 678 679 Test for the unlink(2) system call of a FIFO. 680 681 unlink07 682 683 Tests for error handling for the unlink(2) system call. 684 685 unlink08 686 687 More tests for error handling for the unlink(2) system call. 688 689 690 linktest 691 692 Regression test for max links per file 693 694 rename01 695 696 This test will verify the rename(2) syscall basic functionality. 697 Verify rename() works when the "new" file or directory does not exist. 698 699 rename02 700 701 Basic test for the rename(2) system call 702 703 rename03 704 705 This test will verify that rename(2) functions correctly 706 when the "new" file or directory exists 707 708 rename04 709 710 This test will verify that rename(2) failed when newpath is 711 a non-empty directory and return EEXIST or ENOTEMPTY 712 713 rename05 714 715 This test will verify that rename(2) fails with EISDIR 716 717 rename06 718 719 This test will verify that rename(2) failed in EINVAL 720 721 rename07 722 723 This test will verify that rename(2) failed in ENOTDIR 724 725 rename08 726 727 This test will verify that rename(2) syscall failed in EFAULT 728 729 rename09 730 731 check rename() fails with EACCES 732 733 rename10 734 735 This test will verify that rename(2) syscall fails with ENAMETOOLONG 736 and ENOENT 737 738 rename11 739 740 This test will verify that rename(2) failed in EBUSY 741 742 rename12 743 744 check rename() fails with EPERM 745 746 rename13 747 748 Verify rename() return successfully and performs no other action 749 when "old" file and "new" file link to the same file. 750 751 rmdir01 752 753 This test will verify that rmdir(2) syscall basic functionality. 754 verify rmdir(2) returns a value of 0 and the directory being 755 removed 756 757 rmdir02 758 759 This test will verify that rmdir(2) fail in 760 1. ENOTEMPTY 761 2. EBUSY 762 3. ENAMETOOLONG 763 4. ENOENT 764 5. ENOTDIR 765 6. EFAULT 766 7. EFAULT 767 768 rmdir03 769 770 check rmdir() fails with EPERM or EACCES 771 772 rmdir04 773 774 Basic test for the rmdir(2) system call 775 776 rmdir05 777 778 Verify that rmdir(2) returns a value of -1 and sets errno to indicate the error. 779 780 781 782 mkdir01 783 784 Basic errno test for mkdir(2) 785 786 mkdir02 787 788 This test will verify that new directory created 789 by mkdir(2) inherits the group ID from the parent 790 directory and S_ISGID bit, if the S_ISGID bit is set 791 in the parent directory. 792 793 mkdir03 794 795 Check mkdir() with various error conditions that should produce 796 EFAULT, ENAMETOOLONG, EEXIST, ENOENT and ENOTDIR 797 798 mkdir04 799 800 Attempt to create a directory in a directory having no permissions. 801 802 mkdir05 803 804 This test will verify the mkdir(2) syscall basic functionality 805 806 mkdir08 807 808 Basic test for mkdir(2) 809 810 811 mknod01 812 813 Basic test for mknod(2) 814 815 mknod02 816 817 Verify that mknod(2) succeeds when used to create a filesystem 818 node with set group-ID bit set on a directory without set group-ID bit set. 819 The node created should have set group-ID bit set and its gid should be 820 equal to that of its parent directory. 821 822 mknod03 823 824 Verify that mknod(2) succeeds when used to create a filesystem 825 node with set group-ID bit set on a directory with set group-ID bit set. 826 The node created should have set group-ID bit set and its gid should be 827 equal to the effective gid of the process. 828 829 mknod04 830 831 Verify that mknod(2) succeeds when used to create a filesystem 832 node on a directory with set group-ID bit set. 833 The node created should not have group-ID bit set and its gid should be 834 equal to the effective gid of the process. 835 836 mknod05 837 838 Verify that mknod(2) succeeds when used by root to create a filesystem 839 node with set group-ID bit set on a directory with set group-ID bit set. 840 The node created should have set group-ID bit set and its gid should be 841 equal to that of its parent directory. 842 843 844 mknod06 845 846 Verify that, 847 1) mknod(2) returns -1 and sets errno to EEXIST if specified path 848 already exists. 849 2) mknod(2) returns -1 and sets errno to EFAULT if pathname points 850 outside user's accessible address space. 851 3) mknod(2) returns -1 and sets errno to ENOENT if the directory 852 component in pathname does not exist. 853 4) mknod(2) returns -1 and sets errno to ENAMETOOLONG if the pathname 854 component was too long. 855 5) mknod(2) returns -1 and sets errno to ENOTDIR if the directory 856 component in pathname is not a directory. 857 858 mknod07 859 860 Verify that, 861 1) mknod(2) returns -1 and sets errno to EPERM if the process id of 862 the caller is not super-user. 863 2) mknod(2) returns -1 and sets errno to EACCES if parent directory 864 does not allow write permission to the process. 865 866 mknod08 867 868 Verify that mknod(2) succeeds when used to create a filesystem 869 node on a directory without set group-ID bit set. The node created 870 should not have set group-ID bit set and its gid should be equal to that 871 of its parent directory. 872 873 874 875 876 access01 877 878 Basic test for access(2) using F_OK, R_OK, W_OK, and X_OK arguments. 879 880 access02 881 882 Verify that access() succeeds to check the read/write/execute permissions 883 on a file if the mode argument passed was R_OK/W_OK/X_OK. 884 885 Also verify that, access() succeeds to test the accessibility of the file 886 referred to by symbolic link if the pathname points to a symbolic link. 887 888 access03 889 890 EFAULT error testing for access(2). 891 892 access04 893 894 Verify that, 895 1. access() fails with -1 return value and sets errno to EACCES 896 if the permission bits of the file mode do not permit the 897 requested (Read/Write/Execute) access. 898 2. access() fails with -1 return value and sets errno to EINVAL 899 if the specified access mode argument is invalid. 900 3. access() fails with -1 return value and sets errno to EFAULT 901 if the pathname points outside allocate address space for the 902 process. 903 4. access() fails with -1 return value and sets errno to ENOENT 904 if the specified file doesn't exist (or pathname is NULL). 905 5. access() fails with -1 return value and sets errno to ENAMETOOLONG 906 if the pathname size is > PATH_MAX characters. 907 908 access05 909 910 Verify that access() succeeds to check the existence of a file if 911 search access is permitted on the pathname of the specified file. 912 913 access06 914 915 EFAULT error testing for access(2). 916 917 chroot01 918 919 Testcase to check the whether chroot sets errno to EPERM. 920 921 chroot02 922 923 Test functionality of chroot(2) 924 925 chroot03 926 927 Testcase to test whether chroot(2) sets errno correctly. 928 929 pipeio 930 931 This tool can be used to beat on system or named pipes. 932 See the help() function below for user information. 933 934 pipe01 935 936 Testcase to check the basic functionality of the pipe(2) syscall: 937 Check that both ends of the pipe (both file descriptors) are 938 available to a process opening the pipe. 939 940 pipe05 941 942 Check what happens when pipe is passed a bad file descriptor. 943 944 pipe06 945 946 Check what happens when the system runs out of pipes. 947 948 pipe08 949 950 Check that a SIGPIPE signal is generated when a write is 951 attempted on an empty pipe. 952 953 pipe09 954 955 Check that two processes can use the same pipe at the same time. 956 957 pipe10 958 959 Check that parent can open a pipe and have a child read from it 960 961 pipe11 962 963 Check if many children can read what is written to a pipe by the 964 parent. 965 966 967 sem01 968 969 Creates a semaphore and two processes. The processes 970 each go through a loop where they semdown, delay for a 971 random amount of time, and semup, so they will almost 972 always be fighting for control of the semaphore. 973 974 sem02 975 The application creates several threads using pthread_create(). 976 One thread performs a semop() with the SEM_UNDO flag set. The 977 change in semaphore value performed by that semop should be 978 "undone" only when the last pthread exits. 979 980 981 semctl01 982 983 test the 10 possible semctl() commands 984 985 semctl02 986 987 test for EACCES error 988 989 semctl03 990 991 test for EINVAL and EFAULT errors 992 993 semctl04 994 995 test for EPERM error 996 997 998 semctl05 999 1000 test for ERANGE error 1001 1002 semget01 1003 1004 test that semget() correctly creates a semaphore set 1005 1006 semget02 1007 1008 test for EACCES and EEXIST errors 1009 1010 semget03 1011 1012 test for ENOENT error 1013 1014 semget05 1015 1016 test for ENOSPC error 1017 1018 semget06 1019 1020 test for EINVAL error 1021 1022 semop01 1023 1024 test that semop() basic functionality is correct 1025 1026 semop02 1027 1028 test for E2BIG, EACCES, EFAULT and EINVAL errors 1029 1030 semop03 1031 1032 test for EFBIG error 1033 1034 semop04 1035 1036 test for EAGAIN error 1037 1038 semop05 1039 1040 test for EINTR and EIDRM errors 1041 1042 1043 1044 msgctl01 1045 create a message queue, then issue the IPC_STAT command 1046 and RMID commands to test the functionality 1047 1048 1049 msgctl02 1050 create a message queue, then issue the IPC_SET command 1051 to lower the msg_qbytes value. 1052 1053 1054 msgctl03 1055 create a message queue, then issue the IPC_RMID command 1056 1057 1058 1059 msgctl04 1060 test for EACCES, EFAULT and EINVAL errors using 1061 a variety of incorrect calls. 1062 1063 1064 msgctl05 1065 test for EPERM error 1066 1067 1068 1069 msgget01 1070 create a message queue, write a message to it and 1071 read it back. 1072 1073 1074 msgget02 1075 test for EEXIST and ENOENT errors 1076 1077 1078 msgget03 1079 test for an ENOSPC error by using up all available 1080 message queues. 1081 1082 msgget04 1083 test for an EACCES error by creating a message queue 1084 with no read or write permission and then attempting 1085 to access it with various permissions. 1086 1087 msgrcv01 1088 test that msgrcv() receives the expected message 1089 1090 msgrcv02 1091 test for EACCES and EFAULT errors 1092 1093 msgrcv03 1094 test for EINVAL error 1095 1096 msgrcv04 1097 test for E2BIG and ENOMSG errors 1098 1099 msgrcv05 1100 test for EINTR error 1101 1102 msgrcv06 1103 test for EIDRM error 1104 1105 msgsnd01 1106 test that msgsnd() enqueues a message correctly 1107 1108 msgsnd02 1109 test for EACCES and EFAULT errors 1110 1111 msgsnd03 1112 test for EINVAL error 1113 1114 msgsnd04 1115 test for EAGAIN error 1116 1117 msgsnd05 1118 test for EINTR error 1119 1120 1121 msgsnd06 1122 test for EIDRM error 1123 1124 shmat01 1125 test that shmat() works correctly 1126 1127 shmat02 1128 check for EINVAL and EACCES errors 1129 1130 1131 shmat03 1132 test for EACCES error 1133 1134 1135 shmctl01 1136 test the IPC_STAT, IPC_SET and IPC_RMID commands as 1137 they are used with shmctl() 1138 1139 1140 shmctl02 1141 check for EACCES, EFAULT and EINVAL errors 1142 1143 1144 shmctl03 1145 check for EACCES, and EPERM errors 1146 1147 1148 shmdt01 1149 check that shared memory is detached correctly 1150 1151 1152 shmdt02 1153 check for EINVAL error 1154 1155 1156 shmget01 1157 test that shmget() correctly creates a shared memory segment 1158 1159 1160 shmget02 1161 check for ENOENT, EEXIST and EINVAL errors 1162 1163 1164 shmget03 1165 test for ENOSPC error 1166 1167 1168 shmget04 1169 test for EACCES error 1170 1171 1172 shmget05 1173 test for EACCES error 1174 1175 openfile 1176 1177 Creates files and opens simultaneously 1178 1179 open01 1180 1181 Open a file with oflag = O_CREAT set, does it set the sticky bit off? 1182 1183 Open "/tmp" with O_DIRECTORY, does it set the S_IFDIR bit on? 1184 1185 open02 1186 1187 Test if open without O_CREAT returns -1 if a file does not exist. 1188 1189 open03 1190 1191 Basic test for open(2) 1192 1193 open04 1194 1195 Testcase to check that open(2) sets EMFILE if a process opens files 1196 more than its descriptor size 1197 1198 open05 1199 1200 Testcase to check open(2) sets errno to EACCES correctly. 1201 1202 open06 1203 1204 Testcase to check open(2) sets errno to ENXIO correctly. 1205 1206 open07 1207 1208 Test the open(2) system call to ensure that it sets ELOOP correctly. 1209 1210 open08 1211 1212 Check for the following errors: 1213 1. EEXIST 1214 2. EISDIR 1215 3. ENOTDIR 1216 4. ENAMETOOLONG 1217 5. EFAULT 1218 6. ETXTBSY 1219 1220 1221 openfile 1222 1223 Creates files and opens simultaneously 1224 1225 1226 chdir01 1227 1228 Check proper operation of chdir(): tests whether the 1229 system call can it change the current, working directory, and find a 1230 file there? Will it fail on a non-directory entry ? 1231 1232 chdir02 1233 1234 Basic test for chdir(2). 1235 1236 chdir03 1237 1238 Testcase for testing that chdir(2) sets EACCES errno 1239 1240 chdir04 1241 1242 Testcase to test whether chdir(2) sets errno correctly. 1243 1244 1245 chmod01 1246 1247 Verify that, chmod(2) succeeds when used to change the mode permissions 1248 of a file. 1249 1250 chmod02 1251 1252 Basic test for chmod(2). 1253 1254 chmod03 1255 1256 Verify that, chmod(2) will succeed to change the mode of a file 1257 and set the sticky bit on it if invoked by non-root (uid != 0) 1258 process with the following constraints, 1259 - the process is the owner of the file. 1260 - the effective group ID or one of the supplementary group ID's of the 1261 process is equal to the group ID of the file. 1262 1263 chmod04 1264 1265 Verify that, chmod(2) will succeed to change the mode of a directory 1266 and set the sticky bit on it if invoked by non-root (uid != 0) process 1267 with the following constraints, 1268 - the process is the owner of the directory. 1269 - the effective group ID or one of the supplementary group ID's of the 1270 process is equal to the group ID of the directory. 1271 1272 chmod05 1273 1274 Verify that, chmod(2) will succeed to change the mode of a directory 1275 but fails to set the setgid bit on it if invoked by non-root (uid != 0) 1276 process with the following constraints, 1277 - the process is the owner of the directory. 1278 - the effective group ID or one of the supplementary group ID's of the 1279 process is not equal to the group ID of the directory. 1280 1281 chmod06 1282 1283 Verify that, 1284 1) chmod(2) returns -1 and sets errno to EPERM if the effective user id 1285 of process does not match the owner of the file and the process is 1286 not super user. 1287 2) chmod(2) returns -1 and sets errno to EACCES if search permission is 1288 denied on a component of the path prefix. 1289 3) chmod(2) returns -1 and sets errno to EFAULT if pathname points 1290 outside user's accessible address space. 1291 4) chmod(2) returns -1 and sets errno to ENAMETOOLONG if the pathname 1292 component is too long. 1293 5) chmod(2) returns -1 and sets errno to ENOTDIR if the directory 1294 component in pathname is not a directory. 1295 6) chmod(2) returns -1 and sets errno to ENOENT if the specified file 1296 does not exists. 1297 1298 chmod07 1299 1300 Verify that, chmod(2) will succeed to change the mode of a file/directory 1301 and sets the sticky bit on it if invoked by root (uid = 0) process with 1302 the following constraints, 1303 - the process is not the owner of the file/directory. 1304 - the effective group ID or one of the supplementary group ID's of the 1305 process is equal to the group ID of the file/directory. 1306 1307 1308 chown01 1309 1310 Basic test for chown(2). 1311 1312 chown02 1313 1314 Verify that, when chown(2) invoked by super-user to change the owner and 1315 group of a file specified by path to any numeric owner(uid)/group(gid) 1316 values, 1317 - clears setuid and setgid bits set on an executable file. 1318 - preserves setgid bit set on a non-group-executable file. 1319 1320 chown03 1321 1322 Verify that, chown(2) succeeds to change the group of a file specified 1323 by path when called by non-root user with the following constraints, 1324 - euid of the process is equal to the owner of the file. 1325 - the intended gid is either egid, or one of the supplementary gids 1326 of the process. 1327 Also, verify that chown() clears the setuid/setgid bits set on the file. 1328 1329 chown04 1330 1331 Verify that, 1332 1) chown(2) returns -1 and sets errno to EPERM if the effective user id 1333 of process does not match the owner of the file and the process is 1334 not super user. 1335 2) chown(2) returns -1 and sets errno to EACCES if search permission is 1336 denied on a component of the path prefix. 1337 3) chown(2) returns -1 and sets errno to EFAULT if pathname points 1338 outside user's accessible address space. 1339 4) chown(2) returns -1 and sets errno to ENAMETOOLONG if the pathname 1340 component is too long. 1341 5) chown(2) returns -1 and sets errno to ENOTDIR if the directory 1342 component in pathname is not a directory. 1343 6) chown(2) returns -1 and sets errno to ENOENT if the specified file 1344 does not exists. 1345 1346 chown05 1347 1348 Verify that, chown(2) succeeds to change the owner and group of a file 1349 specified by path to any numeric owner(uid)/group(gid) values when invoked 1350 by super-user. 1351 1352 1353 close01 1354 1355 Test that closing a regular file and a pipe works correctly 1356 1357 close02 1358 1359 Check that an invalid file descriptor returns EBADF 1360 1361 close08 1362 1363 Basic test for close(2). 1364 1365 1366 fchdir01 1367 1368 create a directory and cd into it. 1369 1370 fchdir02 1371 1372 try to cd into a bad directory (bad fd). 1373 1374 1375 fchmod01 1376 1377 Basic test for Fchmod(2). 1378 1379 fchmod02 1380 1381 Verify that, fchmod(2) will succeed to change the mode of a file/directory 1382 set the sticky bit on it if invoked by root (uid = 0) process with 1383 the following constraints, 1384 - the process is not the owner of the file/directory. 1385 - the effective group ID or one of the supplementary group ID's of the 1386 process is equal to the group ID of the file/directory. 1387 1388 fchmod03 1389 1390 Verify that, fchmod(2) will succeed to change the mode of a file 1391 and set the sticky bit on it if invoked by non-root (uid != 0) 1392 process with the following constraints, 1393 - the process is the owner of the file. 1394 - the effective group ID or one of the supplementary group ID's of the 1395 process is equal to the group ID of the file. 1396 1397 fchmod04 1398 1399 Verify that, fchmod(2) will succeed to change the mode of a directory 1400 and set the sticky bit on it if invoked by non-root (uid != 0) process 1401 with the following constraints, 1402 - the process is the owner of the directory. 1403 - the effective group ID or one of the supplementary group ID's of the 1404 process is equal to the group ID of the directory. 1405 1406 fchmod05 1407 1408 Verify that, fchmod(2) will succeed to change the mode of a directory 1409 but fails to set the setgid bit on it if invoked by non-root (uid != 0) 1410 process with the following constraints, 1411 - the process is the owner of the directory. 1412 - the effective group ID or one of the supplementary group ID's of the 1413 process is not equal to the group ID of the directory. 1414 1415 fchmod06 1416 1417 Verify that, 1418 1) fchmod(2) returns -1 and sets errno to EPERM if the effective user id 1419 of process does not match the owner of the file and the process is 1420 not super user. 1421 2) fchmod(2) returns -1 and sets errno to EBADF if the file descriptor 1422 of the specified file is not valid. 1423 1424 fchmod07 1425 1426 Verify that, fchmod(2) succeeds when used to change the mode permissions 1427 of a file specified by file descriptor. 1428 1429 1430 fchown01 1431 1432 Basic test for fchown(2). 1433 1434 fchown02 1435 1436 Verify that, when fchown(2) invoked by super-user to change the owner and 1437 group of a file specified by file descriptor to any numeric 1438 owner(uid)/group(gid) values, 1439 - clears setuid and setgid bits set on an executable file. 1440 - preserves setgid bit set on a non-group-executable file. 1441 1442 fchown03 1443 1444 Verify that, fchown(2) succeeds to change the group of a file specified 1445 by path when called by non-root user with the following constraints, 1446 - euid of the process is equal to the owner of the file. 1447 - the intended gid is either egid, or one of the supplementary gids 1448 of the process. 1449 Also, verify that fchown() clears the setuid/setgid bits set on the file. 1450 1451 fchown04 1452 1453 Verify that, 1454 1) fchown(2) returns -1 and sets errno to EPERM if the effective user id 1455 of process does not match the owner of the file and the process is 1456 not super user. 1457 2) fchown(2) returns -1 and sets errno to EBADF if the file descriptor 1458 of the specified file is not valid. 1459 1460 fchown05 1461 1462 Verify that, fchown(2) succeeds to change the owner and group of a file 1463 specified by file descriptor to any numeric owner(uid)/group(gid) values 1464 when invoked by super-user. 1465 1466 lchown01 1467 1468 Verify that, lchown(2) succeeds to change the owner and group of a file 1469 specified by path to any numeric owner(uid)/group(gid) values when invoked 1470 by super-user. 1471 1472 1473 lchown02 1474 1475 Verify that, 1476 1) lchown(2) returns -1 and sets errno to EPERM if the effective user id 1477 of process does not match the owner of the file and the process is 1478 not super user. 1479 2) lchown(2) returns -1 and sets errno to EACCES if search permission is 1480 denied on a component of the path prefix. 1481 3) lchown(2) returns -1 and sets errno to EFAULT if pathname points 1482 outside user's accessible address space. 1483 4) lchown(2) returns -1 and sets errno to ENAMETOOLONG if the pathname 1484 component is too long. 1485 5) lchown(2) returns -1 and sets errno to ENOTDIR if the directory 1486 component in pathname is not a directory. 1487 6) lchown(2) returns -1 and sets errno to ENOENT if the specified file 1488 does not exists. 1489 1490 1491 creat01 1492 1493 Testcase to check the basic functionality of the creat(2) system call. 1494 1495 creat03 1496 1497 Testcase to check whether the sticky bit cleared. 1498 1499 creat04 1500 1501 Testcase to check creat(2) fails with EACCES 1502 1503 creat05 1504 1505 Testcase to check that creat(2) system call returns EMFILE. 1506 1507 creat06 1508 1509 Testcase to check creat(2) sets the following errnos correctly: 1510 1. EISDIR 1511 2. ENAMETOOLONG 1512 3. ENOENT 1513 4. ENOTDIR 1514 5. EFAULT 1515 6. EACCES 1516 1517 creat07 1518 1519 Testcase to check creat(2) sets the following errnos correctly: 1520 1. ETXTBSY 1521 1522 creat09 1523 1524 Basic test for creat(2) using 0700 argument. 1525 1526 truncate01 1527 1528 Verify that, truncate(2) succeeds to truncate a file to a specified 1529 length. 1530 1531 1532 truncate02 1533 1534 Verify that, truncate(2) succeeds to truncate a file to a certain length, 1535 but the attempt to read past the truncated length will fail. 1536 1537 1538 truncate03 1539 1540 Verify that, 1541 1) truncate(2) returns -1 and sets errno to EACCES if search/write 1542 permission denied for the process on the component of the path prefix 1543 or named file. 1544 2) truncate(2) returns -1 and sets errno to ENOTDIR if the component of 1545 the path prefix is not a directory. 1546 3) truncate(2) returns -1 and sets errno to EFAULT if pathname points 1547 outside user's accessible address space. 1548 4) truncate(2) returns -1 and sets errno to ENAMETOOLONG if the component 1549 of a pathname exceeded 255 characters or entire pathname exceeds 1023 1550 characters. 1551 5) truncate(2) returns -1 and sets errno to ENOENT if the named file 1552 does not exist. 1553 1554 ftruncate01 1555 1556 Verify that, ftruncate(2) succeeds to truncate a file to a specified 1557 length if the file indicated by file descriptor opened for writing. 1558 1559 ftruncate02 1560 1561 Verify that, ftruncate(2) succeeds to truncate a file to a certain length, 1562 but the attempt to read past the truncated length will fail. 1563 1564 ftruncate03 1565 1566 Verify that, 1567 1) ftruncate(2) returns -1 and sets errno to EINVAL if the specified 1568 truncate length is less than 0. 1569 2) ftruncate(2) returns -1 and sets errno to EBADF if the file descriptor 1570 of the specified file is not valid. 1571 1572 vhangup01 1573 1574 Check the return value, and errno of vhangup(2) 1575 when a non-root user calls vhangup(). 1576 1577 vhangup02 1578 1579 To test the basic functionality of vhangup(2) 1580 growfiles 1581 1582 This program will grow a list of files. 1583 Each file will grow by grow_incr before the same 1584 file grows twice. Each file is open and closed before next file is opened. 1585 1586 pipe01 1587 1588 Testcase to check the basic functionality of the pipe(2) syscall: 1589 Check that both ends of the pipe (both file descriptors) are 1590 available to a process opening the pipe. 1591 1592 pipe05 1593 1594 Check what happens when pipe is passed a bad file descriptor. 1595 1596 pipe06 1597 1598 Check what happens when the system runs out of pipes. 1599 1600 pipe08 1601 1602 Check that a SIGPIPE signal is generated when a write is 1603 attempted on an empty pipe. 1604 1605 pipe09 1606 1607 Check that two processes can use the same pipe at the same time. 1608 1609 pipe10 1610 1611 Check that parent can open a pipe and have a child read from it 1612 1613 pipe11 1614 1615 Check if many children can read what is written to a pipe by the 1616 parent. 1617 1618 pipeio 1619 1620 This tool can be used to beat on system or named pipes. 1621 See the help() function below for user information. 1622 1623 /ipc_stress/message_queue_test_01.c 1624 /ipc_stress/pipe_test_01.c 1625 /ipc_stress/semaphore_test_01.c 1626 /ipc_stress/single_test_01.c 1627 1628 proc01 1629 Recursively reads all files within /proc filesystem. 1630 1631 lftest 1632 The purpose of this test is to verify the file size limitations of a filesystem. 1633 It writes one buffer at a time and lseeks from the beginning of the file to the 1634 end of the last write position. The intent is to test lseek64. 1635 1636 1637 llseek01 1638 1639 Verify that, llseek() call succeeds to set the file pointer position 1640 to an offset larger than file size. Also, verify that any attempt 1641 to write to this location fails. 1642 1643 llseek02 1644 1645 Verify that, 1646 1. llseek() returns -1 and sets errno to EINVAL, if the 'Whence' argument 1647 is not a proper value. 1648 2. llseek() returns -1 and sets errno to EBADF, if the file handle of 1649 the specified file is not valid. 1650 1651 lseek01 1652 1653 Basic test for lseek(2) 1654 1655 lseek02 1656 1657 Negative test for lseek(2) 1658 1659 lseek03 1660 1661 Negative test for lseek(2) whence 1662 1663 lseek04 1664 1665 Negative test for lseek(2) of a fifo 1666 1667 lseek05 1668 1669 Negative test for lseek(2) of a pipe 1670 1671 lseek06 1672 1673 Verify that, lseek() call succeeds to set the file pointer position 1674 to less than or equal to the file size, when a file is opened for 1675 read or write. 1676 1677 lseek07 1678 1679 Verify that, lseek() call succeeds to set the file pointer position 1680 to more than the file size, when a file is opened for reading/writing. 1681 1682 lseek08 1683 1684 Verify that, lseek() call succeeds to set the file pointer position 1685 to the end of the file when 'whence' value set to SEEK_END and any 1686 attempts to read from that position should fail. 1687 1688 lseek09 1689 1690 Verify that, lseek() call succeeds to set the file pointer position 1691 to the current specified location, when 'whence' value is set to 1692 SEEK_CUR and the data read from the specified location should match 1693 the expected data. 1694 1695 lseek10 1696 1697 Verify that, 1698 1. lseek() returns -1 and sets errno to ESPIPE, if the file handle of 1699 the specified file is associated with a pipe, socket, or FIFO. 1700 2. lseek() returns -1 and sets errno to EINVAL, if the 'Whence' argument 1701 is not a proper value. 1702 3. lseek() returns -1 and sets errno to EBADF, if the file handle of 1703 the specified file is not valid. 1704 1705 rwtest 1706 1707 A wrapper for doio and iogen. 1708 1709 doio 1710 a general purpose io initiator with system call and 1711 write logging. See doio.h for the structure which defines 1712 what doio requests should look like. 1713 1714 Currently doio can handle read,write,reada,writea,ssread, 1715 sswrite, and many varieties of listio requests. 1716 For disk io, if the O_SSD flag is set doio will allocate 1717 the appropriate amount of ssd and do the transfer - thus, doio 1718 can handle all of the primitive types of file io. 1719 1720 iogen 1721 A tool for generating file/sds io for a doio process 1722 1723 pread01 1724 1725 Verify the functionality of pread() by writing known data using pwrite() 1726 to the file at various specified offsets and later read from the file from 1727 various specified offsets, comparing the data read against the data 1728 written. 1729 1730 pread02 1731 1732 Verify that, 1733 1) pread() fails when attempted to read from an unnamed pipe. 1734 2) pread() fails if the specified offset position was invalid. 1735 1736 1737 pwrite01 1738 1739 Verify the functionality of pwrite() by writing known data using pwrite() 1740 to the file at various specified offsets and later read from the file from 1741 various specified offsets, comparing the data written against the data 1742 read using read(). 1743 1744 pwrite02 1745 1746 Verify that, 1747 1) pwrite() fails when attempted to write to an unnamed pipe. 1748 2) pwrite() fails if the specified offset position was invalid. 1749 1750 1751 read01 1752 1753 Basic test for the read(2) system call 1754 1755 read02 1756 1757 test 1: Does read return -1 if file descriptor is not valid, check for EBADF 1758 1759 test 2: Check if read sets EISDIR, if the fd refers to a directory 1760 1761 test 3: Check if read sets EFAULT, if buf is -1. 1762 1763 read03 1764 1765 Testcase to check that read() sets errno to EAGAIN 1766 1767 read04 1768 1769 Testcase to check if read returns the number of bytes read correctly. 1770 1771 1772 readv01 1773 1774 Testcase to check the basic functionality of the readv(2) system call. 1775 1776 readv02 1777 1778 Testcase to check the error conditions of the readv(2) system call. 1779 1780 write01 1781 1782 Basic test for write(2) system call. 1783 1784 write02 1785 1786 Basic functionality test: does the return from write match the count 1787 of the number of bytes written. 1788 1789 1790 write03 1791 1792 Testcase to check that write(2) doesn't corrupt a file when it fails 1793 1794 write04 1795 1796 Testcase to check that write() sets errno to EAGAIN 1797 1798 write05 1799 1800 Check the return value, and errnos of write(2) 1801 - when the file descriptor is invalid - EBADF 1802 - when the buf parameter is invalid - EFAULT 1803 - on an attempt to write to a pipe that is not open for reading - EPIPE 1804 1805 1806 writev01 1807 1808 Testcase to check the basic functionality of writev(2) system call. 1809 1810 1811 writev02 1812 1813 In these testcases, writev() is called with partially valid data 1814 to be written in a sparse file. 1815 1816 1817 writev03 1818 1819 The testcases are written calling writev() with partially valid data 1820 to overwrite the contents, to write in the beginning and to write in 1821 the end of the file. 1822 1823 writev04 1824 1825 The testcases are written calling writev() with partially valid data 1826 to overwrite the contents, to write in the beginning and to write in 1827 the end of the file. This is same as writev03, but the length of 1828 buffer used here is 8192 bytes. 1829 1830 writev05 1831 1832 These testcases are written to test writev() on sparse files. This 1833 is same as writev02. But the initial write() with valid data is 1834 done at the beginning of the file. 1835 1836 disktest 1837 1838 Does repeated accesses to a filespec and optionally writes to, reads from, 1839 and verifies the data. By default, disktest makes assumptions about 1840 the running environment which allows for a quick start of IO generation. 1841 However, Disktest has a large number of command line options which can 1842 be used to adapt the test for a variety of uses including data integrity, 1843 medium integrity, performance, and simple application simulation. 1844 1845 1846 1847 1848 getdents01 1849 get a directory entry 1850 1851 getdents02 1852 check that we get a failure with a bad file descriptor 1853 1854 1855 getdents03 1856 check for an EINVAL error 1857 1858 1859 getdents04 1860 check for an ENOTDIR error 1861 1862 getdents05 1863 check that we get a failure with a bad dirp address. 1864 process_stress 1865 Spawn creates a tree 1866 of processes with Dval depth and Bval breadth. Each parent will spawn 1867 Bval children. Each child will store information about themselves 1868 in shared memory. The leaf nodes will communicate the existence 1869 of one another through message queues, once each leaf node has 1870 received communication from all of her siblings she will reduce 1871 the semaphore count and exit. Meanwhile all parents are waiting 1872 to hear from their children through the use of semaphores. When 1873 the semaphore count reaches zero then the parent knows all the 1874 children have talked to one another. Locking of the connter semaphore 1875 is provided by the use of another (binary) semaphore. 1876 1877 1878 1879 1880 sched_stress 1881 Exports required environment variables and runs sched_driver 1882 sched_driver 1883 This program uses system calls to change the 1884 priorities of the throughput measurement testcases. 1885 When real-time is in effect, priorities 50 through 64 1886 are used. (MAX_PRI and MIN_PRI) When user-time 1887 (normal) is in effect, 0-14 (corresponding to nice() 1888 calls) is used. The driver only keeps track of 1889 values from 50 to 64, and the testcases will scale 1890 them down to 0 to 14 when needed, to change the 1891 priority of a user-time process. 1892 1893 time-schedule 1894 This programme will determine the context switch 1895 (scheduling) overhead on a system. It takes into 1896 account SMP machines. True context switches are 1897 measured. 1898 trace_sched 1899 This utility spawns N tasks, each task sets its priority 1900 by making a system call to the scheduler. The thread 1901 function reads the priority that the scheduler sets for 1902 this task and also reads from /proc the processor this 1903 task last executed on the information that is gathered 1904 by the thread function may be in real-time. Its only an 1905 approximation. 1906 1907 sched_getscheduler01 1908 1909 Testcase to check sched_getscheduler() returns correct return value 1910 1911 sched_getscheduler02 1912 1913 To check for the errno ESRCH 1914 1915 1916 sched_setscheduler01 1917 1918 Testcase to test whether sched_setscheduler(2) sets the errnos 1919 correctly. 1920 1921 sched_setscheduler02 1922 1923 Testcase to test whether sched_setscheduler(2) sets the errnos 1924 correctly. 1925 1926 1927 sched_yield01 1928 1929 Testcase to check that sched_yield returns correct values. 1930 1931 1932 nice01 1933 1934 Verify that root can provide a negative value to nice() 1935 and hence root can decrease the nice value of the process 1936 using nice() system call 1937 1938 nice02 1939 1940 Verify that any user can successfully increase the nice value of 1941 the process by passing a higher increment value (> max. applicable limits) 1942 to nice() system call. 1943 1944 nice03 1945 1946 Verify that any user can successfully increase the nice value of 1947 the process by passing an increment value (< max. applicable limits) to 1948 nice() system call. 1949 1950 nice04 1951 1952 Verify that, nice(2) fails when, a non-root user attempts to increase 1953 the priority of a process by specifying a negative increment value. 1954 1955 nice05 1956 1957 Basic test for nice(2) 1958 1959 1960 poll01 1961 1962 Verify that valid open file descriptor must be provided to poll() to 1963 succeed. 1964 1965 select01 1966 1967 Basic test for the select(2) system call to a fd of regular file with no I/O 1968 and small timeout 1969 1970 select02 1971 1972 Basic test for the select(2) system call to fd of system pipe with no I/O 1973 and small timeout 1974 1975 select03 1976 1977 Basic test for the select(2) system call to fd of a named-pipe (FIFO) 1978 1979 select04 1980 1981 Verify that select(2) returns immediately (does not block) if the 1982 timeout value is zero. 1983 1984 select05 1985 1986 Verify that select(2) fails when one or more of the file descriptor sets 1987 specify a file descriptor which is not valid. 1988 1989 select06 1990 1991 Verify that select(2) fails when a signal is delivered before any of the 1992 selected events occur and before the timeout interval expires. 1993 1994 select07 1995 1996 Verify that select(2) fails when an invalid timeout interval is specified. 1997 1998 select08 1999 2000 Verify the functionality of select(2) by passing non-null writefds 2001 which points to a regular file, pipes or FIFO's. 2002 2003 select09 2004 2005 Verify the functionality of select(2) by passing non-null readfds 2006 which points to a regular file, pipes or FIFO's. 2007 2008 select10 2009 2010 Verify that a successful call to select() shall return the desired 2011 number of modified descriptors for which bits are set in the bit masks, 2012 where descriptors points to a regular file, pipes or FIFO's. 2013 sem01 2014 2015 Creates a semaphore and two processes. The processes 2016 each go through a loop where they semdown, delay for a 2017 random amount of time, and semup, so they will almost 2018 always be fighting for control of the semaphore. 2019 2020 sem02 2021 The application creates several threads using pthread_create(). 2022 One thread performs a semop() with the SEM_UNDO flag set. The 2023 change in semaphore value performed by that semop should be 2024 "undone" only when the last pthread exits. 2025 2026 2027 semctl01 2028 2029 test the 10 possible semctl() commands 2030 2031 semctl02 2032 2033 test for EACCES error 2034 2035 semctl03 2036 2037 test for EINVAL and EFAULT errors 2038 2039 semctl04 2040 2041 test for EPERM error 2042 2043 2044 semctl05 2045 2046 test for ERANGE error 2047 2048 semget01 2049 2050 test that semget() correctly creates a semaphore set 2051 2052 semget02 2053 2054 test for EACCES and EEXIST errors 2055 2056 semget03 2057 2058 test for ENOENT error 2059 2060 semget05 2061 2062 test for ENOSPC error 2063 2064 semget06 2065 2066 test for EINVAL error 2067 2068 semop01 2069 2070 test that semop() basic functionality is correct 2071 2072 semop02 2073 2074 test for E2BIG, EACCES, EFAULT and EINVAL errors 2075 2076 semop03 2077 2078 test for EFBIG error 2079 2080 semop04 2081 2082 test for EAGAIN error 2083 2084 semop05 2085 2086 test for EINTR and EIDRM errors 2087 2088 2089 shmat01 2090 test that shmat() works correctly 2091 2092 shmat02 2093 check for EINVAL and EACCES errors 2094 2095 2096 shmat03 2097 test for EACCES error 2098 2099 2100 shmctl01 2101 test the IPC_STAT, IPC_SET and IPC_RMID commands as 2102 they are used with shmctl() 2103 2104 2105 shmctl02 2106 check for EACCES, EFAULT and EINVAL errors 2107 2108 2109 shmctl03 2110 check for EACCES, and EPERM errors 2111 2112 2113 shmdt01 2114 check that shared memory is detached correctly 2115 2116 2117 shmdt02 2118 check for EINVAL error 2119 2120 2121 shmget01 2122 test that shmget() correctly creates a shared memory segment 2123 2124 2125 shmget02 2126 check for ENOENT, EEXIST and EINVAL errors 2127 2128 2129 shmget03 2130 test for ENOSPC error 2131 2132 2133 shmget04 2134 test for EACCES error 2135 2136 2137 shmget05 2138 test for EACCES error 2139 shmat1 2140 2141 Test the LINUX memory manager. The program is aimed at 2142 stressing the memory manager by repeated shmat/write/read/ 2143 shmatd of file/memory of random size (maximum 1000 * 4096) 2144 done by multiple processes. 2145 2146 shm_test 2147 2148 This program is designed to stress the Memory management sub - 2149 system of Linux. This program will spawn multiple pairs of 2150 reader and writer threads. One thread will create the shared 2151 segment of random size and write to this memory, the other 2152 pair will read from this memory. 2153 2154 sigaction01 2155 2156 Test some features of sigaction (see below for more details) 2157 2158 2159 sigaction02 2160 2161 Testcase to check the basic errnos set by the sigaction(2) syscall. 2162 2163 2164 sigaltstack01 2165 2166 Send a signal using the main stack. While executing the signal handler 2167 compare a variable's address lying on the main stack with the stack 2168 boundaries returned by sigaltstack(). 2169 2170 2171 sigaltstack02 2172 2173 Verify that, 2174 1. sigaltstack() fails and sets errno to EINVAL when "ss_flags" field 2175 pointed to by 'ss' contains invalid flags. 2176 2. sigaltstack() fails and sets errno to ENOMEM when the size of alternate 2177 stack area is less than MINSIGSTKSZ. 2178 2179 sighold02 2180 2181 Basic test for the sighold02(2) system call. 2182 2183 2184 signal01 2185 set the signal handler to our own function 2186 2187 2188 signal02 2189 Test that we get an error using illegal signals 2190 2191 signal03 2192 2193 Boundary value and other invalid value checking of signal setup and signal 2194 sending. 2195 2196 2197 signal04 2198 restore signals to default behavior 2199 2200 2201 signal05 2202 set signals to be ignored 2203 2204 2205 sigprocmask01 2206 2207 Verify that sigprocmask() succeeds to examine and change the calling 2208 process's signal mask. 2209 Also, verify that sigpending() succeeds to store signal mask that are 2210 blocked from delivery and pending for the calling process. 2211 2212 sigrelse01 2213 2214 Basic test for the sigrelse(2) system call. 2215 2216 sigsuspend01 2217 2218 Verify that sigsuspend() succeeds to change process's current signal 2219 mask with the specified signal mask and suspends the process execution 2220 until the delivery of a signal. 2221 kill01 2222 2223 Test case to check the basic functionality of kill(). 2224 2225 kill02 2226 2227 Sending a signal to processes with the same process group ID 2228 2229 kill03 2230 2231 Test case to check that kill fails when given an invalid signal. 2232 2233 kill04 2234 2235 Test case to check that kill() fails when passed a non-existent pid. 2236 2237 kill05 2238 2239 Test case to check that kill() fails when passed a pid owned by another 2240 user. 2241 2242 kill06 2243 2244 Test case to check the basic functionality of kill() when killing an 2245 entire process group with a negative pid. 2246 2247 kill07 2248 2249 Test case to check that SIGKILL can not be caught. 2250 2251 kill08 2252 2253 Test case to check the basic functionality of kill() when kill an 2254 entire process group. 2255 2256 kill09 2257 Basic test for kill(2) 2258 2259 kill10 2260 Signal flooding test. 2261 2262 2263 mtest01 2264 mallocs memory <chunksize> at a time until malloc fails. 2265 mallocstress 2266 2267 This program is designed to stress the VMM by doing repeated */ 2268 mallocs and frees, with out using the swap space. This is */ 2269 achieved by spawning N threads with repeatedly malloc and free*/ 2270 a memory of size M. The stress can be increased by increasing */ 2271 the number of repetitions over the default number using the */ 2272 -l [num] option. 2273 2274 clisrv 2275 2276 Sender: Read contents of data file. Write each line to socket, then 2277 read line back from socket and write to standard output. 2278 Receiver: Read a stream socket one line at a time and write each line 2279 back to the sender. 2280 Usage: pthcli [port number] 2281 2282 2283 socket01 2284 2285 Verify that socket() returns the proper errno for various failure cases 2286 2287 2288 socketpair01 2289 2290 Verify that socketpair() returns the proper errno for various failure cases 2291 2292 2293 sockioctl01 2294 2295 Verify that ioctl() on sockets returns the proper errno for various 2296 failure cases 2297 2298 connect01 2299 2300 Verify that connect() returns the proper errno for various failure cases 2301 2302 getpeername01 2303 2304 Verify that getpeername() returns the proper errno for various failure cases 2305 2306 2307 getsockname01 2308 2309 Verify that getsockname() returns the proper errno for various failure cases 2310 2311 getsockopt01 2312 2313 Verify that getsockopt() returns the proper errno for various failure cases 2314 2315 listen01 2316 2317 Verify that listen() returns the proper errno for various failure cases 2318 2319 accept01 2320 2321 Verify that accept() returns the proper errno for various failure cases 2322 2323 bind01 2324 2325 Verify that bind() returns the proper errno for various failure cases 2326 2327 2328 recv01 2329 2330 Verify that recv() returns the proper errno for various failure cases 2331 2332 2333 recvfrom01 2334 2335 Verify that recvfrom() returns the proper errno for various failure cases 2336 2337 2338 recvmsg01 2339 2340 Verify that recvmsg() returns the proper errno for various failure cases 2341 2342 send01 2343 2344 Verify that send() returns the proper errno for various failure cases 2345 2346 sendmsg01 2347 2348 Verify that sendmsg() returns the proper errno for various failure cases 2349 sendto01 2350 2351 Verify that sendto() returns the proper errno for various failure cases 2352 2353 setsockopt01 2354 2355 Verify that setsockopt() returns the proper errno for various failure cases 2356 2357 2358 fstat01 2359 2360 Basic test for fstat(2) 2361 2362 fstat02 2363 2364 Verify that, fstat(2) succeeds to get the status of a file and fills 2365 the stat structure elements though file pointed to by file descriptor 2366 not opened for reading. 2367 2368 fstat03 2369 2370 Verify that, fstat(2) returns -1 and sets errno to EBADF if the file 2371 pointed to by file descriptor is not valid. 2372 2373 fstat04 2374 2375 Verify that, fstat(2) succeeds to get the status of a file pointed by 2376 file descriptor and fills the stat structure elements. 2377 2378 2379 fstatfs01 2380 2381 Basic test for fstatfs(2) 2382 2383 fstatfs02 2384 2385 Testcase to check fstatfs() sets errno correctly. 2386 2387 lstat01 2388 2389 Verify that, lstat(2) succeeds to get the status of a file pointed to by 2390 symlink and fills the stat structure elements. 2391 2392 lstat02 2393 2394 Basic test for lstat(2) 2395 2396 lstat03 2397 2398 Verify that, 2399 1) lstat(2) returns -1 and sets errno to EACCES if search permission is 2400 denied on a component of the path prefix. 2401 2) lstat(2) returns -1 and sets errno to ENOENT if the specified file 2402 does not exists or empty string. 2403 3) lstat(2) returns -1 and sets errno to EFAULT if pathname points 2404 outside user's accessible address space. 2405 4) lstat(2) returns -1 and sets errno to ENAMETOOLONG if the pathname 2406 component is too long. 2407 5) lstat(2) returns -1 and sets errno to ENOTDIR if the directory 2408 component in pathname is not a directory. 2409 2410 stat01 2411 2412 Verify that, stat(2) succeeds to get the status of a file and fills the 2413 stat structure elements. 2414 2415 stat02 2416 2417 Verify that, stat(2) succeeds to get the status of a file and fills the 2418 stat structure elements though process doesn't have read access to the 2419 file. 2420 2421 2422 stat03 2423 2424 Verify that, 2425 1) stat(2) returns -1 and sets errno to EACCES if search permission is 2426 denied on a component of the path prefix. 2427 2) stat(2) returns -1 and sets errno to ENOENT if the specified file 2428 does not exists or empty string. 2429 3) stat(2) returns -1 and sets errno to EFAULT if pathname points 2430 outside user's accessible address space. 2431 4) stat(2) returns -1 and sets errno to ENAMETOOLONG if the pathname 2432 component is too long. 2433 5) stat(2) returns -1 and sets errno to ENOTDIR if the directory 2434 component in pathname is not a directory. 2435 2436 stat05 2437 2438 Basic test for the stat05(2) system call. 2439 2440 statfs01 2441 2442 Basic test for the statfs(2) system call. 2443 2444 statfs02 2445 2446 Testcase to check that statfs(2) sets errno correctly. 2447 2448 2449 read01 2450 2451 Basic test for the read(2) system call 2452 2453 read02 2454 2455 test 1: Does read return -1 if file descriptor is not valid, check for EBADF 2456 2457 test 2: Check if read sets EISDIR, if the fd refers to a directory 2458 2459 test 3: Check if read sets EFAULT, if buf is -1. 2460 2461 read03 2462 2463 Testcase to check that read() sets errno to EAGAIN 2464 2465 read04 2466 2467 Testcase to check if read returns the number of bytes read correctly. 2468 2469 umask01 2470 2471 Basic test for the umask(2) system call. 2472 2473 umask02 2474 2475 Check that umask changes the mask, and that the previous 2476 value of the mask is returned correctly for each value. 2477 2478 umask03 2479 2480 Check that umask changes the mask, and that the previous 2481 value of the mask is returned correctly for each value. 2482 2483 2484 2485 getgroups01 2486 2487 Getgroups system call critical test 2488 2489 getgroups02 2490 2491 Basic test for getgroups(2) 2492 2493 getgroups03 2494 2495 Verify that, getgroups() system call gets the supplementary group IDs 2496 of the calling process. 2497 2498 getgroups04 2499 2500 Verify that, 2501 getgroups() fails with -1 and sets errno to EINVAL if the size 2502 argument value is -ve. 2503 2504 gethostname01 2505 2506 Basic test for gethostname(2) 2507 2508 2509 getpgid01 2510 2511 Testcase to check the basic functionality of getpgid(). 2512 2513 getpgid02 2514 2515 Testcase to check the basic functionality of getpgid(). 2516 2517 getpgrp01 2518 Basic test for getpgrp(2) 2519 2520 2521 getpriority01 2522 2523 Verify that getpriority() succeeds get the scheduling priority of 2524 the current process, process group or user. 2525 2526 2527 getpriority02 2528 2529 Verify that, 2530 1) getpriority() sets errno to ESRCH if no process was located 2531 was located for 'which' and 'who' arguments. 2532 2) getpriority() sets errno to EINVAL if 'which' argument was 2533 not one of PRIO_PROCESS, PRIO_PGRP, or PRIO_USER. 2534 2535 getresgid01 2536 2537 Verify that getresgid() will be successful to get the real, effective 2538 and saved user id of the calling process. 2539 2540 getresgid02 2541 2542 Verify that getresgid() will be successful to get the real, effective 2543 and saved user ids after calling process invokes setregid() to change 2544 the effective/saved gids to that of specified user. 2545 2546 getresgid03 2547 2548 Verify that getresgid() will be successful to get the real, effective 2549 and saved user ids after calling process invokes setresgid() to change 2550 the effective gid to that of specified user. 2551 2552 2553 getresuid01 2554 2555 Verify that getresuid() will be successful to get the real, effective 2556 and saved user id of the calling process. 2557 2558 getresuid02 2559 2560 Verify that getresuid() will be successful to get the real, effective 2561 and saved user ids after calling process invokes setreuid() to change 2562 the effective/saved uids to that of specified user. 2563 2564 getresuid03 2565 2566 Verify that getresuid() will be successful to get the real, effective 2567 and saved user ids after calling process invokes setresuid() to change 2568 the effective uid to that of specified user. 2569 2570 2571 getsid01 2572 2573 call getsid() and make sure it succeeds 2574 2575 getsid02 2576 2577 call getsid() with an invalid PID to produce a failure 2578 2579 2580 setfsgid01 2581 2582 Testcase to check the basic functionality of setfsgid(2) system 2583 call. 2584 2585 setfsuid01 2586 2587 Testcase to test the basic functionality of the setfsuid(2) system 2588 call. 2589 2590 2591 setgid01 2592 2593 Basic test for the setgid(2) system call. 2594 2595 setgid02 2596 2597 Testcase to ensure that the setgid() system call sets errno to EPERM 2598 2599 2600 setgroups01 2601 2602 Basic test for the setgroups(2) system call. 2603 2604 setgroups02 2605 2606 Verify that, 2607 1. setgroups() fails with -1 and sets errno to EINVAL if the size 2608 argument value is > NGROUPS 2609 2. setgroups() fails with -1 and sets errno to EPERM if the 2610 calling process is not super-user. 2611 2612 setgroups03 2613 2614 Verify that, only root process can invoke setgroups() system call to 2615 set the supplementary group IDs of the process. 2616 2617 2618 setpgid01 2619 2620 Basic test for setpgid(2) system call. 2621 2622 setpgid02 2623 2624 Testcase to check that setpgid() sets errno correctly. 2625 2626 setpgid03 2627 2628 Test to check the error and trivial conditions in setpgid system call 2629 2630 setpriority01 2631 2632 set the priority for the test process lower. 2633 2634 setpriority02 2635 2636 test for an expected failure by trying to raise 2637 the priority for the test process while not having 2638 permissions to do so. 2639 2640 setpriority03 2641 2642 test for an expected failure by using an invalid 2643 PRIO value 2644 setpriority04 2645 2646 setpriority04 2647 test for an expected failure by using an invalid 2648 process id 2649 2650 2651 setpriority05 2652 test for an expected failure by trying to change 2653 a process with an ID that is different from the 2654 test process 2655 2656 setregid01 2657 2658 Basic test for the setregid(2) system call. 2659 2660 setregid02 2661 2662 Test that setregid() fails and sets the proper errno values when a 2663 non-root user attempts to change the real or effective group id to a 2664 value other than the current gid or the current effective gid. 2665 2666 setregid03 2667 2668 Test setregid() when executed by a non-root user. 2669 2670 setregid04 2671 2672 Test setregid() when executed by root. 2673 2674 setresuid01 2675 2676 Test setresuid() when executed by root. 2677 2678 setresuid02 2679 2680 Test that a non-root user can change the real, effective and saved 2681 uid values through the setresuid system call. 2682 2683 2684 setresuid03 2685 2686 Test that the setresuid system call sets the proper errno 2687 values when a non-root user attempts to change the real, effective or 2688 saved uid to a value other than one of the current uid, the current 2689 effective uid of the current saved uid. Also verify that setresuid 2690 fails if an invalid uid value is given. 2691 2692 setreuid01 2693 2694 Basic test for the setreuid(2) system call. 2695 2696 setreuid02 2697 2698 Test setreuid() when executed by root. 2699 2700 setreuid03 2701 2702 Test setreuid() when executed by an unprivileged user. 2703 2704 2705 setreuid04 2706 2707 Test that root can change the real and effective uid to an 2708 unprivileged user. 2709 2710 setreuid05 2711 2712 Test the setreuid() feature, verifying the role of the saved-set-uid 2713 and setreuid's effect on it. 2714 2715 setreuid06 2716 2717 Test that EINVAL is set when setreuid is given an invalid user id. 2718 2719 setrlimit01 2720 2721 Testcase to check the basic functionality of the setrlimit system call. 2722 2723 2724 setrlimit02 2725 2726 Testcase to test the different errnos set by setrlimit(2) system call. 2727 2728 setrlimit03 2729 2730 Test for EPERM when the super-user tries to increase RLIMIT_NOFILE 2731 beyond the system limit. 2732 2733 setsid01 2734 2735 Test to check the error and trivial conditions in setsid system call 2736 2737 setuid01 2738 2739 Basic test for the setuid(2) system call. 2740 2741 setuid02 2742 2743 Basic test for the setuid(2) system call as root. 2744 2745 setuid03 2746 2747 Test to check the error and trivial conditions in setuid 2748 2749 fs_perms 2750 2751 Regression test for Linux filesystem permissions. 2752 uname01 2753 2754 Basic test for the uname(2) system call. 2755 2756 uname02 2757 2758 Call uname() with an invalid address to produce a failure 2759 2760 uname03 2761 2762 Call uname() and make sure it succeeds 2763 sysctl01 2764 2765 Testcase for testing the basic functionality of sysctl(2) system call. 2766 This testcase attempts to read the kernel parameters using 2767 sysctl({CTL_KERN, KERN_ }, ...) and compares it with the known 2768 values. 2769 2770 sysctl03 2771 2772 Testcase to check that sysctl(2) sets errno to EPERM correctly. 2773 2774 2775 sysctl04 2776 2777 Testcase to check that sysctl(2) sets errno to ENOTDIR 2778 2779 2780 sysctl05 2781 2782 Testcase to check that sysctl(2) sets errno to EFAULT 2783 2784 time01 2785 2786 Basic test for the time(2) system call. 2787 2788 2789 time02 2790 2791 Verify that time(2) returns the value of time in seconds since 2792 the Epoch and stores this value in the memory pointed to by the parameter. 2793 2794 times01 2795 2796 Basic test for the times(2) system call. 2797 2798 times02 2799 2800 Testcase to test that times() sets errno correctly 2801 2802 times03 2803 2804 Testcase to check the basic functionality of the times() system call. 2805 2806 utime01 2807 2808 Verify that the system call utime() successfully sets the modification 2809 and access times of a file to the current time, if the times argument 2810 is null, and the user ID of the process is "root". 2811 2812 utime02 2813 2814 Verify that the system call utime() successfully sets the modification 2815 and access times of a file to the current time, under the following 2816 constraints, 2817 - The times argument is null. 2818 - The user ID of the process is not "root". 2819 - The file is owned by the user ID of the process. 2820 2821 utime03 2822 2823 Verify that the system call utime() successfully sets the modification 2824 and access times of a file to the current time, under the following 2825 constraints, 2826 - The times argument is null. 2827 - The user ID of the process is not "root". 2828 - The file is not owned by the user ID of the process. 2829 - The user ID of the process has write access to the file. 2830 2831 2832 utime04 2833 2834 Verify that the system call utime() successfully sets the modification 2835 and access times of a file to the time specified by times argument, if 2836 the times argument is not null, and the user ID of the process is "root". 2837 2838 2839 utime05 2840 2841 Verify that the system call utime() successfully sets the modification 2842 and access times of a file to the value specified by the times argument 2843 under the following constraints, 2844 - The times argument is not null, 2845 - The user ID of the process is not "root". 2846 - The file is owned by the user ID of the process. 2847 2848 2849 utime06 2850 2851 1. Verify that the system call utime() fails to set the modification 2852 and access times of a file to the current time, under the following 2853 constraints, 2854 - The times argument is null. 2855 - The user ID of the process is not "root". 2856 - The file is not owned by the user ID of the process. 2857 - The user ID of the process does not have write access to the 2858 file. 2859 2. Verify that the system call utime() fails to set the modification 2860 and access times of a file if the specified file doesn't exist. 2861 2862 settimeofday01 2863 2864 Testcase to check the basic functionality of settimeofday(). 2865 2866 2867 settimeofday02 2868 2869 Testcase to check that settimeofday() sets errnos correctly. 2870 2871 stime01 2872 2873 Verify that the system call stime() successfully sets the system's idea 2874 of data and time if invoked by "root" user. 2875 2876 stime02 2877 2878 Verify that the system call stime() fails to set the system's idea 2879 of data and time if invoked by "non-root" user. 2880 2881 gettimeofday01 2882 2883 Testcase to check that gettimeofday(2) sets errno to EFAULT. 2884 2885 2886 2887 alarm01 2888 2889 Basic test for alarm(2). 2890 2891 alarm02 2892 2893 Boundary Value Test for alarm(2). 2894 2895 alarm03 2896 2897 Alarm(2) cleared by a fork. 2898 2899 alarm04 2900 2901 Check that when an alarm request is made, the signal SIGALRM is received 2902 even after the process has done an exec(). 2903 2904 alarm05 2905 2906 Check the functionality of the Alarm system call when the time input 2907 parameter is non zero. 2908 2909 alarm06 2910 2911 Check the functionality of the Alarm system call when the time input 2912 parameter is zero. 2913 2914 alarm07 2915 2916 Check the functionality of the alarm() when the time input 2917 parameter is non-zero and the process does a fork. 2918 2919 getegid01 2920 2921 Basic test for getegid(2) 2922 2923 2924 geteuid01 2925 2926 Basic test for geteuid(2) 2927 2928 2929 getgid01 2930 2931 Basic test for getgid(2) 2932 2933 getgid02 2934 2935 Testcase to check the basic functionality of getgid(). 2936 2937 getgid03 2938 2939 Testcase to check the basic functionality of getegid(). 2940 2941 2942 getpid01 2943 2944 Basic test for getpid(2) 2945 2946 2947 getpid02 2948 2949 Verify that getpid() system call gets the process ID of the of the 2950 calling process. 2951 2952 2953 getppid01 2954 2955 Testcase to check the basic functionality of the getppid() syscall. 2956 2957 2958 getuid01 2959 2960 Basic test for getuid(2) 2961 2962 getuid02 2963 2964 Testcase to check the basic functionality of the geteuid() system call. 2965 2966 getuid03 2967 2968 Testcase to check the basic functionality of the getuid() system call. 2969 2970 nanosleep01 2971 2972 Verify that nanosleep() will be successful to suspend the execution 2973 of a process for a specified time. 2974 2975 nanosleep02 2976 2977 Verify that nanosleep() will be successful to suspend the execution 2978 of a process, returns after the receipt of a signal and writes the 2979 remaining sleep time into the structure. 2980 2981 nanosleep03 2982 2983 Verify that nanosleep() will fail to suspend the execution 2984 of a process for a specified time if interrupted by a non-blocked signal. 2985 2986 nanosleep04 2987 2988 Verify that nanosleep() will fail to suspend the execution 2989 of a process if the specified pause time is invalid. 2990 2991