Open main menu
Posts
Gists
Guilds
Users
Decipher
Docs
Open user menu
Log in
Sign up
Create a new gist
Posts
Gists
Guilds
Users
Decipher
Docs
Files
minitest.src
manager.src
minitest.src
M
i
niManager = {}
MiniManager.shell = get_shell
MiniManager.computer = MiniManager.shell.host_computer
MiniManager.running_test = null
MiniManager.work_path = home_dir+"/.tmp"
MiniManager.stats = ["assertions", "failures", "errors"]
MiniManager.assertions = 0
MiniManager.failures = 0
MiniM
anager.
errors = 0
i
mport_code("/home/guest/minitest/libs/listLib.src")
import_code("/home/guest/minitest/m
anager.
src")
MiniManager.in
s
talation_path = "/home/guest/minitest"
MiniManager.prepend = []
MiniManager.append = []
s
hell = get_shell
computer = shell.host_computer
M
i
niManager.prepend.push("import_code("""+MiniManager.instalation_path+"/libs/listLib.src"")")
MiniManager.prepend.push("import_code("""+MiniManager.instalation_path+"/manager.src"")")
MiniManager.prepend.push("import_code("""+MiniManager.instalation_path+"/testApi.src"")")
MiniManager.append.push("import_code("""+MiniManager.instalation_path+"/runner.src"")
")
i
f params.len == 0 then exit("usage: minitest test
")
M
i
niManager.test_files = function()
self.set_stats_files
for file_path in self.files_to_run
self.test_file(file_path)
end for
end function
MiniManager.test_file = function(file_path)
test_src_path = home_dir+"/.tmp/test.src"
test_src = self.computer.File(test_src_path)
if test_src != null then
test_src.delete
self.computer.touch(home_dir+"/.tmp",
"test
.src")
test_src = self.computer.File(test_src_path)
end if
bin_
file
_path = home_dir+"/.tmp/test"
bin_file = self.
computer.File(
bin_file_path)
if bin_file != null then
bin_file.delete
end if
code = self.computer.File(file
_path).get_
content
test_code = self.prepend.join(char(10)) + char(10) + code + char(10) + self.append.join(char(10))
test_src.set_content(test_code)
i
f params[0] ==
"test
" then
file
s =
computer.File(
current
_path).get_
files
test_build = self.shell.build(test_src_path, home_dir+"/.tmp")
if test_build.len != 0 then
print(char(10)+"<color=red>compilation error on:</color>"+char(10)+"<color=red>"+
file
_path+"</color>")
print(test_build)
self.increment_stat("errors")
return
end if
self.shell.launch(bin_file_path)
end function
MiniManager.files_to_run = function()
return self.computer.File(home_dir+"/.tmp/files_to_run.txt").get_content.split(char(10))
end function
MiniManager.
set_files_to_run = function(
files
)
self.computer.touch(home_dir+"/.tmp", "files_to_run.txt")
content = ""
for file in files
content = content + file.path + char(10)
end for
content = content[0:-1] // remove the last line break
self.computer.File(home_dir+"/.tmp/files_to_run.txt").set_content(content)
end function
MiniManager.
s
et_stat
s_files = function()
for stat in self.stats
self.computer.touch(self.work_path, stat)
file = self.computer.File(self.work_path+"/"+stat)
stat_value = file.get_content
if stat_value != "0" then
file.set_content("0")
end if
end for
end function
MiniManager.
incremen
t_stat
= function(stat)
file = self.computer.File(self.work_path+"/"+stat)
stat_value = file.get_content.to_int
file.set_content(stat_value + 1)
end function
MiniManager.get_stat
= function(stat)
file = self.computer.File(self.work_path+"/"+stat)
stat_value = file.get_content.to_int
return stat_value
end function
MiniManager.set_running_test = function(test)
self.running_test = test
end
function
MiniManager.set_files_to_run(
file
s)
start_time = time
MiniManager.
test_
files
end_time = time
print("Finished in " + (end_time - start_time))
print(
MiniManager.
g
et_stat
("assertions") + " assertions, " +
MiniManager.
ge
t_stat
("failures") + " failures, " +
MiniManager.get_stat
("errors") + " errors")
end
if
manager.src
MiniManager = {}
MiniManager.shell = get_shell
MiniManager.computer = MiniManager.shell.host_computer
MiniManager.running_test = null
MiniManager.work_path = home_dir+"/.tmp"
MiniManager.stats = ["assertions", "failures", "errors"]
MiniManager.assertions = 0
MiniManager.failures = 0
MiniManager.errors = 0
MiniManager.instalation_path = "/home/guest/minitest"
MiniManager.prepend = []
MiniManager.append = []
MiniManager.prepend.push("import_code("""+MiniManager.instalation_path+"/libs/listLib.src"")")
MiniManager.prepend.push("import_code("""+MiniManager.instalation_path+"/manager.src"")")
MiniManager.prepend.push("import_code("""+MiniManager.instalation_path+"/testApi.src"")")
MiniManager.append.push("import_code("""+MiniManager.instalation_path+"/runner.src"")")
MiniManager.test_files = function()
self.set_stats_files
for file_path in self.files_to_run
self.test_file(file_path)
end for
end function
MiniManager.test_file = function(file_path)
test_src_path = home_dir+"/.tmp/test.src"
test_src = self.computer.File(test_src_path)
if test_src != null then
test_src.delete
self.computer.touch(home_dir+"/.tmp", "test.src")
test_src = self.computer.File(test_src_path)
end if
self.computer.touch(home_dir+"/.tmp", "test.src")
test_src = self.computer.File(test_src_path)
bin_file_path = home_dir+"/.tmp/test"
bin_file = self.computer.File(bin_file_path)
if bin_file != null then
bin_file.delete
end if
code = self.computer.File(file_path).get_content
test_code = self.prepend.join(char(10)) + char(10) + code + char(10) + self.append.join(char(10))
test_src.set_content(test_code)
test_build = self.shell.build(test_src_path, home_dir+"/.tmp")
if test_build.len != 0 then
print(char(10)+"<color=red>compilation error on:</color>"+char(10)+"<color=red>"+file_path+"</color>")
print(test_build)
self.increment_stat("errors")
return
end if
self.shell.launch(bin_file_path)
end function
MiniManager.files_to_run = function()
return self.computer.File(home_dir+"/.tmp/files_to_run.txt").get_content.split(char(10))
end function
MiniManager.set_files_to_run = function(files)
self.computer.touch(home_dir+"/.tmp", "files_to_run.txt")
content = ""
for file in files
content = content + file.path + char(10)
end for
content = content[0:-1] // remove the last line break
self.computer.File(home_dir+"/.tmp/files_to_run.txt").set_content(content)
end function
MiniManager.set_stats_files = function()
for stat in self.stats
self.computer.touch(self.work_path, stat)
file = self.computer.File(self.work_path+"/"+stat)
stat_value = file.get_content
if stat_value != "0" then
file.set_content("0")
end if
end for
end function
MiniManager.increment_stat = function(stat)
file = self.computer.File(self.work_path+"/"+stat)
stat_value = file.get_content.to_int
file.set_content(stat_value + 1)
end function
MiniManager.get_stat = function(stat)
file = self.computer.File(self.work_path+"/"+stat)
stat_value = file.get_content.to_int
return stat_value
end function
MiniManager.set_running_test = function(test)
self.running_test = test
end function