| .. | ||
| before_exec | ||
| description | ||
| README.md | ||
| stdin | ||
| stdout | ||
004-nested-until
spec > 42sh > shellscript > until > 004-nested-until
The purpose of this test is to check that a until control flow nested in a until control flow does result in one execution of the compound list
Shell commands that are sent to the standard entry
until [ -f ${GLOBAL_TOKEN}_FILE ]
do
until [ -f ${GLOBAL_TOKEN}_FILE ]
do
./write_on_stdout ${GLOBAL_TOKEN}_stdout
./create-file ${GLOBAL_TOKEN}
done
done
What is expected on standard output
expected_to match_regex "${GLOBAL_TOKEN}_stdout"
Variables
The following variables may appear in this test:
- ${GLOBAL_INSTALLDIR} -> The installation directory of 42ShellTester
- ${GLOBAL_TMP_DIRECTORY} -> The temporary directory in which tests are executed
- ${GLOBAL_TOKEN} -> A token that changes value at launch time
- ${PATH} -> The standard environment variable PATH
- ${HOME} -> The standard environment variable HOME
Support binaries
The following binaries may appear in this test:
- ./create_file -> A binary that creates file named argv[1] + "_FILE" If argv[1] is not set, the file is named "TOKEN_FILE"
- ./delete_file -> A binary that delete all files called in argument.
- ./display_env -> A binary that iterates on
**envpand write each element on standard output. - ./display_program_name -> A binary that writes its name on standard ouput.
- ./display_pwd -> A binary that writes on standard output the absolute path of the current directory returned by
getcwd(3), encountered with the stringsPWD:and:PWD. - ./exit_with_status -> A binary that immediately exits with the status given as first argument.
- ./read_on_stdin -> A binary that reads on standard entry and write each line on standard output suffixed with the character
@(e.g. same behavior ascat -eand the newline character). Whenread(2)returns-1, then the stringSTDIN READ ERRORis written on standard error. - ./sleep_and_exit_with_status -> A binary that sleeps for a duration in seconds given as first argument and then exits with status given as second argument.
- ./sleep_and_write_on_stderr -> A binary that sleeps for a duration in seconds given as first argument and then writes on STDERR the string given as second argument without EOL.
- ./write_all_arguments_on_stdout -> A binary that writes on standard output each argument separated by the symbol
@. If no argument is given, it writes the string "nothing to be written on stdout". - ./write_on_stderr -> A binary that writes on standard error the first given argument (the same behavior as
echobut with only one argument) and exits with an error status code given as second argument. If no argument is given, it writes the string "write on stderr" and exit with status1. - ./write_on_stdout -> A binary that writes on standard output the first given argument (the same behavior as
echobut with only one argument). If no argument is given, it writes the string "write on stdout". - ./write_on_stdout_and_stderr -> A binary that writes on standard output the first given argument, and writes on standard error the second given argument. If an argument is missing, it writes the strings "write on stdout" and "write on stderr".