mirror of https://github.com/pwndbg/pwndbg.git
Add a test for config triggers (#1225)
* Split config.py into lib/ and gdblib/ * Add test for config triggerspull/1279/head
parent
eabab316d2
commit
084eb36813
@ -0,0 +1,45 @@
|
||||
from unittest import mock
|
||||
|
||||
import gdb
|
||||
|
||||
from pwndbg.gdblib import config
|
||||
|
||||
|
||||
def set_show(param_name, value):
|
||||
gdb.execute("show %s" % param_name)
|
||||
gdb.execute("set %s %s" % (param_name, value))
|
||||
gdb.execute("show %s" % param_name)
|
||||
|
||||
|
||||
def test_triggers():
|
||||
for param_name, triggers in config.triggers.items():
|
||||
p = getattr(config, param_name.replace("-", "_"))
|
||||
|
||||
mock_triggers = []
|
||||
for trigger in triggers:
|
||||
mock_triggers.append(mock.Mock(side_effect=trigger))
|
||||
|
||||
orig_triggers = config.triggers[param_name]
|
||||
config.triggers[param_name] = mock_triggers
|
||||
|
||||
if p.value is True:
|
||||
set_show(param_name, "off")
|
||||
elif p.value is False:
|
||||
set_show(param_name, "on")
|
||||
elif isinstance(p.value, int):
|
||||
set_show(param_name, 0)
|
||||
set_show(param_name, 1)
|
||||
set_show(param_name, -1)
|
||||
elif isinstance(p.value, str):
|
||||
set_show(param_name, "")
|
||||
set_show(param_name, "some invalid text")
|
||||
set_show(param_name, "red")
|
||||
set_show(param_name, "bold,yellow")
|
||||
else:
|
||||
print(p.value, type(p.value))
|
||||
assert False
|
||||
|
||||
for mock_trigger in mock_triggers:
|
||||
mock_trigger.assert_called()
|
||||
|
||||
config.triggers[param_name] = orig_triggers
|
||||
Loading…
Reference in new issue