56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
from ScEpTIC.config.base_config import ScEpTICBaseConfig
|
|
|
|
class ResultOutputConfig(ScEpTICBaseConfig):
|
|
"""
|
|
ScEpTIC analysis result output data configuration
|
|
"""
|
|
|
|
_config_domain = {
|
|
'enabled': {'class': bool, 'mode': 'set'},
|
|
'test_name': {'class': str, 'mode': 'set'},
|
|
'save_analysis_output': {'class': bool, 'mode': 'set'},
|
|
'save_code': {'class': bool, 'mode': 'set'},
|
|
'save_state': {'class': bool, 'mode': 'set'},
|
|
'save_directory': {'class': str, 'mode': 'set'},
|
|
'dir_append_datetime': {'class': bool, 'mode': 'set'},
|
|
'save_results_after_exception': {'class': bool, 'mode': 'set'},
|
|
'enable_write_trace': {'class': bool, 'mode': 'set'},
|
|
'write_trace_directory': {'class':str, 'mode': 'set'},
|
|
'physical_mmu_log_operation': {'class':bool, 'mode': 'set'},
|
|
}
|
|
|
|
def __init__(self, main_config):
|
|
super().__init__(main_config)
|
|
|
|
self.enabled = True
|
|
|
|
self.test_name = 'generic_test'
|
|
|
|
# Information to be saved
|
|
self.save_analysis_output = True
|
|
self.save_code = True
|
|
self.save_state = True
|
|
|
|
# Dir
|
|
self.save_directory = 'analysis_results'
|
|
self.dir_append_datetime = True
|
|
self.save_results_after_exception = True
|
|
|
|
self._register_config_callback("enabled", self._enabled_callback)
|
|
|
|
|
|
def _enabled_callback(self, config_name, config_value):
|
|
"""
|
|
Callback to enable/disable result output
|
|
:param config_name: the configuration name
|
|
:param config_value: the configuration value
|
|
"""
|
|
if config_value:
|
|
self.save_analysis_output = True
|
|
self.save_code = True
|
|
self.save_state = True
|
|
else:
|
|
self.save_analysis_output = False
|
|
self.save_code = False
|
|
self.save_state = False
|