Compare commits
4 Commits
main
...
small_impr
| Author | SHA1 | Date | |
|---|---|---|---|
| 811e3d356e | |||
| 3fb982b057 | |||
| 53553dc1fa | |||
| 717727bf5a |
@@ -9,9 +9,9 @@ This element is of the following form:
|
||||
- let:
|
||||
name: Let Item
|
||||
values:
|
||||
key1: value1
|
||||
key2: value2
|
||||
key3: <| $(variable)[$(loop_index)] |>
|
||||
- key1: value1
|
||||
- key2: value2
|
||||
- key3: <| $(variable)[$(loop_index)] |>
|
||||
|
||||
The ``let`` element is used to set values in the global directory.
|
||||
|
||||
|
||||
@@ -51,8 +51,8 @@ The parameter file can be specified in the `.tum` file root:
|
||||
:caption: configuration files definition in the main `.tum` test file
|
||||
|
||||
config_file:
|
||||
config1.yaml
|
||||
config2.yaml
|
||||
- config1.yaml
|
||||
- config2.yaml
|
||||
|
||||
main:
|
||||
name: Test example
|
||||
|
||||
@@ -11,16 +11,6 @@ sys.path.append(os.path.abspath(ourpath.parent))
|
||||
import interpreter.utils.constants as cst
|
||||
|
||||
def main():
|
||||
# Force UTF-8 on stdout/stderr so the runner's output survives a legacy
|
||||
# console code page (Windows cp1252 can't encode box-drawing/accented
|
||||
# chars). Only the stream encoders change; the locale default used for
|
||||
# config files is untouched.
|
||||
for _stream in (sys.stdout, sys.stderr):
|
||||
try:
|
||||
_stream.reconfigure(encoding="utf-8")
|
||||
except (AttributeError, ValueError):
|
||||
pass # no stdout (frozen GUI) or non-reconfigurable stream
|
||||
|
||||
# Subcommand dispatch (must run *before* argparse so neither 'schema' nor
|
||||
# 'lsp' has to share the GUI/batch flag surface). The subcommands also
|
||||
# skip the multiprocessing 'spawn' setup which is only meaningful for the
|
||||
|
||||
@@ -344,7 +344,7 @@ class TestItemConsoleReadUntil(TestItemConsoleAction):
|
||||
def execute(self):
|
||||
cons = self.get_console()
|
||||
ru = self._prms.expanse(self._read_until)
|
||||
read_timeout = int(self._prms.getParam("timeout", default=-1, processed=True))
|
||||
read_timeout = float(self._prms.getParam("timeout", default=-1, processed=True))
|
||||
mute = self._prms.getParam("mute", default=False, processed=True)
|
||||
if read_timeout < 0:
|
||||
read_timeout = None
|
||||
|
||||
@@ -14,7 +14,7 @@ class ReportExportHTML(rpe.ReportExport):
|
||||
self.prepareFile()
|
||||
self.create_base()
|
||||
self.process_tests()
|
||||
with open(self._file_name, 'w', encoding="utf-8") as f:
|
||||
with open(self._file_name, 'w') as f:
|
||||
f.write(lxml.html.tostring(self.root, pretty_print=True).decode())
|
||||
|
||||
def testsIterate(self, row):
|
||||
|
||||
@@ -20,7 +20,7 @@ class ReportExportJUnit(rpe.ReportExport):
|
||||
|
||||
ts = TestSuite(repname, test_cases=self.test_cases,
|
||||
hostname=tm.gd('host_ip'))
|
||||
with open(self._file_name, 'w', encoding="utf-8") as f:
|
||||
with open(self._file_name, 'w') as f:
|
||||
TestSuite.to_file(f, [ts])
|
||||
|
||||
def testsIterate(self, row):
|
||||
|
||||
@@ -56,9 +56,17 @@ function handle.func_call(params)
|
||||
if err == nil then
|
||||
print(string.format("Function executed from '%s'", pfile))
|
||||
utils.log("func_call function found '%s', '%s'", file, fname)
|
||||
succ, ret = pcall(func, unpack(prms))
|
||||
err_res = {pcall(func, unpack(prms))}
|
||||
utils.log("func_call returned '%s', '%s'", tostring(succ), tostring(ret))
|
||||
|
||||
-- manage tuple ouput of a lua function
|
||||
succ = table.remove(err_res, 1)
|
||||
if #err_res > 1 then
|
||||
ret = err_res
|
||||
else
|
||||
ret = unpack(err_res)
|
||||
end
|
||||
|
||||
if succ then
|
||||
res = ret
|
||||
else
|
||||
|
||||
@@ -51,14 +51,18 @@ class TestFileManager:
|
||||
w.disconnect_signals()
|
||||
# Snapshot user-selected checkboxes and fold state so they survive a
|
||||
# reload of the same file (same logic as session-restore through prefs).
|
||||
# checkList works only if show_checkboxes is True
|
||||
previous_check_list = w.treeTests.getCheckList()
|
||||
previous_fold_list = w.treeTests.getFoldList()
|
||||
previous_count = w.treeTests.getItemCount()
|
||||
self.clear_process()
|
||||
if self.load(file_name) and w.test_service is not None:
|
||||
if w.treeTests.getItemCount() == previous_count:
|
||||
w.treeTests.restoreCheckList(previous_check_list, w.test_service)
|
||||
if self.load(file_name) and \
|
||||
w.test_service is not None and \
|
||||
w.treeTests.getItemCount() == previous_count:
|
||||
if prefs.settings.show_checkboxes :
|
||||
w.treeTests.restoreCheckList(previous_check_list, w.test_service)
|
||||
w.treeTests.restoreFoldList(previous_fold_list)
|
||||
|
||||
w.reconnect_signals()
|
||||
|
||||
def _make_progress(self, w):
|
||||
|
||||
@@ -84,7 +84,18 @@
|
||||
- read_until: {expected: HelloConsole, timeout: 1, mute: true}
|
||||
|
||||
- console:
|
||||
name: Console read_until muted
|
||||
name: Console read_until float timeout
|
||||
console_name: term
|
||||
key: $(test)_PASS
|
||||
steps:
|
||||
- writeln: echo "HelloConsole"
|
||||
{% if os == "Windows" %}
|
||||
- read_until: {expected: echo "HelloConsole", timeout: 0.2}
|
||||
{% endif %}
|
||||
- read_until: {expected: HelloConsole, timeout: 0.2}
|
||||
|
||||
- console:
|
||||
name: Console read_until process result
|
||||
console_name: term
|
||||
key: $(test)_PASS
|
||||
steps:
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
console_name: jrpces
|
||||
key: $(test)_PASS
|
||||
steps:
|
||||
- writeln: '"$(python_bin)" {{include_directory}}/jrpc_echo_server.py -c {{include_directory}}/jrpces.ini'
|
||||
- writeln: python3 {{include_directory}}/jrpc_echo_server.py -c {{include_directory}}/jrpces.ini
|
||||
- read_until: {expected: ready, timeout: 5}
|
||||
|
||||
- console:
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
- let:
|
||||
name: Let it be
|
||||
values:
|
||||
it: $(loop_param)
|
||||
be: <| $(loop_param) == $(it) |>
|
||||
- it: $(loop_param)
|
||||
- be: <| $(loop_param) == $(it) |>
|
||||
|
||||
- loop:
|
||||
name: Cycle iterating on list
|
||||
|
||||
@@ -12,12 +12,12 @@ function module.assertparam(param)
|
||||
end
|
||||
|
||||
function module.checkglobal(param)
|
||||
local res = tm.gd(param)
|
||||
return res
|
||||
assert(param=='test parameter')
|
||||
return 0
|
||||
end
|
||||
|
||||
function module.checkglobal2(index)
|
||||
return tm.gd("lua_data_to_be_returned")[index]
|
||||
return tm.gd("data_to_be_returned")[index+1]
|
||||
end
|
||||
|
||||
function module.should_not_be_called(param)
|
||||
@@ -53,7 +53,7 @@ function module.return_nothing()
|
||||
-- Returns no value: ret is nil but no error.
|
||||
end
|
||||
|
||||
function module.return_explicit_nil()
|
||||
function module.return_explicit_none()
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
skipped_test_item: ['skipped_checkglobal']
|
||||
|
||||
lua_data_to_be_returned:
|
||||
data_to_be_returned:
|
||||
- 1
|
||||
- {a: 1, b: 2}
|
||||
- ["a", 1, 2.1, True]
|
||||
@@ -1,7 +1,15 @@
|
||||
- let:
|
||||
name: lua_func test constants,
|
||||
values:
|
||||
lua_func test parameter: test parameter lua_func
|
||||
- func_test_parameter: test parameter
|
||||
|
||||
- lua_func:
|
||||
name: pass lua_func
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: assertparam
|
||||
param:
|
||||
- true
|
||||
|
||||
- lua_func:
|
||||
name: fail lua_func
|
||||
@@ -12,7 +20,7 @@
|
||||
- false
|
||||
|
||||
- lua_func:
|
||||
name: fail lua_func with expected result FAIL
|
||||
name: fail lua_func with expected result "FAIL"
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: assertparam
|
||||
@@ -62,35 +70,7 @@
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: checkglobal
|
||||
param:
|
||||
- lua_func test parameter
|
||||
expected_result: $(lua_func test parameter)
|
||||
|
||||
- lua_func:
|
||||
name: global param lua_func 1
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: checkglobal2
|
||||
param:
|
||||
- 1
|
||||
expected_result: ($(lua_data_to_be_returned))[0]
|
||||
|
||||
- lua_func:
|
||||
name: global param lua_func 2
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: checkglobal2
|
||||
param:
|
||||
- 2
|
||||
expected_result: ($(lua_data_to_be_returned))[1]
|
||||
|
||||
- lua_func:
|
||||
name: global param lua_func 3
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: checkglobal2
|
||||
param:
|
||||
- 3
|
||||
expected_result: ($(lua_data_to_be_returned))[2]
|
||||
- $(func_test_parameter)
|
||||
|
||||
- let:
|
||||
name: python2func
|
||||
@@ -98,88 +78,189 @@
|
||||
values:
|
||||
- py: $(test_path)$(psep)lua_func.lua
|
||||
|
||||
- lua_func:
|
||||
name: global param int
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: checkglobal2
|
||||
param:
|
||||
- 0
|
||||
expected_result: ($(data_to_be_returned))[0]
|
||||
|
||||
- lua_func:
|
||||
name: global param dict
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: checkglobal2
|
||||
param:
|
||||
- 1
|
||||
expected_result: ($(data_to_be_returned))[1]
|
||||
|
||||
- lua_func:
|
||||
name: global param list
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: checkglobal2
|
||||
param:
|
||||
- 2
|
||||
expected_result: ($(data_to_be_returned))[2]
|
||||
|
||||
|
||||
|
||||
- lua_func:
|
||||
name: global param lua_func
|
||||
key: $(test)_PASS
|
||||
file: $(py)
|
||||
func_name: checkglobal
|
||||
param:
|
||||
- $(func_test_parameter)
|
||||
|
||||
- lua_func:
|
||||
name: skipped_checkglobal
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: should_not_be_called
|
||||
param:
|
||||
- $(test parameter)
|
||||
- $(func_test_parameter)
|
||||
|
||||
- lua_func:
|
||||
name: skipped true
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: checkglobal
|
||||
func_name: echo
|
||||
skipped: true
|
||||
param:
|
||||
- $(test parameter)
|
||||
- "skipped"
|
||||
|
||||
- lua_func:
|
||||
name: skipped 1
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: checkglobal
|
||||
func_name: echo
|
||||
skipped: 1
|
||||
param:
|
||||
- $(test parameter)
|
||||
- "skipped"
|
||||
|
||||
- group:
|
||||
name: Function results check
|
||||
steps:
|
||||
- group:
|
||||
name: Function result failure
|
||||
name: Functions result
|
||||
steps:
|
||||
- lua_func:
|
||||
name: int failure
|
||||
name: int
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [-1]
|
||||
- lua_func:
|
||||
name: float failure
|
||||
name: float
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [-1.3]
|
||||
param: [-20.3]
|
||||
- lua_func:
|
||||
name: String failure
|
||||
name: String
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [ "FAIL" ]
|
||||
- lua_func:
|
||||
name: Tuple int,str failure
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: tuple_return
|
||||
param: [ -1, "Got a failure" ]
|
||||
- group:
|
||||
name: Functions result success
|
||||
steps:
|
||||
- lua_func:
|
||||
name: int success
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [0]
|
||||
- lua_func:
|
||||
name: float success
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [0.3]
|
||||
- lua_func:
|
||||
name: String success
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [ "Something that is not only strictly FAIL" ]
|
||||
- lua_func:
|
||||
name: Tuple int,str success
|
||||
name: Tuple int,str
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: tuple_return
|
||||
param: [ 0, "OK" ]
|
||||
|
||||
- group:
|
||||
name: Functions result expected
|
||||
steps:
|
||||
- lua_func:
|
||||
name: int expected
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [18]
|
||||
expected_result: 18
|
||||
- lua_func:
|
||||
name: float expected
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [0.3]
|
||||
expected_result: 0.3
|
||||
- lua_func:
|
||||
name: String expected
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [ "Something" ]
|
||||
expected_result: Something
|
||||
- lua_func:
|
||||
name: Tuple int,str expected
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: tuple_return
|
||||
param: [ 0, "OK" ]
|
||||
expected_result: [0, "OK"]
|
||||
- lua_func:
|
||||
name: small list expected
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [ [-23] ]
|
||||
expected_result: [-23]
|
||||
- lua_func:
|
||||
name: big list expected
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [ [-23, 17, 67] ]
|
||||
expected_result: [-23, 17, 67]
|
||||
- group:
|
||||
name: Function result not expected
|
||||
steps:
|
||||
- lua_func:
|
||||
name: int not expected
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [18]
|
||||
expected_result: 17
|
||||
- lua_func:
|
||||
name: float not expected
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [0.3]
|
||||
expected_result: 0.5
|
||||
- lua_func:
|
||||
name: String not expected
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [ "Something" ]
|
||||
expected_result: Nothing
|
||||
- lua_func:
|
||||
name: Tuple int,str not expected
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: tuple_return
|
||||
param: [ 0, "OK" ]
|
||||
expected_result: [0, "OUPS"]
|
||||
- lua_func:
|
||||
name: small list not expected
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [ [-23] ]
|
||||
expected_result: [-22]
|
||||
- lua_func:
|
||||
name: big list not expected
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: echo
|
||||
param: [ [-23, 17, 67] ]
|
||||
expected_result: [-23, 16, 67]
|
||||
- lua_func:
|
||||
name: delgd test
|
||||
key: $(test)_PASS
|
||||
@@ -193,40 +274,39 @@
|
||||
func_name: return_nothing
|
||||
|
||||
- lua_func:
|
||||
name: function returning explicit nil should succeed
|
||||
name: function returning explicit None should succeed
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: return_explicit_nil
|
||||
func_name: return_explicit_none
|
||||
|
||||
- group:
|
||||
name: context_id tests
|
||||
steps:
|
||||
- lua_func:
|
||||
name: set context value
|
||||
name: set serializable value
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: set_context_value
|
||||
context_id: lua_ctx_test
|
||||
param:
|
||||
- hello lua
|
||||
expected_result: hello lua
|
||||
- hello context
|
||||
expected_result: hello context
|
||||
- lua_func:
|
||||
name: get context value (same context_id)
|
||||
name: get serializable value (same context_id)
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: get_context_value
|
||||
context_id: lua_ctx_test
|
||||
expected_result: hello lua
|
||||
context_id: ctx_test
|
||||
expected_result: hello context
|
||||
- lua_func:
|
||||
name: get context value (no context_id, from main gd)
|
||||
name: get serializable value (no context_id, from main gd)
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: get_context_value
|
||||
expected_result: hello lua
|
||||
expected_result: hello context
|
||||
- lua_func:
|
||||
name: get context value (different context_id)
|
||||
name: get serializable value (different context_id)
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)lua_func.lua
|
||||
func_name: get_context_value
|
||||
context_id: lua_ctx_other
|
||||
expected_result: hello lua
|
||||
context_id: ctx_other
|
||||
expected_result: hello context
|
||||
|
||||
@@ -1 +1,6 @@
|
||||
skipped_test_item: ['skipped_checkglobal']
|
||||
skipped_test_item: ['skipped_checkglobal']
|
||||
|
||||
data_to_be_returned:
|
||||
- 1
|
||||
- {a: 1, b: 2}
|
||||
- ["a", 1, 2.1, True]
|
||||
@@ -16,8 +16,8 @@ def checkglobal(param):
|
||||
assert param=='test parameter'
|
||||
return 0
|
||||
|
||||
def checkglobal2():
|
||||
return tm.gd("py_func test parameter")
|
||||
def checkglobal2(index):
|
||||
return tm.gd("data_to_be_returned")[index]
|
||||
|
||||
def should_not_be_called(param):
|
||||
raise
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
- let:
|
||||
name: py_func test constants,
|
||||
values:
|
||||
py_func test parameter: test parameter
|
||||
- func_test_parameter: test parameter
|
||||
|
||||
- py_func:
|
||||
name: pass py_func
|
||||
@@ -70,7 +70,7 @@
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: checkglobal
|
||||
param:
|
||||
- $(py_func test parameter)
|
||||
- $(func_test_parameter)
|
||||
|
||||
- let:
|
||||
name: python2func
|
||||
@@ -79,11 +79,32 @@
|
||||
- py: $(test_path)$(psep)py_func.py
|
||||
|
||||
- py_func:
|
||||
name: global param py_func 2
|
||||
name: global param int
|
||||
key: $(test)_PASS
|
||||
file: $(py)
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: checkglobal2
|
||||
expected_result: $(py_func test parameter)
|
||||
param:
|
||||
- 0
|
||||
expected_result: ($(data_to_be_returned))[0]
|
||||
|
||||
- py_func:
|
||||
name: global param dict
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: checkglobal2
|
||||
param:
|
||||
- 1
|
||||
expected_result: ($(data_to_be_returned))[1]
|
||||
|
||||
- py_func:
|
||||
name: global param list
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: checkglobal2
|
||||
param:
|
||||
- 2
|
||||
expected_result: ($(data_to_be_returned))[2]
|
||||
|
||||
|
||||
|
||||
- py_func:
|
||||
@@ -92,104 +113,162 @@
|
||||
file: $(py)
|
||||
func_name: checkglobal
|
||||
param:
|
||||
- $(py_func test parameter)
|
||||
- $(func_test_parameter)
|
||||
|
||||
- py_func:
|
||||
name: skipped_checkglobal
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: should_not_be_called
|
||||
param:
|
||||
- $(py_func test parameter)
|
||||
- $(func_test_parameter)
|
||||
|
||||
- py_func:
|
||||
name: skipped true
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: checkglobal
|
||||
func_name: echo
|
||||
skipped: true
|
||||
param:
|
||||
- $(py_func test parameter)
|
||||
- "skipped"
|
||||
|
||||
- py_func:
|
||||
name: skipped 1
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: checkglobal
|
||||
func_name: echo
|
||||
skipped: 1
|
||||
param:
|
||||
- $(py_func test parameter)
|
||||
- "skipped"
|
||||
|
||||
- py_func:
|
||||
name: FunctionItem test
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: ValidationTest
|
||||
param:
|
||||
- $(py_func test parameter)
|
||||
- $(func_test_parameter)
|
||||
|
||||
- group:
|
||||
name: Function results check
|
||||
steps:
|
||||
- group:
|
||||
name: Function result 1
|
||||
name: Functions result
|
||||
steps:
|
||||
- py_func:
|
||||
name: int failure
|
||||
name: int
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: echo
|
||||
param: [-1]
|
||||
expected_result: -1
|
||||
- py_func:
|
||||
name: float failure
|
||||
name: float
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: echo
|
||||
param: [-1.3]
|
||||
expected_result: -1.3
|
||||
param: [-20.3]
|
||||
- py_func:
|
||||
name: String failure
|
||||
name: String
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: echo
|
||||
param: [ "FAIL" ]
|
||||
expected_result: FAIL
|
||||
- py_func:
|
||||
name: Tuple int,str failure
|
||||
name: Tuple int,str
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: tuple_return
|
||||
param: [ -1, "Got a failure" ]
|
||||
expected_result: [-1, "Got a failure"]
|
||||
param: [ 0, "OK" ]
|
||||
- group:
|
||||
name: Functions result 2
|
||||
name: Functions result expected
|
||||
steps:
|
||||
- py_func:
|
||||
name: int success
|
||||
name: int expected
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: echo
|
||||
param: [0]
|
||||
expected_result: 0
|
||||
param: [18]
|
||||
expected_result: 18
|
||||
- py_func:
|
||||
name: float success
|
||||
name: float expected
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: echo
|
||||
param: [0.3]
|
||||
expected_result: 0.3
|
||||
- py_func:
|
||||
name: String success
|
||||
name: String expected
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: echo
|
||||
param: [ "Something that is not only strictly FAIL" ]
|
||||
expected_result: Something that is not only strictly FAIL
|
||||
param: [ "Something" ]
|
||||
expected_result: Something
|
||||
- py_func:
|
||||
name: Tuple int,str success
|
||||
name: Tuple int,str expected
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: tuple_return
|
||||
param: [ 0, "OK" ]
|
||||
expected_result: [0, "OK"]
|
||||
|
||||
- py_func:
|
||||
name: small list expected
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: echo
|
||||
param: [ [-23] ]
|
||||
expected_result: [-23]
|
||||
- py_func:
|
||||
name: big list expected
|
||||
key: $(test)_PASS
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: echo
|
||||
param: [ [-23, 17, 67] ]
|
||||
expected_result: [-23, 17, 67]
|
||||
- group:
|
||||
name: Function result not expected
|
||||
steps:
|
||||
- py_func:
|
||||
name: int not expected
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: echo
|
||||
param: [18]
|
||||
expected_result: 17
|
||||
- py_func:
|
||||
name: float not expected
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: echo
|
||||
param: [0.3]
|
||||
expected_result: 0.5
|
||||
- py_func:
|
||||
name: String not expected
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: echo
|
||||
param: [ "Something" ]
|
||||
expected_result: Nothing
|
||||
- py_func:
|
||||
name: Tuple int,str not expected
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: tuple_return
|
||||
param: [ 0, "OK" ]
|
||||
expected_result: [0, "OUPS"]
|
||||
- py_func:
|
||||
name: small list not expected
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: echo
|
||||
param: [ [-23] ]
|
||||
expected_result: [-22]
|
||||
- py_func:
|
||||
name: big list not expected
|
||||
key: $(test)_FAIL
|
||||
file: $(test_path)$(psep)py_func.py
|
||||
func_name: echo
|
||||
param: [ [-23, 17, 67] ]
|
||||
expected_result: [-23, 16, 67]
|
||||
- py_func:
|
||||
name: delgd test
|
||||
key: $(test)_PASS
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
main:
|
||||
name: run sub-test (always fail)
|
||||
steps:
|
||||
- check:
|
||||
name: fail
|
||||
values:
|
||||
- false
|
||||
@@ -1,7 +0,0 @@
|
||||
main:
|
||||
name: run sub-test (always pass)
|
||||
steps:
|
||||
- check:
|
||||
name: pass
|
||||
values:
|
||||
- true
|
||||
@@ -31,7 +31,11 @@ main:
|
||||
|
||||
{% for item in items %}
|
||||
# item test
|
||||
- let: {name: {{ item }} test constants, values: {test: {{ item }}, test_path: items/$(test)}}
|
||||
- let:
|
||||
name: {{ item }} test constants
|
||||
values:
|
||||
- test: {{ item }}
|
||||
- test_path: items/$(test)
|
||||
- group:
|
||||
name: {{ item }} test
|
||||
steps:
|
||||
|
||||
@@ -89,7 +89,7 @@ def exec():
|
||||
junit_report = report.replace(".sqlite", f"-{test}.xml")
|
||||
print(junit_report)
|
||||
_prepare_file_to_save(junit_report)
|
||||
with open(junit_report, "w", encoding="utf-8") as f:
|
||||
with open(junit_report, "w") as f:
|
||||
f.write(TestSuite.to_xml_string([ts]))
|
||||
|
||||
# cleanup
|
||||
|
||||
@@ -89,13 +89,6 @@ REM Reports are stamped with the mode so successive runs don't clobber each othe
|
||||
|
||||
SET "TAIL=-b -d "python_bin=%VENV_PYTHON%" -d "validation_report_file=validation-%MODE%" -- "%SCRIPT_DIR%\main.tum"%EXTRA%"
|
||||
|
||||
REM The report-exporter plugin (items\report_plugin) is a pip entry-point
|
||||
REM package. It must live in the *testium* environment, so it is installed into
|
||||
REM the source/wheel venvs below. A frozen PyInstaller binary cannot see
|
||||
REM externally-installed plugins, so report_plugin is expected to be skipped
|
||||
REM there (same as Linux pyinstaller mode).
|
||||
SET "FAKE_EXPORTER=%SCRIPT_DIR%\fake_exporter"
|
||||
|
||||
REM ---------- per-mode launcher ----------------------------------------------
|
||||
|
||||
echo -- validation mode: %MODE%
|
||||
@@ -107,25 +100,8 @@ echo ERROR: unknown --mode '%MODE%'. Expected: source ^| wheel ^| pyinstaller.
|
||||
exit /b 1
|
||||
|
||||
:MODE_SOURCE
|
||||
REM Run testium from src\ in a dedicated venv set up here. We do NOT delegate to
|
||||
REM the project's run.bat: that one launches the GUI and does not forward its
|
||||
REM arguments, so the suite would never run head-less.
|
||||
SET "TESTIUM_VENV=%PROJECT_DIR%\test\tmp\testium_venv"
|
||||
IF NOT EXIST "%TESTIUM_VENV%" (
|
||||
echo Creating testium venv at %TESTIUM_VENV%
|
||||
%PYTHON_EXE% -m venv "%TESTIUM_VENV%"
|
||||
IF !ERRORLEVEL! NEQ 0 (
|
||||
echo ERROR while creating the testium venv.
|
||||
exit /b 1
|
||||
)
|
||||
call "%TESTIUM_VENV%\Scripts\pip" install --quiet --upgrade pip
|
||||
call "%TESTIUM_VENV%\Scripts\pip" install --quiet -r "%PROJECT_DIR%\src\requirements.txt"
|
||||
REM language-server extra so `testium lsp` works from source (lsp_check.py)
|
||||
call "%TESTIUM_VENV%\Scripts\pip" install --quiet "pygls>=1.3"
|
||||
)
|
||||
call "%TESTIUM_VENV%\Scripts\pip" install --quiet -e "%FAKE_EXPORTER%"
|
||||
SET CMD="%TESTIUM_VENV%\Scripts\python.exe" "%PROJECT_DIR%\src\testium"
|
||||
GOTO LAUNCH
|
||||
call "%PROJECT_DIR%\run.bat" %TAIL%
|
||||
exit /b %ERRORLEVEL%
|
||||
|
||||
:MODE_WHEEL
|
||||
SET "WHEEL=%PROJECT_DIR%\dist\testium-%VERSION%-py3-none-any.whl"
|
||||
@@ -139,13 +115,10 @@ IF NOT EXIST "%WHEEL_VENV%" (
|
||||
echo Creating wheel venv at %WHEEL_VENV%
|
||||
%PYTHON_EXE% -m venv --system-site-packages "%WHEEL_VENV%"
|
||||
call "%WHEEL_VENV%\Scripts\pip" install --quiet --upgrade pip
|
||||
REM install with the [lsp] extra so the wheel channel is validated in its
|
||||
REM language-server-capable form (pulls pygls), matching `pip install testium[lsp]`.
|
||||
call "%WHEEL_VENV%\Scripts\pip" install --quiet "%WHEEL%[lsp]"
|
||||
call "%WHEEL_VENV%\Scripts\pip" install --quiet "%WHEEL%"
|
||||
)
|
||||
call "%WHEEL_VENV%\Scripts\pip" install --quiet -e "%FAKE_EXPORTER%"
|
||||
SET CMD="%WHEEL_VENV%\Scripts\python.exe" -m testium
|
||||
GOTO LAUNCH
|
||||
"%WHEEL_VENV%\Scripts\python.exe" -m testium %TAIL%
|
||||
exit /b %ERRORLEVEL%
|
||||
|
||||
:MODE_PYI
|
||||
SET "PYI_BIN=%PROJECT_DIR%\dist\testium-%VERSION%.exe"
|
||||
@@ -154,22 +127,5 @@ IF NOT EXIST "%PYI_BIN%" (
|
||||
echo ERROR: PyInstaller binary not found in %PROJECT_DIR%\dist -- run build_all.sh first.
|
||||
exit /b 1
|
||||
)
|
||||
SET CMD="%PYI_BIN%"
|
||||
GOTO LAUNCH
|
||||
|
||||
REM ---------- launch ----------------------------------------------------------
|
||||
|
||||
:LAUNCH
|
||||
echo -- launch: %CMD%
|
||||
|
||||
REM LSP check (this exact channel): `schema` must keep its nested actions and
|
||||
REM `lsp` must answer initialize. Mirrors run.sh; aborts the run on failure.
|
||||
echo -- LSP check (%MODE%)
|
||||
"%VENV_PYTHON%" "%SCRIPT_DIR%\lsp_check.py" %CMD%
|
||||
IF !ERRORLEVEL! NEQ 0 (
|
||||
echo ERROR: LSP check failed for mode %MODE%.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
%CMD% %TAIL%
|
||||
"%PYI_BIN%" %TAIL%
|
||||
exit /b %ERRORLEVEL%
|
||||
|
||||
Reference in New Issue
Block a user