render: determine available tests from present save files

also, filter tests to run by regular expressions
This commit is contained in:
Ivan Avdeev 2023-11-30 11:40:53 -05:00
parent c1bd3d7619
commit c40bfde9c7

View File

@ -5,6 +5,7 @@ import concurrent.futures
import json import json
import os import os
import pathlib import pathlib
import re
import shutil import shutil
import subprocess import subprocess
@ -13,17 +14,11 @@ imagecompare = f'{ROOT}/imagecompare'
WORKDIR = f'{ROOT}/work' WORKDIR = f'{ROOT}/work'
REPORT_ROOT = f'{ROOT}' # FIXME should be workdir? REPORT_ROOT = f'{ROOT}' # FIXME should be workdir?
# TODO load all saves from the save/ dir
# TODO rename to <map>_<description>_<issue(opt)> # TODO rename to <map>_<description>_<issue(opt)>
saves = [ saves = []
'brush2_01', for (_, _, files) in os.walk(os.path.join(ROOT, 'save')):
'brush_01', for file in files:
'brush_02', saves.append(file.removesuffix('.sav').removeprefix('rendertest_'))
'c0a0d_emissive',
'light_01',
'additive_cullback',
'c1a3_fan_material_669',
]
channels = { channels = {
'full': '', 'full': '',
@ -42,10 +37,12 @@ def test_list(arg: str) -> [str]:
items = arg.split(',') items = arg.split(',')
tests = [] tests = []
for item in items: for item in items:
# TODO regex? r = re.compile(item)
if not item in saves: for save in saves:
raise argparse.ArgumentTypeError(f'Test {item} is not available. Available tests are: {saves}') if r.match(save):
tests.append(item) tests.append(save)
if not tests:
raise argparse.ArgumentTypeError(f'No tests match {item}. Available tests are: {saves}')
return tests return tests
parser = argparse.ArgumentParser(description='Generate scripts and makefiles for rendertest') parser = argparse.ArgumentParser(description='Generate scripts and makefiles for rendertest')