def cfgcore_cfgdict_data_test(): rd = ConfigDict({ 'a': 10, 'b': 20 }) assert rd.a == 10 assert rd.b == 20 rd.a = 'hello' assert rd.a == 'hello' assert rd['a'] == 'hello' del rd.b assert rd == { 'a': 'hello' }
def vamos_log_setup_quiet_test(caplog): log_cfg = ConfigDict({ "file": None, "quiet": True, # set all levels to error "verbose": False, "timestamps": True, "levels": None, }) assert log_setup(log_cfg) do_log() assert caplog.record_tuples == [ ("main", logging.ERROR, "error"), ("mem", logging.ERROR, "error"), ]
def libmgr_setup_default_test(): machine = Machine() mem_map = MemoryMap(machine) mem_map.setup_ram_allocator() path_mgr = PathManager() slm = SetupLibManager(machine, mem_map, path_mgr) vamos_legacy = ConfigDict({ 'run_command': None, 'start_sub_process': None }) slm.setup(vamos_legacy) slm.open_base_libs() slm.close_base_libs() slm.cleanup()
def vamos_log_setup_levels_fail2_test(caplog): log_cfg = ConfigDict({ 'file': None, 'quiet': False, 'verbose': False, 'timestamps': True, 'levels': { 'mem': 'foo' } }) assert not log_setup(log_cfg) assert caplog.record_tuples == [ ('config', logging.ERROR, 'invalid log level: foo') ]
def profiler_main_test_prof_cfg_test(): p = MyProfiler() mp = MainProfiler(enabled=True) cfg = ConfigDict( { "enabled": True, "output": {"dump": True, "file": None, "append": True}, "test": {"foo": 42, "bar": "hello"}, } ) assert mp.parse_config(cfg) assert mp.add_profiler(p) assert p.foo == 42 assert p.bar == "hello"
def vamos_log_setup_default_test(caplog): log_cfg = ConfigDict({ 'file': None, 'quiet': False, 'verbose': False, 'timestamps': True, 'levels': None }) assert log_setup(log_cfg) do_log() assert caplog.record_tuples == [('main', logging.WARNING, 'warn'), ('main', logging.ERROR, 'error'), ('mem', logging.WARNING, 'warn'), ('mem', logging.ERROR, 'error')]
def libmgr_cfg_mgr_from_dict_default_test(): cfg = ConfigDict({ "libs": ConfigDict({ "*.library": ConfigDict({ "mode": "fake", "version": 23, "expunge": "shutdown", "num_fake_funcs": 1, }) }), "devs": ConfigDict({ "*.device": ConfigDict({ "mode": "amiga", "version": 42, "expunge": "last_close", "num_fake_funcs": 2, }) }), }) mgr = LibMgrCfg.from_dict(cfg) assert mgr lib_default = mgr.get_lib_default() assert lib_default assert lib_default.get_create_mode() == LibCfg.CREATE_MODE_FAKE assert lib_default.get_force_version() == 23 assert lib_default.get_expunge_mode() == LibCfg.EXPUNGE_MODE_SHUTDOWN assert lib_default.get_num_fake_funcs() == 1 dev_default = mgr.get_dev_default() assert dev_default assert dev_default.get_create_mode() == LibCfg.CREATE_MODE_AMIGA assert dev_default.get_force_version() == 42 assert dev_default.get_expunge_mode() == LibCfg.EXPUNGE_MODE_LAST_CLOSE assert dev_default.get_num_fake_funcs() == 2
def machine_machine_cfg_test(): cfg = ConfigDict({ 'cpu': '68020', 'ram_size': 2048, 'max_cycles': 128, 'cycles_per_run': 2000 }) m = Machine.from_cfg(cfg, True) assert m assert m.get_cpu_type() == Machine.CPU_TYPE_68020 assert m.get_cpu_name() == '68020' assert m.get_ram_total_kib() == 2048 assert m.max_cycles == 128 assert m.cycles_per_run == 2000 assert m.get_label_mgr()
def profiler_main_def_profiler_test(caplog): caplog.set_level(logging.INFO, "prof") p = Profiler() mp = MainProfiler(enabled=True) cfg = ConfigDict( {"enabled": True, "output": {"dump": True, "file": None, "append": True}} ) assert mp.parse_config(cfg) assert mp.add_profiler(p) mp.setup() mp.shutdown() assert caplog.record_tuples == [ ("prof", logging.INFO, "---------- Profiling Results ----------"), ("prof", logging.INFO, "----- profiler 'foo' -----"), ]
def libcore_profiler_profiler_config_test(): name = 'dos.library' fd = read_lib_fd(name) prof = LibProfiler() prof.parse_config(ConfigDict({ "names": [name], "calls": True })) prof.setup() p = prof.create_profile(name, fd) data = prof.get_data() prof2 = LibProfiler() assert prof2.set_data(data) p2 = prof2.get_profile(name) assert p == p2
def machine_machine_cfg_test(): cfg = ConfigDict({ "cpu": "68020", "ram_size": 2048, "max_cycles": 128, "cycles_per_run": 2000 }) m = Machine.from_cfg(cfg, True) assert m assert m.get_cpu_type() == Machine.CPU_TYPE_68020 assert m.get_cpu_name() == "68020" assert m.get_ram_total_kib() == 2048 assert m.max_cycles == 128 assert m.cycles_per_run == 2000 assert m.get_label_mgr()
def _load_profile(self, args): # read file try: with open(args.input) as fh: data = json.load(fh) if "libs" in data: data = ConfigDict(data["libs"]) self.profiler = LibProfiler() self.profiler.set_data(data) return True else: print("no 'libs' found in '%s'" % args.input) return False except IOError as e: print("loading '%s' failed: %s" % (args.input, e)) return False
def profiler_main_config_test(caplog, tmpdir): caplog.set_level(logging.INFO, "prof") path = str(tmpdir.join("prof.json")) mp = MainProfiler() cfg = ConfigDict( {"enabled": True, "output": {"dump": True, "file": path, "append": True}} ) assert mp.parse_config(cfg) assert mp.enabled assert mp.file == path assert mp.append mp.setup() mp.shutdown() assert caplog.record_tuples == [ ("prof", logging.INFO, "---------- Profiling Results ----------"), ]
def vamos_log_setup_verbose_test(caplog): log_cfg = ConfigDict({ "file": None, "quiet": False, "verbose": True, # verbose sets main to info "timestamps": True, "levels": None, }) assert log_setup(log_cfg) do_log() assert caplog.record_tuples == [ ("main", logging.INFO, "info"), ("main", logging.WARNING, "warn"), ("main", logging.ERROR, "error"), ("mem", logging.WARNING, "warn"), ("mem", logging.ERROR, "error"), ]
def profiler_main_config_test(caplog, tmpdir): path = str(tmpdir.join("prof.json")) mp = MainProfiler() cfg = ConfigDict({ 'enabled': True, 'output': { 'dump': True, 'file': path, 'append': True } }) assert mp.parse_config(cfg) assert mp.enabled assert mp.file == path assert mp.append mp.setup() mp.shutdown() assert caplog.record_tuples == []
def profiler_main_config_test(caplog, tmpdir): path = str(tmpdir.join("prof.json")) mp = MainProfiler() cfg = ConfigDict({ "enabled": True, "output": { "dump": True, "file": path, "append": True } }) assert mp.parse_config(cfg) assert mp.enabled assert mp.file == path assert mp.append mp.setup() mp.shutdown() assert caplog.record_tuples == []
def path_mgr_config_empty_test(): pm = PathManager() cfg = ConfigDict({ "volumes": None, "assigns": None, "path": { "command": ["sys:c"], "cwd": "sys:", "vols_base_dir": None, "auto_volumes": [], "auto_assigns": [] } }) assert pm.parse_config(cfg) assert pm.setup() assert pm.get_all_volume_names() == ['system'] assert pm.get_all_assign_names() == ['sys'] pm.shutdown()
def profiler_main_test_prof_cfg_test(): p = MyProfiler() mp = MainProfiler(enabled=True) cfg = ConfigDict({ 'enabled': True, 'output': { 'dump': True, 'file': None, 'append': True }, 'test': { 'foo': 42, 'bar': 'hello' } }) assert mp.parse_config(cfg) assert mp.add_profiler(p) assert p.foo == 42 assert p.bar == 'hello'
def profiler_main_def_profiler_test(caplog): caplog.set_level(logging.INFO) p = Profiler() mp = MainProfiler(enabled=True) cfg = ConfigDict({ 'enabled': True, 'output': { 'dump': True, 'file': None, 'append': True } }) assert mp.parse_config(cfg) assert mp.add_profiler(p) mp.setup() mp.shutdown() assert caplog.record_tuples == [ ('prof', logging.INFO, '---------- Profiling Results ----------'), ('prof', logging.INFO, "----- profiler 'foo' -----") ]
def profiler_main_test_prof_dump_test(caplog): caplog.set_level(logging.INFO, "prof") cfg = ConfigDict( {"enabled": True, "output": {"dump": True, "file": None, "append": True}} ) p = MyProfiler() mp = MainProfiler(enabled=True) assert mp.parse_config(cfg) assert mp.add_profiler(p) mp.setup() assert p.foo == 0 assert p.bar == "baz" p.foo = 42 p.bar = "hello" mp.shutdown() assert caplog.record_tuples == [ ("prof", logging.INFO, "---------- Profiling Results ----------"), ("prof", logging.INFO, "----- profiler 'test' -----"), ("prof", logging.INFO, "foo=42, bar='hello'"), ]
def libcore_profiler_main_profiler_test(): name = "dos.library" fd = read_lib_fd(name) cfg = ConfigDict( { "enabled": True, "libs": {"names": [name], "calls": True}, "output": {"file": None, "append": False, "dump": True}, } ) mp = MainProfiler() prof = LibProfiler() assert mp.parse_config(cfg) assert mp.add_profiler(prof) mp.setup() assert prof.names == [name] assert prof.add_calls p = prof.create_profile(name, fd) assert p mp.shutdown()
def path_mgr_config_esc_sys_test(tmpdir): sys_path = str(tmpdir.mkdir("sys")) work_path = str(tmpdir.mkdir("work")) pm = PathManager() cfg = ConfigDict({ "volumes": ["sys:" + sys_path, "work:" + work_path, "home:~"], "assigns": ["c:sys:c+home:c", "libs:sys:libs", "devs:sys:devs"], "path": { "command": ["::" + work_path], "cwd": "::~", "vols_base_dir": None, "auto_assigns": [], "auto_volumes": [], }, }) assert pm.parse_config(cfg) assert pm.setup() assert pm.get_all_volume_names() == ["sys", "work", "home"] assert pm.get_all_assign_names() == ["c", "libs", "devs"] assert pm.get_cwd() == "home:" assert pm.get_cmd_paths() == ["work:"] pm.shutdown()
def path_mgr_config_auto_empty_test(tmpdir): vols_base = str(tmpdir.mkdir("volumes")) tmpdir.join("volumes").mkdir("work") sys_path = str(tmpdir.mkdir("sys")) pm = PathManager() cfg = ConfigDict({ "volumes": ["sys:" + sys_path, "work", "home:~"], # local volume "assigns": ["c:sys:c+home:c", "libs:sys:libs", "devs:sys:devs"], "path": { "command": ["c:", "work:c"], "cwd": "work:", "vols_base_dir": vols_base, "auto_assigns": [], "auto_volumes": [], }, }) assert pm.parse_config(cfg) assert pm.setup() assert pm.get_all_volume_names() == ["sys", "work", "home"] assert pm.get_all_assign_names() == ["c", "libs", "devs"] assert pm.get_cwd() == "work:" assert pm.get_cmd_paths() == ["c:", "work:c"] pm.shutdown()
def profiler_main_file_test(caplog, tmpdir): caplog.set_level(logging.DEBUG) path = str(tmpdir.join("prof.json")) p = Profiler() mp = MainProfiler(enabled=True) cfg = ConfigDict({ "enabled": True, "output": { "dump": False, "file": path, "append": True } }) assert mp.parse_config(cfg) assert mp.add_profiler(p) mp.setup() mp.shutdown() assert caplog.record_tuples == [ ("prof", logging.DEBUG, "added profiler 'foo'"), ("prof", logging.DEBUG, "saving profile data to '%s'" % path), ("prof", logging.DEBUG, "done saving."), ] caplog.clear() # now repeat setup to test appending p = Profiler() mp = MainProfiler(enabled=True) assert mp.parse_config(cfg) assert mp.add_profiler(p) mp.setup() mp.shutdown() assert caplog.record_tuples == [ ("prof", logging.DEBUG, "added profiler 'foo'"), ("prof", logging.DEBUG, "loading profile data from '%s'" % path), ("prof", logging.DEBUG, "done loading."), ("prof", logging.DEBUG, "saving profile data to '%s'" % path), ("prof", logging.DEBUG, "done saving."), ]
def profiler_main_test_prof_load_test(tmpdir): path = str(tmpdir.join("prof.json")) cfg = ConfigDict( {"enabled": True, "output": {"dump": True, "file": path, "append": True}} ) p = MyProfiler() mp = MainProfiler(enabled=True) assert mp.parse_config(cfg) assert mp.add_profiler(p) mp.setup() assert p.foo == 0 assert p.bar == "baz" p.foo = 42 p.bar = "hello" mp.shutdown() # load again p = MyProfiler() mp = MainProfiler(enabled=True) assert mp.parse_config(cfg) assert mp.add_profiler(p) mp.setup() assert p.foo == 42 assert p.bar == "hello" mp.shutdown()
def cfgcore_cfgdict_default_test(): cd = ConfigDict() cd['a'] = 10 assert cd.a == 10
def cfgcore_cfgdict_clone_test(): cfg = {"a": {"x": 10}, "b": {"y": 20}} cd = ConfigDict(cfg) assert cd.a.x == 10 assert cd.b.y == 20