Admin Panel

from amitools.vamos.machine import MockTraps

def mock_traps_base_test():
  t = MockTraps()
  a = []
  def my_func(op, pc):
    assert op == 0xa000
    assert pc == 0x42
    a.append("huhu")
  assert t.get_num_traps() == 0
  tid = t.setup(my_func)
  assert t.get_num_traps() == 1
  assert t.get_func(tid) == my_func
  assert not t.is_auto_rts(tid)
  assert not t.is_one_shot(tid)
  t.trigger(tid, pc=0x42)
  assert a == ["huhu"]
  t.free(tid)
  assert t.get_num_traps() == 0

def mock_traps_one_shot_test():
  t = MockTraps()
  a = []
  def my_func(op, pc):
    assert op == 0xa000
    assert pc == 0x42
    a.append("huhu")
  assert t.get_num_traps() == 0
  tid = t.setup(my_func, one_shot=True)
  assert t.get_num_traps() == 1
  assert t.get_func(tid) == my_func
  assert not t.is_auto_rts(tid)
  assert t.is_one_shot(tid)
  t.trigger(tid, pc=0x42)
  assert a == ["huhu"]
  assert t.get_num_traps() == 0