aboutsummaryrefslogtreecommitdiff
path: root/src/suites/operation.py
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-09-11 12:33:34 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-09-11 12:33:34 +0200
commit46ba2708f83bf46186c33bf84975d39e87f467c1 (patch)
tree8275c80bba98d63e81e3af9a1df8be62e0419003 /src/suites/operation.py
parentc0b1a90cf9c52a0c9b1623ac695516031d5ccdba (diff)
downloadminishell_test-46ba2708f83bf46186c33bf84975d39e87f467c1.tar.gz
minishell_test-46ba2708f83bf46186c33bf84975d39e87f467c1.tar.bz2
minishell_test-46ba2708f83bf46186c33bf84975d39e87f467c1.zip
Refactoring files, splited test.py and suite.py in packages
Diffstat (limited to 'src/suites/operation.py')
-rw-r--r--src/suites/operation.py105
1 files changed, 105 insertions, 0 deletions
diff --git a/src/suites/operation.py b/src/suites/operation.py
new file mode 100644
index 0000000..3c89589
--- /dev/null
+++ b/src/suites/operation.py
@@ -0,0 +1,105 @@
+# ############################################################################ #
+# #
+# ::: :::::::: #
+# operation.py :+: :+: :+: #
+# +:+ +:+ +:+ #
+# By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ #
+# +#+#+#+#+#+ +#+ #
+# Created: 2020/07/15 18:24:52 by charles #+# #+# #
+# Updated: 2020/07/19 10:23:22 by charles ### ########.fr #
+# #
+# ############################################################################ #
+
+from suite import suite
+
+@suite
+def suite_end(test):
+ test("echo bonjour; echo je")
+ test("echo bonjour ;echo je")
+ test("echo bonjour ; echo je")
+ test("echo bonjour;")
+ test("echo; ")
+ test("echo ; ")
+ test("echo ;")
+ test("; echo")
+ test(" ;echo")
+ test(" ; echo")
+ test("echo a; echo b; echo c; echo d; echo e; echo f; echo g; echo h; echo i;" +
+ "echo j; echo k; echo l; echo m; echo c; echo c; echo c; echo c; echo c;" +
+ "echo c; echo c; echo c; echo v; echo w; echo x; echo y; echo z")
+ test("echo a ; echo b; echo c ;echo d ; echo e ;echo f; echo g ;echo h; echo i;" +
+ "echo j ; echo k; echo l; echo m; echo c ; echo c; echo c ; echo c; echo c;" +
+ "echo c; echo c ; echo c; echo v ; echo w; echo x; echo y ; echo z")
+
+ test("ls doesnotexists ; echo bonjour")
+ test("ls doesnotexists; echo bonjour")
+ test("echo bonjour; ls doesnotexists")
+
+@suite
+def suite_and(test):
+ test("echo bonjour&& echo je")
+ test("echo bonjour &&echo je")
+ test("echo bonjour && echo je")
+ test("echo bonjour&&")
+ # test("echo&& ")
+ # test("echo && ")
+ # test("echo &&")
+ test("&&echo")
+ test("&& echo")
+ test(" && echo")
+ test("echo a&& echo b&& echo c&& echo d&& echo e&& echo f&& echo g&& echo h&& echo i&&" +
+ "echo j&& echo k&& echo l&& echo m&& echo c&& echo c&& echo c&& echo c&& echo c&&" +
+ "echo c&& echo c&& echo c&& echo v&& echo w&& echo x&& echo y&& echo z")
+ test("echo a && echo b&& echo c &&echo d && echo e &&echo f&& echo g &&echo h&& echo i&&" +
+ "echo j && echo k&& echo l&& echo m&& echo c && echo c&& echo c && echo c&& echo c&&" +
+ "echo c&& echo c && echo c&& echo v && echo w&& echo x&& echo y && echo z")
+
+ test("ls doesnotexists && echo bonjour")
+ test("ls doesnotexists&& echo bonjour")
+ test("echo bonjour&& ls doesnotexists")
+
+@suite
+def suite_or(test):
+ test("echo bonjour|| echo je")
+ test("echo bonjour ||echo je")
+ test("echo bonjour || echo je")
+ test("echo bonjour||")
+ # test("echo|| ")
+ # test("echo || ")
+ # test("echo ||")
+ test("||echo")
+ test("|| echo")
+ test(" || echo")
+ test("echo a|| echo b|| echo c|| echo d|| echo e|| echo f|| echo g|| echo h|| echo i||" +
+ "echo j|| echo k|| echo l|| echo m|| echo c|| echo c|| echo c|| echo c|| echo c||" +
+ "echo c|| echo c|| echo c|| echo v|| echo w|| echo x|| echo y|| echo z")
+ test("echo a || echo b|| echo c ||echo d || echo e ||echo f|| echo g ||echo h|| echo i||" +
+ "echo j || echo k|| echo l|| echo m|| echo c || echo c|| echo c || echo c|| echo c||" +
+ "echo c|| echo c || echo c|| echo v || echo w|| echo x|| echo y || echo z")
+
+ test("ls doesnotexists || echo bonjour")
+ test("ls doesnotexists|| echo bonjour")
+ test("echo bonjour|| ls doesnotexists")
+
+@suite
+def suite_pipe(test):
+ test("echo bonjour | cat")
+ test("echo bonjour | cat -e")
+ test("ls | cat -e", setup="touch a b c d; mkdir m1 m2 m3")
+ test("ls -l | cat -e", setup="touch a b c d; mkdir m1 m2 m3")
+ test("ls -l | cat -e | cat | cat | cat", setup="touch a b c d; mkdir m1 m2 m3")
+ test("ls -l | cat -e | cat -e | cat -e | cat -e", setup="touch a b c d; mkdir m1 m2 m3")
+ test("ls -l | cat -e < a", setup="touch a b c d; mkdir m1 m2 m3; echo bonjour > a")
+
+ # TODO special test for potential segfault
+ # test("echo|")
+ # test("echo |")
+ # test("echo | ")
+ test("|cat")
+ test("| cat")
+ test(" | cat")
+
+ test("echo a | export A=a; echo $A")
+ test("export A=a | cat; echo $A")
+ test("echo a | A=a; echo $A")
+ test("A=a | cat; echo $A")