aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorGravatar BanceDev 2024-09-12 09:13:01 -0400
committerGravatar BanceDev 2024-09-12 09:13:01 -0400
commit2870751be3f8874378f1a383e6d264b87195580d (patch)
treef4a2d13121723140cd44bebc69b01c7db48a6c21 /test
parentupdated buffer size for date to account for compiler warning (diff)
added e2e testing to cover basic shell functionality
Diffstat (limited to 'test')
-rw-r--r--test/args_test.lua28
-rw-r--r--test/env_test.lua30
-rw-r--r--test/filecheck_test.lua46
-rw-r--r--test/history_test.lua38
-rw-r--r--test/pipes_test.lua25
-rw-r--r--test/run_tests.lua35
6 files changed, 202 insertions, 0 deletions
diff --git a/test/args_test.lua b/test/args_test.lua
new file mode 100644
index 0000000..d14fd73
--- /dev/null
+++ b/test/args_test.lua
@@ -0,0 +1,28 @@
+--[[
+Copyright (c) 2024, Lance Borden
+All rights reserved.
+
+This software is licensed under the BSD 3-Clause License.
+You may obtain a copy of the license at:
+https://opensource.org/licenses/BSD-3-Clause
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted under the conditions stated in the BSD 3-Clause
+License.
+
+THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTIES,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+]]
+
+if args == nil then
+ print("args test failed, no args found ❌\n")
+ return
+else
+ print("args:")
+ for i = 1, #args do
+ print(args[i])
+ end
+end
+
+print("args test passed ✅\n")
diff --git a/test/env_test.lua b/test/env_test.lua
new file mode 100644
index 0000000..972a730
--- /dev/null
+++ b/test/env_test.lua
@@ -0,0 +1,30 @@
+--[[
+Copyright (c) 2024, Lance Borden
+All rights reserved.
+
+This software is licensed under the BSD 3-Clause License.
+You may obtain a copy of the license at:
+https://opensource.org/licenses/BSD-3-Clause
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted under the conditions stated in the BSD 3-Clause
+License.
+
+THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTIES,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+]]
+
+lush.setenv("ENVTEST", "envtest")
+if lush.getenv("ENVTEST") == "envtest" then
+ print("setenv test passed ✅\n")
+else
+ print("setenv test failed ❌\n")
+end
+
+lush.unsetenv("ENVTEST")
+if lush.getenv("ENVTEST") == nil then
+ print("unsetenv test passed ✅\n")
+else
+ print("unsetenv test failed ❌\n")
+end
diff --git a/test/filecheck_test.lua b/test/filecheck_test.lua
new file mode 100644
index 0000000..af0c130
--- /dev/null
+++ b/test/filecheck_test.lua
@@ -0,0 +1,46 @@
+--[[
+Copyright (c) 2024, Lance Borden
+All rights reserved.
+
+This software is licensed under the BSD 3-Clause License.
+You may obtain a copy of the license at:
+https://opensource.org/licenses/BSD-3-Clause
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted under the conditions stated in the BSD 3-Clause
+License.
+
+THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTIES,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+]]
+
+if lush.exists("~/.lush/scripts/example.lua") then
+ print("exists test passed ✅\n")
+else
+ print("exists test failed ❌\n")
+end
+
+if lush.isFile("~/.lush/scripts/example.lua") then
+ print("isFile test passed ✅\n")
+else
+ print("isFile test failed ❌\n")
+end
+
+if not lush.isDirectory("~/.lush/scripts/example.lua") then
+ print("isDirectory test passed ✅\n")
+else
+ print("isDirectory test failed ❌\n")
+end
+
+if lush.isReadable("~/.lush/scripts/example.lua") then
+ print("isReadable test passed ✅\n")
+else
+ print("isReadable test failed ❌\n")
+end
+
+if lush.isWriteable("~/.lush/scripts/example.lua") then
+ print("isWriteable test passed ✅\n")
+else
+ print("isWriteable test failed ❌\n")
+end
diff --git a/test/history_test.lua b/test/history_test.lua
new file mode 100644
index 0000000..5cf607a
--- /dev/null
+++ b/test/history_test.lua
@@ -0,0 +1,38 @@
+--[[
+Copyright (c) 2024, Lance Borden
+All rights reserved.
+
+This software is licensed under the BSD 3-Clause License.
+You may obtain a copy of the license at:
+https://opensource.org/licenses/BSD-3-Clause
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted under the conditions stated in the BSD 3-Clause
+License.
+
+THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTIES,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+]]
+
+if lush.lastHistory() == "history_test.lua" then
+ print("lastHistory test passed ✅\n")
+else
+ print("lastHistory test failed ❌\n")
+end
+
+if lush.getHistory(1) == lush.lastHistory() then
+ -- ensure that piping history is stored correctly
+ if lush.getHistory(3) == 'cat "example.lua" | grep "hello" | sort | uniq' then
+ -- ensure args history is stored correctly
+ if lush.getHistory(5) == "args_test.lua testarg1 testarg2 testarg3" then
+ print("getHistory test passed ✅\n")
+ else
+ print("getHistory test failed at args history ❌\n")
+ end
+ else
+ print("getHistory test failed at piping history ❌\n")
+ end
+else
+ print("getHistory test failed at lastHistory ❌\n")
+end
diff --git a/test/pipes_test.lua b/test/pipes_test.lua
new file mode 100644
index 0000000..46000e3
--- /dev/null
+++ b/test/pipes_test.lua
@@ -0,0 +1,25 @@
+--[[
+Copyright (c) 2024, Lance Borden
+All rights reserved.
+
+This software is licensed under the BSD 3-Clause License.
+You may obtain a copy of the license at:
+https://opensource.org/licenses/BSD-3-Clause
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted under the conditions stated in the BSD 3-Clause
+License.
+
+THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTIES,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+]]
+
+local cwd = lush.getcwd()
+lush.cd("~/.lush/scripts")
+if lush.exec('cat "example.lua" | grep "hello" | sort | uniq') then
+ print("piping test passed ✅\n")
+else
+ print("piping test failed ❌\n")
+end
+lush.cd(cwd)
diff --git a/test/run_tests.lua b/test/run_tests.lua
new file mode 100644
index 0000000..e861326
--- /dev/null
+++ b/test/run_tests.lua
@@ -0,0 +1,35 @@
+--[[
+Copyright (c) 2024, Lance Borden
+All rights reserved.
+
+This software is licensed under the BSD 3-Clause License.
+You may obtain a copy of the license at:
+https://opensource.org/licenses/BSD-3-Clause
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted under the conditions stated in the BSD 3-Clause
+License.
+
+THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTIES,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+]]
+
+print("Starting Lunar Shell End-to-End Testing...\n")
+print("Entering Debug Mode...")
+lush.debug(true)
+
+print("Testing Args...")
+lush.exec("args_test.lua testarg1 testarg2 testarg3")
+
+print("\nTesting Piping...")
+lush.exec("pipes_test.lua")
+
+print("\nTesting File Checks...")
+lush.exec("filecheck_test.lua")
+
+print("\nTesting History...")
+lush.exec("history_test.lua")
+
+print("\nTesting Environment Variables...")
+lush.exec("env_test.lua")