Plan for the testing of the Operating System Interface (OSI). A single Ada procedure will be used to test the OSI. This test procedure will present a user with a menu of options to test the different major parts of the OSI. The OSI can be divided into three major parts. These parts are regular files and directories, file descriptors, and processes. At least one menu item should be devoted for every major part. Following is a list of "Canned" functions divided into the three major parts to be performed by the test procedure. The test will cover all of the functions implemented by the OSI but not every possible situation in which they can be used. Regular Files and directories: To test this part, you need to have a file in your working directory. This file will be used during the test. For the purpose of this discussion, we will assume that the name of this file is test.txt. 1) Check the existence of the file test.txt and print out the results. 2) Copy the file test.txt to a non-existing directory. 3) Create a new directory (for this test's purpose, we will call the directory /test) 4) Check the existence of the directory /test and print out the results. 5) Copy the file test.txt to the file /test/test1.txt. 6) Check the existence of the file /test/test1.txt and print out the results. 7) Attempt to rename the directory /test to /test2. 8) Attempt to unlink the directory /test (OSI_Files.Unlink). 9) Attempt to remove the directory /test. 10) Copy the file test.txt to the file /test/test2.txt. 11) Check the existence of the file /test/test2.txt and print out the results. 12) Iterate through the directory /test printing out the host file names of every file in this directory. 13) Rename the file /test/test2.txt to test2.txt. 14) Check the existence of the file /test/test2.txt and print out the results. 15) Check the existence of the file test2.txt and print out the results. 16) Unlink the file /test/test1.txt. 17) Check the existence of the file /test/test1.txt and print out the results. 18) Remove the directory /test. 19) Check the existence of the directory /test and print out the results. 20) Attempt to remove as a directory the file test2.txt. 21) Unlink the file test2.txt. 22) Check the existence of the file test2.txt and print out the results. File descriptors: 1) Attempt to obtain the device name of an illegal file descriptor. 2) Check to see if the Standard_Output file descriptor is a terminal device. 3) Get device name of the Standard_Output file descriptor. 4) Attempt to copy the Standard_Output file to the file test.txt. 5) Check to see if reading access is allowed from the Standard_Output file. 6) Attempt to rename the Standard_Output file. Processes: To test this part, you need to have two files in your working directory. One of the files contains a shell script. The other file is an executable image. 1) Print out the login name of the user. 2) Attempt to print out the value of an undefined environment variable. 3) Check for execute access to the shell script file. 4) Execute the shell script file. 5) Attempt to execute a non-existing file 6) Execute an executable image file which prints out the login name of the user 7) Print out the value of a defined environment variable.