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 libmgr_cfg_mgr_auto_test(): cfg = get_custom_cfg() mgr = LibMgrCfg.from_dict(cfg) assert mgr lib_cfg = mgr.get_cfg('foo.library') assert lib_cfg assert lib_cfg.get_create_mode() == LibCfg.CREATE_MODE_AMIGA assert lib_cfg.get_force_version() == 42 assert lib_cfg.get_expunge_mode() == LibCfg.EXPUNGE_MODE_LAST_CLOSE assert lib_cfg.get_num_fake_funcs() == 2 lib_default = mgr.get_cfg(['bla.library']) 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_cfg = mgr.get_cfg('bar.device') assert dev_cfg assert dev_cfg.get_create_mode() == LibCfg.CREATE_MODE_FAKE assert dev_cfg.get_force_version() == 23 assert dev_cfg.get_expunge_mode() == LibCfg.EXPUNGE_MODE_SHUTDOWN assert dev_cfg.get_num_fake_funcs() == 4 dev_default = mgr.get_cfg(['bla.device']) 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() == 3
def libmgr_cfg_mgr_base_name_test(): cfg = get_custom_cfg() mgr = LibMgrCfg.from_dict(cfg) assert mgr # fall back to 'foo.library' not the default lib_cfg = mgr.get_cfg('bla/foo.library') assert lib_cfg assert lib_cfg.get_create_mode() == LibCfg.CREATE_MODE_AMIGA assert lib_cfg.get_force_version() == 42 assert lib_cfg.get_expunge_mode() == LibCfg.EXPUNGE_MODE_LAST_CLOSE assert lib_cfg.get_num_fake_funcs() == 2 # use exact match lib_cfg = mgr.get_cfg('libs/foo.library') assert lib_cfg assert lib_cfg.get_create_mode() == LibCfg.CREATE_MODE_VAMOS assert lib_cfg.get_force_version() == 43 assert lib_cfg.get_expunge_mode() == LibCfg.EXPUNGE_MODE_LAST_CLOSE assert lib_cfg.get_num_fake_funcs() == 10 # fall back to 'bar.device' not the default dev_cfg = mgr.get_cfg('baz/bar.device') assert dev_cfg assert dev_cfg.get_create_mode() == LibCfg.CREATE_MODE_FAKE assert dev_cfg.get_force_version() == 23 assert dev_cfg.get_expunge_mode() == LibCfg.EXPUNGE_MODE_SHUTDOWN assert dev_cfg.get_num_fake_funcs() == 4 # use exact match dev_cfg = mgr.get_cfg('devs/bar.device') assert dev_cfg assert dev_cfg.get_create_mode() == LibCfg.CREATE_MODE_VAMOS assert dev_cfg.get_force_version() == 43 assert dev_cfg.get_expunge_mode() == LibCfg.EXPUNGE_MODE_LAST_CLOSE assert dev_cfg.get_num_fake_funcs() == 11
def libmgr_cfg_mgr_dev_test(): lmc = LibMgrCfg() lc = LibCfg(LibCfg.CREATE_MODE_OFF, 1, LibCfg.EXPUNGE_MODE_NO_MEM) lmc.add_dev_cfg("bla.device", lc) assert lmc.get_dev_cfg("bla.device") == lc assert lmc.get_dev_cfg("foo.device") == LibCfg() lc2 = LibCfg(LibCfg.CREATE_MODE_AMIGA, 11, LibCfg.EXPUNGE_MODE_NO_MEM) lmc.add_dev_cfg("foo.device", lc2) assert lmc.get_dev_cfg("foo.device") == lc2
def libmgr_cfg_mgr_lib_test(): lmc = LibMgrCfg() lc = LibCfg(LibCfg.CREATE_MODE_OFF, 1, LibCfg.EXPUNGE_MODE_NO_MEM) lmc.add_lib_cfg("bla.library", lc) assert lmc.get_lib_cfg("bla.library") == lc assert lmc.get_lib_cfg("foo.library") == LibCfg() lc2 = LibCfg(LibCfg.CREATE_MODE_AMIGA, 11, LibCfg.EXPUNGE_MODE_NO_MEM) lmc.add_lib_cfg("foo.library", lc2) assert lmc.get_lib_cfg("foo.library") == lc2
def libmgr_cfg_mgr_dev_default_test(): lcd = LibCfg(LibCfg.CREATE_MODE_OFF, 1, LibCfg.EXPUNGE_MODE_NO_MEM) lmc = LibMgrCfg(dev_default=lcd) assert lmc.get_dev_cfg("bla.device") == lcd lc = LibCfg(LibCfg.CREATE_MODE_OFF, 1, LibCfg.EXPUNGE_MODE_NO_MEM) lmc.add_dev_cfg("bla.device", lc) assert lmc.get_dev_cfg("bla.device") == lc
def libmgr_cfg_mgr_lib_default_test(): lcd = LibCfg(LibCfg.CREATE_MODE_OFF, 1, LibCfg.EXPUNGE_MODE_NO_MEM) lmc = LibMgrCfg(lib_default=lcd) assert lmc.get_lib_cfg("bla.library") == lcd lc = LibCfg(LibCfg.CREATE_MODE_OFF, 1, LibCfg.EXPUNGE_MODE_NO_MEM) lmc.add_lib_cfg("bla.library", lc) assert lmc.get_lib_cfg("bla.library") == lc
def libmgr_cfg_dump_test(capsys): cfg = get_custom_cfg() mgr = LibMgrCfg.from_dict(cfg) mgr.dump() captured = capsys.readouterr() assert captured.out.splitlines() == [ "libs config:", " default: LibCfg(create_mode=fake, force_version=23, expunge_mode=shutdown)", " lib 'foo.library': LibCfg(create_mode=amiga, force_version=42, expunge_mode=last_close)", "devs config:", " default: LibCfg(create_mode=amiga, force_version=42, expunge_mode=last_close)", " dev 'bar.device': LibCfg(create_mode=fake, force_version=23, expunge_mode=shutdown)" ]
def libmgr_cfg_mgr_from_dict_custom_test(): cfg = get_custom_cfg() mgr = LibMgrCfg.from_dict(cfg) assert mgr lib_cfg = mgr.get_lib_cfg('foo.library') assert lib_cfg assert lib_cfg.get_create_mode() == LibCfg.CREATE_MODE_AMIGA assert lib_cfg.get_force_version() == 42 assert lib_cfg.get_expunge_mode() == LibCfg.EXPUNGE_MODE_LAST_CLOSE dev_cfg = mgr.get_dev_cfg('bar.device') assert dev_cfg assert dev_cfg.get_create_mode() == LibCfg.CREATE_MODE_FAKE assert dev_cfg.get_force_version() == 23 assert dev_cfg.get_expunge_mode() == LibCfg.EXPUNGE_MODE_SHUTDOWN
def setup(path_mgr=None): log_libmgr.setLevel(logging.INFO) log_exec.setLevel(logging.INFO) machine = Machine() # machine.show_instr(True) sp = machine.get_ram_begin() - 4 alloc = MemoryAlloc.for_machine(machine) segloader = SegmentLoader(alloc, path_mgr) cfg = LibMgrCfg() mgr = LibManager(machine, alloc, segloader, cfg) # setup ctx map cpu = machine.get_cpu() mem = machine.get_mem() cpu_type = machine.get_cpu_type() exec_ctx = ExecLibCtx(machine, alloc, segloader, path_mgr, mgr) mgr.add_ctx("exec.library", exec_ctx) mgr.add_impl_cls("exec.library", ExecLibrary) dos_ctx = DosLibCtx(machine, alloc, segloader, path_mgr, None, None) mgr.add_ctx("dos.library", dos_ctx) mgr.add_impl_cls("dos.library", DosLibrary) mgr.add_impl_cls("vamostest.library", VamosTestLibrary) mgr.add_impl_cls("vamostestdev.device", VamosTestDevice) return machine, alloc, mgr, sp, cfg
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 libmgr_cfg_mgr_custom_test(): lcd = LibCfg(LibCfg.CREATE_MODE_OFF, True, 1, LibCfg.EXPUNGE_MODE_NO_MEM) lmc = LibMgrCfg(do_profile_all=True, profile_add_samples=True, def_cfg=lcd) assert lmc.get_do_profile_all() assert lmc.get_profile_add_samples() assert lmc.get_def_cfg() == lcd assert lmc.get_all_names() == [] assert lmc.get_cfg("bla.library") == lcd lc = LibCfg(LibCfg.CREATE_MODE_OFF, True, 1, LibCfg.EXPUNGE_MODE_NO_MEM) lmc.add_cfg("bla.library", lc) assert lmc.get_cfg("bla.library") == lc assert lmc.get_all_names() == ["bla.library"]
def libmgr_cfg_mgr_default_test(): lmc = LibMgrCfg() assert not lmc.get_do_profile_all() assert not lmc.get_profile_add_samples() assert lmc.get_def_cfg() == LibCfg() assert lmc.get_all_names() == [] assert lmc.get_cfg("bla.library") == LibCfg() lc = LibCfg(LibCfg.CREATE_MODE_OFF, True, 1, LibCfg.EXPUNGE_MODE_NO_MEM) lmc.add_cfg("bla.library", lc) assert lmc.get_cfg("bla.library") == lc assert lmc.get_all_names() == ["bla.library"] assert lmc.get_cfg("foo.library") == LibCfg() lc2 = LibCfg(LibCfg.CREATE_MODE_AMIGA, False, 11, LibCfg.EXPUNGE_MODE_NO_MEM) lmc.add_cfg("foo.library", lc2) assert lmc.get_cfg("foo.library") == lc2 assert lmc.get_all_names() == ["bla.library", "foo.library"]