Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions SofaRegressionProgram.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@


class RegressionProgram:
def __init__(self, input_folder, disable_progress_bar = False, verbose = False):
def __init__(self, input_folder, filter, disable_progress_bar = False, verbose = False):
self.scene_sets = [] # List <RegressionSceneList>
self.disable_progress_bar = disable_progress_bar
self.verbose = verbose
Expand All @@ -28,7 +28,7 @@ def __init__(self, input_folder, disable_progress_bar = False, verbose = False):
if file.endswith(".regression-tests"):
file_path = os.path.join(root, file)

scene_list = RegressionSceneList.RegressionSceneList(file_path, self.disable_progress_bar, verbose)
scene_list = RegressionSceneList.RegressionSceneList(file_path, filter, self.disable_progress_bar, verbose)

scene_list.process_file()
self.scene_sets.append(scene_list)
Expand Down Expand Up @@ -102,6 +102,11 @@ def parse_args():
dest='output',
help="Directory where to export data preprocessed",
type=str)

parser.add_argument('--filter',
dest='filter',
help="A regex filter to select scenes to test",
type=str)

parser.add_argument('--replay',
dest='replay',
Expand Down Expand Up @@ -138,7 +143,7 @@ def parse_args():
args = parse_args()
# 2- Process file
if args.input is not None:
reg_prog = RegressionProgram(args.input, args.progress_bar_is_disabled, args.verbose)
reg_prog = RegressionProgram(args.input, args.filter, args.progress_bar_is_disabled, args.verbose)
else:
exit("Error: Argument is required ! Quitting.")

Expand Down
22 changes: 14 additions & 8 deletions tools/RegressionSceneList.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
import os
import tools.RegressionSceneData as RegressionSceneData
from tqdm import tqdm
import re


## This class is responsible for loading a file.regression-tests to gather the list of scene to test with all arguments
## It will provide the API to launch the tests or write refs on all scenes contained in this file
class RegressionSceneList:
def __init__(self, file_path, disable_progress_bar = False, verbose = False):
def __init__(self, file_path, filter, disable_progress_bar = False, verbose = False):
"""
/// Path to the file.regression-tests containing the list of scene to tests with all arguments
std::string filePath;
"""
self.file_path = file_path
self.filter = filter
self.file_dir = os.path.dirname(file_path)
self.scenes_data_sets = [] # List<RegressionSceneData>
self.nbr_errors = 0
Expand Down Expand Up @@ -55,16 +57,20 @@ def process_file(self):
print ("line read has not 5 arguments: " + str(len(values)) + " -> " + line)
continue

if self.filter is not None and re.search(self.filter, values[0]) is None:
if self.verbose:
print (f'Filtered out {self.filter}: {values[0]}')
continue

full_file_path = os.path.join(self.file_dir, values[0])
full_ref_file_path = os.path.join(self.ref_dir_path, values[0])

if len(values) == 5:
scene_data = RegressionSceneData.RegressionSceneData(full_file_path, full_ref_file_path,
values[1], values[2], values[3], values[4],
self.disable_progress_bar)

#scene_data.printInfo()
self.scenes_data_sets.append(scene_data)
scene_data = RegressionSceneData.RegressionSceneData(full_file_path, full_ref_file_path,
values[1], values[2], values[3], values[4],
self.disable_progress_bar)

#scene_data.printInfo()
self.scenes_data_sets.append(scene_data)


def write_references(self, id_scene, print_log = False):
Expand Down