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