diff options
| author | Charles Cabergs <me@cacharle.xyz> | 2020-10-09 20:32:46 +0200 |
|---|---|---|
| committer | Charles Cabergs <me@cacharle.xyz> | 2020-10-09 20:32:46 +0200 |
| commit | 9fe518540848f6c273fa749a06437aa7bb7459ff (patch) | |
| tree | bfe562cbdffd69c764305567af7e33b9fd50ffa5 /src/suites | |
| parent | 9ce56e51327c1b8eb4ba09a3521ff9ff4079d28f (diff) | |
| download | minishell_test-9fe518540848f6c273fa749a06437aa7bb7459ff.tar.gz minishell_test-9fe518540848f6c273fa749a06437aa7bb7459ff.tar.bz2 minishell_test-9fe518540848f6c273fa749a06437aa7bb7459ff.zip | |
Added syntax error status and discard cd too many argument on Linux
Diffstat (limited to 'src/suites')
| -rw-r--r-- | src/suites/builtin.py | 13 | ||||
| -rw-r--r-- | src/suites/flow.py | 132 |
2 files changed, 74 insertions, 71 deletions
diff --git a/src/suites/builtin.py b/src/suites/builtin.py index 64d6ea6..1723b13 100644 --- a/src/suites/builtin.py +++ b/src/suites/builtin.py @@ -6,7 +6,7 @@ # By: juligonz <juligonz@student.42.fr> +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2020/07/15 18:24:43 by charles #+# #+# # -# Updated: 2020/10/09 08:48:28 by cacharle ### ########.fr # +# Updated: 2020/10/09 20:28:36 by charles ### ########.fr # # Updated: 2020/09/11 18:01:27 by juligonz ### ########.fr # # # # **************************************************************************** # @@ -16,6 +16,7 @@ import os import config import hooks from suite import suite +from hooks import linux_discard @suite() @@ -130,12 +131,12 @@ def suite_cd(test): # hard and weird to implement with pwd # test("cd /etc; pwd; echo $PWD") test("echo $PWD; echo $OLDPWD; cd ''; pwd; echo $PWD; echo $OLDPWD") - test("echo $PWD; echo $OLDPWD; cd '' ''; pwd; echo $PWD; echo $OLDPWD") - test("echo $PWD; echo $OLDPWD; cd '' '' ''; pwd; echo $PWD; echo $OLDPWD") + test("echo $PWD; echo $OLDPWD; cd '' ''; pwd; echo $PWD; echo $OLDPWD", hook=linux_discard) + test("echo $PWD; echo $OLDPWD; cd '' '' ''; pwd; echo $PWD; echo $OLDPWD", hook=linux_discard) test("echo $PWD; echo $OLDPWD; cd ' '; pwd; echo $PWD; echo $OLDPWD") - test("echo $PWD; echo $OLDPWD; cd d ''; pwd; echo $PWD; echo $OLDPWD", setup="mkdir d") - test("echo $PWD; echo $OLDPWD; cd d d; pwd; echo $PWD; echo $OLDPWD", setup="mkdir d") - test("echo $PWD; echo $OLDPWD; cd d ' '; pwd; echo $PWD; echo $OLDPWD", setup="mkdir d") + test("echo $PWD; echo $OLDPWD; cd d ''; pwd; echo $PWD; echo $OLDPWD", setup="mkdir d", hook=linux_discard) + test("echo $PWD; echo $OLDPWD; cd d d; pwd; echo $PWD; echo $OLDPWD", setup="mkdir d", hook=linux_discard) + test("echo $PWD; echo $OLDPWD; cd d ' '; pwd; echo $PWD; echo $OLDPWD", setup="mkdir d", hook=linux_discard) test("echo $PWD; echo $OLDPWD; cd $HOME; pwd; echo $PWD; echo $OLDPWD", exports={"HOME": os.getenv("HOME")}) test("echo $PWD; echo $OLDPWD; cd /; pwd; echo $PWD; echo $OLDPWD") test("echo $PWD; echo $OLDPWD; cd /.; pwd; echo $PWD; echo $OLDPWD") diff --git a/src/suites/flow.py b/src/suites/flow.py index eb9eb30..ac4aec0 100644 --- a/src/suites/flow.py +++ b/src/suites/flow.py @@ -6,7 +6,7 @@ # By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2020/07/15 18:24:52 by charles #+# #+# # -# Updated: 2020/10/09 08:51:57 by cacharle ### ########.fr # +# Updated: 2020/10/09 20:14:40 by charles ### ########.fr # # # # ############################################################################ # @@ -205,80 +205,82 @@ def suite_parenthesis(test): test("(export A=a; echo $A); echo $A") test("(cat /etc/shells) | (cat -e) | (cat -e) | (cat -e)") test("(cat /etc/shells) | (cat -e) | (cat -e) | (cat -e) | (cat -e) | (cat -e) | (cat -e) | (cat -e) | (cat -e)") - test("(cat /etc/shells | (cat -e) | (cat -e) | (cat -e)", hook=[error_line0, error_eof_to_expected_token]) - test("(cat /etc/shells) | (cat -e) | (cat -e | (cat -e)", hook=[error_line0, error_eof_to_expected_token]) + test("(cat /etc/shells | (cat -e) | (cat -e) | (cat -e)", + hook=[error_line0, error_eof_to_expected_token], hook_status=platform_status(2, 1)) + test("(cat /etc/shells) | (cat -e) | (cat -e | (cat -e)", + hook=[error_line0, error_eof_to_expected_token], hook_status=platform_status(2, 1)) @suite() def suite_syntax_error(test): """ separator syntax error test """ - test("< | a", hook=error_line0) - test("> | a", hook=error_line0) - test(">> | a", hook=error_line0) - test("< ; a", hook=error_line0) - test("> ; a", hook=error_line0) - test(">> ; a", hook=error_line0) - test("; | a", hook=error_line0) - test("; < a", hook=error_line0) - test("; > a", hook=error_line0) - test("; >> a", hook=error_line0) - test("| ; a", hook=error_line0) - test("| < a", hook=error_line0) - test("| > a", hook=error_line0) - test("| >> a", hook=error_line0) + test("< | a", hook=error_line0, hook_status=platform_status(2, 1)) + test("> | a", hook=error_line0, hook_status=platform_status(2, 1)) + test(">> | a", hook=error_line0, hook_status=platform_status(2, 1)) + test("< ; a", hook=error_line0, hook_status=platform_status(2, 1)) + test("> ; a", hook=error_line0, hook_status=platform_status(2, 1)) + test(">> ; a", hook=error_line0, hook_status=platform_status(2, 1)) + test("; | a", hook=error_line0, hook_status=platform_status(2, 1)) + test("; < a", hook=error_line0, hook_status=platform_status(2, 1)) + test("; > a", hook=error_line0, hook_status=platform_status(2, 1)) + test("; >> a", hook=error_line0, hook_status=platform_status(2, 1)) + test("| ; a", hook=error_line0, hook_status=platform_status(2, 1)) + test("| < a", hook=error_line0, hook_status=platform_status(2, 1)) + test("| > a", hook=error_line0, hook_status=platform_status(2, 1)) + test("| >> a", hook=error_line0, hook_status=platform_status(2, 1)) test("> a ; a", hook=error_line0) test("< a ; a", hook=error_line0) test(">> a ; a", hook=error_line0) - test(config.LOREM + " > >" + config.LOREM, hook=error_line0) - test(config.LOREM + " < <" + config.LOREM, hook=error_line0) - test(config.LOREM + " ; |" + config.LOREM, hook=error_line0) - test(config.LOREM + " | ;" + config.LOREM, hook=error_line0) + test(config.LOREM + " > >" + config.LOREM, hook=error_line0, hook_status=platform_status(2, 1)) + test(config.LOREM + " < <" + config.LOREM, hook=error_line0, hook_status=platform_status(2, 1)) + test(config.LOREM + " ; |" + config.LOREM, hook=error_line0, hook_status=platform_status(2, 1)) + test(config.LOREM + " | ;" + config.LOREM, hook=error_line0, hook_status=platform_status(2, 1)) @suite(bonus=True) def suite_syntax_error_bonus(test): """ separator syntax error bonus test """ - test("< && a", hook=error_line0) - test("> && a", hook=error_line0) - test(">> && a", hook=error_line0) - test("< || a", hook=error_line0) - test("> || a", hook=error_line0) - test(">> || a", hook=error_line0) - test("< ( a", hook=error_line0) - test("> ( a", hook=error_line0) - test(">> ( a", hook=error_line0) - test("< ) a", hook=error_line0) - test("> ) a", hook=error_line0) - test(">> ) a", hook=error_line0) - test("&& < a", hook=error_line0) - test("&& > a", hook=error_line0) - test("&& >> a", hook=error_line0) - test("&& || a", hook=error_line0) - test("&& ( a", hook=error_line0) - test("&& ) a", hook=error_line0) - test("|| < a", hook=error_line0) - test("|| > a", hook=error_line0) - test("|| >> a", hook=error_line0) - test("|| && a", hook=error_line0) - test("|| ( a", hook=error_line0) - test("|| ) a", hook=error_line0) - test("( < a", hook=[error_line0, error_eof_to_expected_token]) - test("( > a", hook=[error_line0, error_eof_to_expected_token]) - test("( >> a", hook=[error_line0, error_eof_to_expected_token]) - test(") < a", hook=error_line0) - test(") > a", hook=error_line0) - test(") >> a", hook=error_line0) - test("( && a", hook=error_line0) - test("( || a", hook=error_line0) - test("( ) a", hook=error_line0) - test(") && a", hook=error_line0) - test(") || a", hook=error_line0) - test(") ( a", hook=error_line0) - test("() a", hook=error_line0) - test("( a", hook=[error_line0, error_eof_to_expected_token]) - test(") a", hook=error_line0) - test(config.LOREM + " && &&" + config.LOREM, hook=error_line0) - test(config.LOREM + " || ||" + config.LOREM, hook=error_line0) - test(config.LOREM + " ( (" + config.LOREM, hook=error_line0) - test(config.LOREM + " ) )" + config.LOREM, hook=error_line0) - test("(); () ;() ;() ;() ;() ;() ;() ;() ;() ;a", hook=error_line0) + test("< && a", hook=error_line0, hook_status=platform_status(2, 1)) + test("> && a", hook=error_line0, hook_status=platform_status(2, 1)) + test(">> && a", hook=error_line0, hook_status=platform_status(2, 1)) + test("< || a", hook=error_line0, hook_status=platform_status(2, 1)) + test("> || a", hook=error_line0, hook_status=platform_status(2, 1)) + test(">> || a", hook=error_line0, hook_status=platform_status(2, 1)) + test("< ( a", hook=error_line0, hook_status=platform_status(2, 1)) + test("> ( a", hook=error_line0, hook_status=platform_status(2, 1)) + test(">> ( a", hook=error_line0, hook_status=platform_status(2, 1)) + test("< ) a", hook=error_line0, hook_status=platform_status(2, 1)) + test("> ) a", hook=error_line0, hook_status=platform_status(2, 1)) + test(">> ) a", hook=error_line0, hook_status=platform_status(2, 1)) + test("&& < a", hook=error_line0, hook_status=platform_status(2, 1)) + test("&& > a", hook=error_line0, hook_status=platform_status(2, 1)) + test("&& >> a", hook=error_line0, hook_status=platform_status(2, 1)) + test("&& || a", hook=error_line0, hook_status=platform_status(2, 1)) + test("&& ( a", hook=error_line0, hook_status=platform_status(2, 1)) + test("&& ) a", hook=error_line0, hook_status=platform_status(2, 1)) + test("|| < a", hook=error_line0, hook_status=platform_status(2, 1)) + test("|| > a", hook=error_line0, hook_status=platform_status(2, 1)) + test("|| >> a", hook=error_line0, hook_status=platform_status(2, 1)) + test("|| && a", hook=error_line0, hook_status=platform_status(2, 1)) + test("|| ( a", hook=error_line0, hook_status=platform_status(2, 1)) + test("|| ) a", hook=error_line0, hook_status=platform_status(2, 1)) + test("( < a", hook=[error_line0, error_eof_to_expected_token], hook_status=platform_status(2, 1)) + test("( > a", hook=[error_line0, error_eof_to_expected_token], hook_status=platform_status(2, 1)) + test("( >> a", hook=[error_line0, error_eof_to_expected_token], hook_status=platform_status(2, 1)) + test(") < a", hook=error_line0, hook_status=platform_status(2, 1)) + test(") > a", hook=error_line0, hook_status=platform_status(2, 1)) + test(") >> a", hook=error_line0, hook_status=platform_status(2, 1)) + test("( && a", hook=error_line0, hook_status=platform_status(2, 1)) + test("( || a", hook=error_line0, hook_status=platform_status(2, 1)) + test("( ) a", hook=error_line0, hook_status=platform_status(2, 1)) + test(") && a", hook=error_line0, hook_status=platform_status(2, 1)) + test(") || a", hook=error_line0, hook_status=platform_status(2, 1)) + test(") ( a", hook=error_line0, hook_status=platform_status(2, 1)) + test("() a", hook=error_line0, hook_status=platform_status(2, 1)) + test("( a", hook=[error_line0, error_eof_to_expected_token], hook_status=platform_status(2, 1)) + test(") a", hook=error_line0, hook_status=platform_status(2, 1)) + test(config.LOREM + " && &&" + config.LOREM, hook=error_line0, hook_status=platform_status(2, 1)) + test(config.LOREM + " || ||" + config.LOREM, hook=error_line0, hook_status=platform_status(2, 1)) + test(config.LOREM + " ( (" + config.LOREM, hook=error_line0, hook_status=platform_status(2, 1)) + test(config.LOREM + " ) )" + config.LOREM, hook=error_line0, hook_status=platform_status(2, 1)) + test("(); () ;() ;() ;() ;() ;() ;() ;() ;() ;a", hook=error_line0, hook_status=platform_status(2, 1)) |
