aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-06-17 14:04:56 +0200
committerCharles <sircharlesaze@gmail.com>2020-06-17 14:04:56 +0200
commita5a7a2ae5132b2cc682fe8c2496680bf748bf9b3 (patch)
treef8f546fb3b73886af07a631d20e45e7d767e6095
parentf36a8ccb91cb71c1e4f15dc12cdecf3167eb1420 (diff)
downloadminishell_test-a5a7a2ae5132b2cc682fe8c2496680bf748bf9b3.tar.gz
minishell_test-a5a7a2ae5132b2cc682fe8c2496680bf748bf9b3.tar.bz2
minishell_test-a5a7a2ae5132b2cc682fe8c2496680bf748bf9b3.zip
Added builtin test (false positive until separator are implemented
-rw-r--r--config.py2
-rwxr-xr-xmain.py3
-rw-r--r--suites/__init__.py7
-rw-r--r--suites/builtin.py94
-rw-r--r--suites/suites.py (renamed from suites.py)12
-rw-r--r--test.py2
6 files changed, 105 insertions, 15 deletions
diff --git a/config.py b/config.py
index 7a0f083..86cc9a4 100644
--- a/config.py
+++ b/config.py
@@ -21,7 +21,7 @@ SANDBOX_PATH = "sandbox"
EXECUTABLES_PATH = "./bin"
# commands available in test"
-AVAILABLE_COMMANDS = ["cat", "touch"]
+AVAILABLE_COMMANDS = ["cat", "touch", "env"]
# $PATH environment variable passed to the shell
PATH_VARIABLE = os.path.abspath(EXECUTABLES_PATH)
diff --git a/main.py b/main.py
index 8242072..9a80b6d 100755
--- a/main.py
+++ b/main.py
@@ -7,7 +7,8 @@ import shutil
import config
from args import parse_args
from suite import Suite
-import suites
+import suites.builtin
+import suites.suites
def main():
if not os.path.exists(config.EXECUTABLES_PATH):
diff --git a/suites/__init__.py b/suites/__init__.py
new file mode 100644
index 0000000..736c3c5
--- /dev/null
+++ b/suites/__init__.py
@@ -0,0 +1,7 @@
+import os
+import glob
+
+modules = glob.glob(os.path.join(os.path.dirname(__file__), "*.py"))
+__all__ = [os.path.basename(f)[:-3] for f in modules if os.path.isfile(f) and not f.endswith("__init__.py")]
+
+print(__all__)
diff --git a/suites/builtin.py b/suites/builtin.py
new file mode 100644
index 0000000..1211363
--- /dev/null
+++ b/suites/builtin.py
@@ -0,0 +1,94 @@
+import config
+from suite import suite
+
+@suite
+def suite_echo(test):
+ test("echo bonjour")
+ test("echo lalalala lalalalal alalalalal alalalala")
+ test("echo lalalala lalalalal alalalalal alalalala")
+ test("echo " + config.LOREM)
+
+ test("echo -n bonjour")
+ test("echo -n lalalala lalalalal alalalalal alalalala")
+ test("echo -n lalalala lalalalal alalalalal alalalala")
+ test("echo -n " + config.LOREM)
+
+@suite
+def suite_export(test):
+ test("export A=a")
+ test("export A=a B=b C=c")
+ test("export A=a B=b C=c D=d E=e F=f G=g H=h I=i J=j K=k L=l" +
+ "M=m N=n O=o P=p Q=q R=r S=s T=t U=u V=v W=w X=x Y=y Z=z")
+ test("export BONJOURJESUIS=a")
+ test("export bonjourjesuis=a")
+ test("export bonjour_je_suis=a")
+ test("export BONJOURJESUIS1=a")
+ test("export bO_nJq123o__1ju_je3234sui__a=a")
+ test("export a0123456789=a")
+ test("export abcdefghijklmnopqrstuvwxyz=a")
+ test("export ABCDEFGHIJKLMNOPQRSTUVWXYZ=a")
+ test("export __________________________=a")
+ test("export _bonjour_=a")
+ test("export _=a")
+ test("export 1=a")
+ test("export BONJOURJESUIS =a")
+ test("export BONJOURJESUIS= a")
+ test(r"export BONJOUR\\JESUIS=a")
+ test(r"export BONJOUR\'JESUIS=a")
+ test(r'export BONJOUR\"JESUIS=a')
+ test(r"export BONJOUR\$JESUIS=a")
+ test(r"export BONJOUR\&JESUIS=a")
+ test(r"export BONJOUR\|JESUIS=a")
+ test(r"export BONJOUR\;JESUIS=a")
+ test(r"export BONJOUR\_JESUIS=a")
+ test(r"export BONJOUR\0JESUIS=a")
+ test(r"export \B\O\N\ \ \ \ \ \ \ JOURJESUIS=a")
+ test(r"export A=\B\O\N\ \ \ \ \ \ \ JOURJESUIS")
+ test(r"export A='bonjour je suis charles'")
+ test(r'export A="bonjour je suis charles"')
+ test(r"export A==a")
+ test(r"export A===a")
+ test(r"export A====a")
+ test(r"export A=====a")
+ test(r"export A======a")
+ test(r"export A=a=a=a=a=a")
+
+@suite
+def suite_cd(test):
+ test("cd .");
+ test("cd ..");
+ test("cd ../..");
+ test("cd ../../..");
+ test("cd ../../../..");
+ test("cd ../../../../..");
+ test("cd ../../../../../..");
+ test("cd /");
+ test("cd /etc");
+ test("cd $HOME");
+ test("cd ~");
+
+@suite
+def suite_unset(test):
+ test("unset A", setup="export A=a")
+
+@suite
+def suite_pwd(test):
+ test("pwd")
+ test("pwd", setup="cd ..")
+ test("pwd", setup="cd ../..")
+ test("pwd", setup="cd ../../..")
+ test("pwd", setup="cd /")
+ test("pwd", setup="cd $HOME")
+
+@suite
+def suite_env(test):
+ test("env")
+ test("env", setup="export A=a")
+ test("env", setup="export A=a B=b C=c")
+
+@suite
+def suite_exit(test):
+ test("exit")
+ test("exit 1")
+ test("exit 2")
+ test("exit 3")
diff --git a/suites.py b/suites/suites.py
index b49dd28..56329e5 100644
--- a/suites.py
+++ b/suites/suites.py
@@ -18,18 +18,6 @@ def suite_quote(test):
test('echo "\\\\"')
@suite
-def suite_echo(test):
- test("echo bonjour")
- test("echo lalalala lalalalal alalalalal alalalala")
- test("echo lalalala lalalalal alalalalal alalalala")
- test("echo " + config.LOREM)
-
- test("echo -n bonjour")
- test("echo -n lalalala lalalalal alalalalal alalalala")
- test("echo -n lalalala lalalalal alalalalal alalalala")
- test("echo -n " + config.LOREM)
-
-@suite
def suite_redirection(test):
test("echo bonjour > test", setup="", files=["test"])
test("echo > test bonjour", setup="", files=["test"])
diff --git a/test.py b/test.py
index cb502d5..7b5dc2e 100644
--- a/test.py
+++ b/test.py
@@ -6,7 +6,7 @@
# By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2020/06/16 21:48:50 by charles #+# #+# #
-# Updated: 2020/06/17 11:22:22 by charles ### ########.fr #
+# Updated: 2020/06/17 13:28:44 by charles ### ########.fr #
# #
# ############################################################################ #