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 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