42-archive/42sh/21sh_error
2017-03-24 17:43:33 +01:00

235 lines
9.8 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.x....................xxx...xxxx..x.
----------------------------------------------------------------
21sh/misc/002-simple-command-line (FAILED)
Description:
 The purpose of this test is to check that the Shell is able to execute a simple command line that contains separators `;`, pipes `|`, and a right redirection `>`.
Before test:
 01: rm -rf "./size"
02: rm -rf "TOKEN201703241734"
03: echo '^'$(echo TOKEN201703241734_FILE_TOKEN201703241734_STDOUT | wc -c)'$' > "./size"
STDIN:
 01: mkdir TOKEN201703241734 ; cd TOKEN201703241734 ; touch TOKEN201703241734_FILE ; ls -1 ; ls | cat | wc -c > TOKEN201703241734_STDOUT ; cat TOKEN201703241734_STDOUT
STDOUT:
 SUCCESS expected_to match_regex `TOKEN201703241734_FILE$`
 FAILURE expected_to match_each_regex_of_file `./size`
 01: TOKEN201703241734_FILE
02: 98839 redirect_great.c 24 3 1
03: 23
STDERR:
 SUCCESS expected_to be_empty
 (no output)
----------------------------------------------------------------
21sh/redirections/outputs/truncating/001-creates-file-if-not-exits (FAILED)
Description:
 The right redirection `>` opens the file with the oflag `O_CREAT` so that the file is created if it does not exists.
Before test:
 01: rm -f new_file
STDIN:
 01: ./write_on_stdout TOKEN201703241734 >new_file
STDOUT:
 SUCCESS expected_to_not match_regex `TOKEN201703241734`
 (no output)
STDERR:
 SUCCESS expected_to be_empty
 (no output)
MISC:
 SUCCESS expected_to create_file `new_file` matching_regex `TOKEN201703241734`
 FAILURE expected_to create_file `new_file` with_nb_of_lines `1`
----------------------------------------------------------------
21sh/redirections/outputs/truncating/002-truncates-file-if-exists (FAILED)
Description:
 The right redirection `>` opens the file with the oflag `O_TRUNC` so that the file size is truncated to 0 before writing in it.
Before test:
 01: ./write_on_stdout TOKEN201703241734_first >truncated_file
STDIN:
 01: ./write_on_stdout TOKEN201703241734_second >truncated_file
STDOUT:
 SUCCESS expected_to_not match_regex TOKEN201703241734_second
 (no output)
STDERR:
 SUCCESS expected_to be_empty
 (no output)
MISC:
 SUCCESS expected_to create_file `truncated_file` matching_regex `TOKEN201703241734_second`
 SUCCESS expected_to create_file `truncated_file` not_matching_regex `TOKEN201703241734_first`
 FAILURE expected_to create_file `truncated_file` with_nb_of_lines `1`
----------------------------------------------------------------
21sh/redirections/outputs/truncating/003-whitespace-before-filename (FAILED)
Description:
 The file name for a right redirection can be specified closely to the character `>` or in a separated field.
Before test:
 01: rm -f "new_file"
STDIN:
 01: ./write_on_stdout TOKEN201703241734 > new_file
STDOUT:
 SUCCESS expected_to_not match_regex `TOKEN201703241734`
 (no output)
STDERR:
 SUCCESS expected_to be_empty
 (no output)
MISC:
 SUCCESS expected_to create_file `new_file` matching_regex `TOKEN201703241734`
 FAILURE expected_to create_file `new_file` with_nb_of_lines `1`
----------------------------------------------------------------
21sh/redirections/outputs/truncating/multiple/004-together (FAILED)
Description:
 A right redirection can be associated to the twice outputs by using `&>...`, that means `redirect stdout and stderr to ...`.
Before test:
 01: rm -f "new_file_stderr_and_stdout"
STDIN:
 01: ./write_on_stdout_and_stderr TOKEN201703241734_1 TOKEN201703241734_2 &>new_file_stderr_and_stdout
STDOUT:
 FAILURE expected_to_not match_regex `TOKEN201703241734_1`
 SUCCESS expected_to_not match_regex `TOKEN201703241734_2`
 01: TOKEN201703241734_1
STDERR:
 SUCCESS expected_to_not match_regex `TOKEN201703241734_1`
 FAILURE expected_to_not match_regex `TOKEN201703241734_2`
 01: TOKEN201703241734_2
MISC:
 FAILURE expected_to create_file `new_file_stderr_and_stdout` matching_regex `TOKEN201703241734_1$`
 FAILURE expected_to create_file `new_file_stderr_and_stdout` matching_regex `TOKEN201703241734_2$`
----------------------------------------------------------------
21sh/redirections/outputs/truncating/multiple/005-together-with-whitespaces (FAILED)
Description:
 A right redirection can be associated to the twice outputs by using `&>...`, that means `redirect stdout and stderr to ...`.
In this test, we specify the file name in a separate field.
Before test:
 01: rm -f new_file_stderr_and_stdout
STDIN:
 01: ./write_on_stdout_and_stderr TOKEN201703241734_1 TOKEN201703241734_2 &> new_file_stderr_and_stdout
STDOUT:
 FAILURE expected_to_not match_regex `TOKEN201703241734_1`
 SUCCESS expected_to_not match_regex `TOKEN201703241734_2`
 01: TOKEN201703241734_1
STDERR:
 SUCCESS expected_to_not match_regex `TOKEN201703241734_1`
 FAILURE expected_to_not match_regex `TOKEN201703241734_2`
 01: TOKEN201703241734_2
MISC:
 FAILURE expected_to create_file `new_file_stderr_and_stdout` matching_regex `TOKEN201703241734_1$`
 FAILURE expected_to create_file `new_file_stderr_and_stdout` matching_regex `TOKEN201703241734_2$`
----------------------------------------------------------------
21sh/redirections/outputs/truncating/stderr/001-works (FAILED)
Description:
 The purpose of this test is to check that redirecting the standard error STDERR to a file `2>` works. In this test, the binary writes a token on each standard and error output, so that only the STDOUT is outputted and STDERR is written in a file `new_file_stderr`.
Before test:
 01: rm -f "./new_file_stderr"
STDIN:
 01: ./write_on_stdout_and_stderr TOKEN201703241734_STDOUT TOKEN201703241734_STDERR 2>new_file_stderr
STDOUT:
 SUCCESS expected_to match_regex `TOKEN201703241734_STDOUT`
 01: TOKEN201703241734_STDOUT
STDERR:
 SUCCESS expected_to_not match_regex `TOKEN201703241734_STDERR`
 (no output)
MISC:
 SUCCESS expected_to create_file `new_file_stderr` matching_regex `TOKEN201703241734_STDERR`
 FAILURE expected_to create_file `new_file_stderr` with_nb_of_lines 1
----------------------------------------------------------------
21sh/redirections/outputs/truncating/stdout/001-with-explicit-fd (FAILED)
Description:
 The purpose of this test is to check if '1>' redirect STDIN to a file.
We are using echo with one argument. The output should NOT return anything on the standard output.
Before test:
 01: rm -f new_file
STDIN:
 01: /bin/echo TOKEN1 1>new_file
STDOUT:
 SUCCESS expected_to_not match_regex TOKEN1
 (no output)
STDERR:
 (no output)
MISC:
 SUCCESS expected_to create_file new_file matching_regex TOKEN1
 FAILURE expected_to create_file new_file with_nb_of_lines 1
----------------------------------------------------------------
21sh/separators/semicolon/003-parse-error-empty-inline-command (FAILED)
Description:
 The purpose of this test is to check that using the simicolon separator `;` with empty commands results in error.
STDIN:
 01: ./write_on_stdout TOKEN201703241734 ; ; ./exit_with_status 42
STDOUT:
 SUCCESS expected_to be_empty
 (no output)
STDERR:
 SUCCESS expected_to_not be_empty
 SUCCESS might match_regex `([Ss]yntax|[Pp]arse) error`
 01: syntax error near unexpected token `;'
MISC:
 SUCCESS expected_to_not exit_with_status `42`
 FAILURE expected_to_not exit_with_status `0`
Total tests: 36
Total failed tests: 9
Total pending tests: 0