mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-11-22 22:41:30 +03:00
Enable running of the tests from test.netsurf-browser.org
This commit is contained in:
parent
1698a75282
commit
ceefe45205
71
test/monkey-see-monkey-do
Executable file
71
test/monkey-see-monkey-do
Executable file
@ -0,0 +1,71 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
# If you have any poo, fling it now!
|
||||
|
||||
BASE_PATH="https://test.netsurf-browser.org/cgi-bin/monkey-index.cgi"
|
||||
MONKEY_PATH="./nsmonkey"
|
||||
|
||||
# Otherwise let's begin...
|
||||
|
||||
import sys
|
||||
|
||||
import yaml
|
||||
|
||||
import multiprocessing as mp
|
||||
|
||||
from urllib import request
|
||||
from io import StringIO
|
||||
|
||||
import monkey_driver as driver
|
||||
|
||||
mp.set_start_method('fork')
|
||||
|
||||
def child_run_test(parts):
|
||||
outcapture = StringIO()
|
||||
errcapture = StringIO()
|
||||
oldout = sys.stdout
|
||||
olderr = sys.stderr
|
||||
sys.stdout = outcapture
|
||||
sys.stderr = errcapture
|
||||
try:
|
||||
driver.run_preloaded_test(MONKEY_PATH, parts)
|
||||
except:
|
||||
sys.stdout = oldout
|
||||
sys.stderr = olderr
|
||||
print("FAIL:")
|
||||
print("STDOUT:\n{}\n", outcapture.getvalue())
|
||||
print("STDERR:\n{}\n", errcapture.getvalue())
|
||||
print("RERAISE:")
|
||||
raise
|
||||
|
||||
def run_test(parts):
|
||||
p = mp.Process(target=child_run_test, args=(parts, ))
|
||||
p.start()
|
||||
p.join()
|
||||
return p.exitcode
|
||||
|
||||
|
||||
print("Fetching tests...")
|
||||
index = request.urlopen(BASE_PATH)
|
||||
index = index.read()
|
||||
print("Parsing tests...")
|
||||
test_set = yaml.load_all(index)
|
||||
|
||||
print("Running tests...")
|
||||
ret = 0
|
||||
for test in test_set:
|
||||
if test["kind"] == 'group':
|
||||
print("Start group: {}".format(test["group"]))
|
||||
print(" => {}".format(test["description"]))
|
||||
elif test["kind"] == 'test':
|
||||
print(" => Run test: {}".format(test["filename"]))
|
||||
ret = run_test(test["content"])
|
||||
if ret != 0:
|
||||
break
|
||||
|
||||
if ret != 0:
|
||||
print("FAIL")
|
||||
sys.exit(1)
|
||||
else:
|
||||
print("PASS")
|
||||
sys.exit(0)
|
@ -317,14 +317,21 @@ def walk_test_plan(ctx, plan):
|
||||
for step in plan["steps"]:
|
||||
run_test_step(ctx, step)
|
||||
|
||||
def run_test_plan(ctx, plan):
|
||||
print_test_plan_info(ctx, plan)
|
||||
walk_test_plan(ctx, plan)
|
||||
|
||||
def run_preloaded_test(path_monkey, plan):
|
||||
ctx = {
|
||||
"monkey": path_monkey,
|
||||
}
|
||||
run_test_plan(ctx, plan)
|
||||
|
||||
def main(argv):
|
||||
ctx = {}
|
||||
path_monkey, path_test = parse_argv(argv)
|
||||
plan = load_test_plan(path_test)
|
||||
ctx["monkey"] = path_monkey
|
||||
print_test_plan_info(ctx, plan)
|
||||
walk_test_plan(ctx, plan)
|
||||
|
||||
# Some python weirdness to get to main().
|
||||
if __name__ == "__main__":
|
Loading…
Reference in New Issue
Block a user