Example #1
0
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'
  }
Example #2
0
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"),
    ]
Example #3
0
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()
Example #4
0
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')
  ]
Example #5
0
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"
Example #6
0
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')]
Example #7
0
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
Example #8
0
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()
Example #9
0
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' -----"),
    ]
Example #10
0
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
Example #11
0
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()
Example #12
0
 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
Example #13
0
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 ----------"),
    ]
Example #14
0
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"),
    ]
Example #15
0
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 == []
Example #16
0
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 == []
Example #17
0
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()
Example #18
0
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'
Example #19
0
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' -----")
    ]
Example #20
0
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'"),
    ]
Example #21
0
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()
Example #22
0
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()
Example #23
0
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()
Example #24
0
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."),
    ]
Example #25
0
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()
Example #26
0
def cfgcore_cfgdict_default_test():
  cd = ConfigDict()
  cd['a'] = 10
  assert cd.a == 10
Example #27
0
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