mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-03-01 17:47:30 +01:00
failure_onion: a test that only ensures lightningd doesn't crash.
This commit is contained in:
parent
9e4bed73d9
commit
c5aa2ea911
2 changed files with 40 additions and 0 deletions
29
tests/plugins/htlc_accepted-failonion.py
Executable file
29
tests/plugins/htlc_accepted-failonion.py
Executable file
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env python3
|
||||
"""A simply plugin that fails HTLCs with a meaningless onion.
|
||||
|
||||
"""
|
||||
from pyln.client import Plugin
|
||||
|
||||
|
||||
plugin = Plugin()
|
||||
|
||||
|
||||
@plugin.hook("htlc_accepted")
|
||||
def on_htlc_accepted(htlc, onion, plugin, **kwargs):
|
||||
print('returning failonion', plugin.failonion)
|
||||
return {"result": "fail", "failure_onion": plugin.failonion}
|
||||
|
||||
|
||||
@plugin.method("setfailonion")
|
||||
def setfailonion(plugin, onion):
|
||||
"""Sets the failure_onion to return when receiving an incoming HTLC.
|
||||
"""
|
||||
plugin.failonion = onion
|
||||
|
||||
|
||||
@plugin.init()
|
||||
def on_init(**kwargs):
|
||||
plugin.failonion = None
|
||||
|
||||
|
||||
plugin.run()
|
|
@ -2135,3 +2135,14 @@ def test_hook_dep_stable(node_factory):
|
|||
l2.daemon.wait_for_log(r"dep_d.py: htlc_accepted called")
|
||||
l2.daemon.wait_for_log(r"dep_e.py: htlc_accepted called")
|
||||
l2.daemon.wait_for_log(r"dep_b.py: htlc_accepted called")
|
||||
|
||||
|
||||
def test_htlc_accepted_hook_failonion(node_factory):
|
||||
plugin = os.path.join(os.path.dirname(__file__), 'plugins/htlc_accepted-failonion.py')
|
||||
l1, l2 = node_factory.line_graph(2, opts=[{}, {'plugin': plugin}])
|
||||
|
||||
# an invalid onion
|
||||
l2.rpc.setfailonion('0' * (292 * 2))
|
||||
inv = l2.rpc.invoice(42, 'failonion000', '')['bolt11']
|
||||
with pytest.raises(RpcError):
|
||||
l1.rpc.pay(inv)
|
||||
|
|
Loading…
Add table
Reference in a new issue