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