aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-10-09 20:32:46 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-10-09 20:32:46 +0200
commit9fe518540848f6c273fa749a06437aa7bb7459ff (patch)
treebfe562cbdffd69c764305567af7e33b9fd50ffa5
parent9ce56e51327c1b8eb4ba09a3521ff9ff4079d28f (diff)
downloadminishell_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
-rw-r--r--src/hooks.py9
-rw-r--r--src/suites/builtin.py13
-rw-r--r--src/suites/flow.py132
3 files changed, 82 insertions, 72 deletions
diff --git a/src/hooks.py b/src/hooks.py
index 58cc7a0..f1492d7 100644
--- a/src/hooks.py
+++ b/src/hooks.py
@@ -6,7 +6,7 @@
# By: charles <me@cacharle.xyz> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2020/09/11 16:10:20 by charles #+# #+# #
-# Updated: 2020/10/08 17:32:12 by cacharle ### ########.fr #
+# Updated: 2020/10/09 20:27:30 by charles ### ########.fr #
# #
# ############################################################################ #
@@ -106,3 +106,10 @@ def error_eof_to_expected_token(output):
"-c: line 1: syntax error: unexpected end of file",
"syntax error expected token"
)
+
+
+def linux_discard(output):
+ if config.PLATFORM == "Linux":
+ return "DISCARDED BY MINISHELL TEST"
+ else:
+ return output
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))