Skip to content

Commit 672f396

Browse files
committed
python: Extended statistical tests to remove generated result files.
1 parent ad63ce0 commit 672f396

1 file changed

Lines changed: 17 additions & 6 deletions

File tree

python/inet/test/statistical.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ def check_simulation_task_result(self, simulation_task_result, result_name_filte
8282
if os.path.exists(current_vector_result_file_name):
8383
run_command_with_logging(["opp_scavetool", "x", "--type", "sth", "-w", current_scalar_result_file_name, current_vector_result_file_name, "-o", current_scalar_result_file_name])
8484
os.remove(current_vector_result_file_name)
85+
current_index_result_file_name = simulation_project.get_full_path(os.path.join(working_directory, "results", self.get_result_file_name("vci")))
86+
if os.path.exists(current_index_result_file_name):
87+
os.remove(current_index_result_file_name)
8588
_remove_attr_lines(current_scalar_result_file_name)
8689
stored_scalar_result_file_name = simulation_project.get_full_path(os.path.join(simulation_project.statistics_folder, working_directory, self.get_result_file_name("sca")))
8790
_logger.debug(f"Reading result file {current_scalar_result_file_name}")
@@ -95,9 +98,9 @@ def check_simulation_task_result(self, simulation_task_result, result_name_filte
9598
if not current_df.equals(stored_df):
9699
_write_diff_file(stored_scalar_result_file_name, current_scalar_result_file_name, scalar_result_diff_file_name)
97100
if current_df.empty:
98-
return self.task_result_class(task=self, simulation_task_result=simulation_task_result, result="FAIL", reason="Current statistical results are empty")
101+
task_result = self.task_result_class(task=self, simulation_task_result=simulation_task_result, result="FAIL", reason="Current statistical results are empty")
99102
elif stored_df.empty:
100-
return self.task_result_class(task=self, simulation_task_result=simulation_task_result, result="FAIL", reason="Stored statistical results are empty")
103+
task_result = self.task_result_class(task=self, simulation_task_result=simulation_task_result, result="FAIL", reason="Stored statistical results are empty")
101104
else:
102105
merged = stored_df.merge(current_df, on=['experiment', 'measurement', 'replication', 'module', 'name'], how='outer', suffixes=('_stored', '_current'))
103106
df = merged[
@@ -117,11 +120,14 @@ def check_simulation_task_result(self, simulation_task_result, result_name_filte
117120
reason = df.loc[id].to_string()
118121
reason = re.sub(r" +", " = ", reason)
119122
reason = re.sub(r"\n", ", ", reason)
120-
return self.task_result_class(task=self, simulation_task_result=simulation_task_result, result="FAIL", reason=reason)
123+
task_result = self.task_result_class(task=self, simulation_task_result=simulation_task_result, result="FAIL", reason=reason)
121124
else:
122-
return self.task_result_class(task=self, simulation_task_result=simulation_task_result, result="PASS")
125+
task_result = self.task_result_class(task=self, simulation_task_result=simulation_task_result, result="PASS")
123126
else:
124-
return self.task_result_class(task=self, simulation_task_result=simulation_task_result, result="ERROR", reason="Stored statistical results are not found")
127+
task_result = self.task_result_class(task=self, simulation_task_result=simulation_task_result, result="ERROR", reason="Stored statistical results are not found")
128+
if os.path.exists(current_scalar_result_file_name):
129+
os.remove(current_scalar_result_file_name)
130+
return task_result
125131

126132
def get_statistical_test_sim_time_limit(simulation_config, run_number=0):
127133
return simulation_config.sim_time_limit
@@ -173,9 +179,11 @@ def run_protected(self, **kwargs):
173179
target_results_directory = simulation_project.get_full_path(os.path.join(simulation_project.statistics_folder, working_directory))
174180
os.makedirs(target_results_directory, exist_ok=True)
175181
update_result = super().run_protected(**kwargs)
182+
stored_scalar_result_file_name = simulation_project.get_full_path(os.path.join(working_directory, "results", self.get_result_file_name("sca")))
176183
if update_result.result == "INSERT" or update_result.result == "UPDATE":
177-
stored_scalar_result_file_name = simulation_project.get_full_path(os.path.join(working_directory, "results", self.get_result_file_name("sca")))
178184
shutil.copy(stored_scalar_result_file_name, target_results_directory)
185+
if os.path.exists(stored_scalar_result_file_name):
186+
os.remove(stored_scalar_result_file_name)
179187
return update_result
180188

181189
def check_simulation_task_result(self, simulation_task_result, result_name_filter=None, exclude_result_name_filter=None, result_module_filter=None, exclude_result_module_filter=None, full_match=False, **kwargs):
@@ -187,6 +195,9 @@ def check_simulation_task_result(self, simulation_task_result, result_name_filte
187195
if os.path.exists(current_vector_result_file_name):
188196
run_command_with_logging(["opp_scavetool", "x", "--type", "sth", "-w", current_scalar_result_file_name, current_vector_result_file_name, "-o", current_scalar_result_file_name])
189197
os.remove(current_vector_result_file_name)
198+
current_index_result_file_name = simulation_project.get_full_path(os.path.join(working_directory, "results", self.get_result_file_name("vci")))
199+
if os.path.exists(current_index_result_file_name):
200+
os.remove(current_index_result_file_name)
190201
_remove_attr_lines(current_scalar_result_file_name)
191202
stored_scalar_result_file_name = simulation_project.get_full_path(os.path.join(simulation_project.statistics_folder, working_directory, self.get_result_file_name("sca")))
192203
_logger.debug(f"Reading result file {current_scalar_result_file_name}")

0 commit comments

Comments
 (0)