Pre-scoring test clean-ups - #1120

Merged
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors
Oct 14, 2021
Merged

Pre-scoring test clean-ups#1120
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors

Conversation

@jkczyz

Copy link
Copy Markdown
Contributor

Replaces get_route with get_route_and_payment_hash in tests wherever possible, since a scorer will need to be passed to get_route. Also includes some fairly trivial test clean ups.

@jkczyz

Copy link
Copy Markdown
ContributorAuthor

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

@codecov

codecovBot commented Oct 13, 2021

Copy link
Copy Markdown

Codecov Report

Merging #1120 (d4ec090) into main (fe8c10d) will increase coverage by 0.06%.
The diff coverage is 100.00%.

Impacted file tree graph

@@ Coverage Diff @@## main #1120 +/- ##
==========================================
+ Coverage 90.67% 90.73% +0.06% 
==========================================
Files 66 66 Lines 34732 34808 +76 ==========================================
+ Hits 31494 31584 +90 + Misses 3238 3224 -14 
Impacted FilesCoverage Δ
lightning-background-processor/src/lib.rs94.23% <ø> (ø)
lightning/src/chain/channelmonitor.rs91.26% <ø> (ø)
lightning/src/ln/functional_test_utils.rs95.08% <ø> (-0.01%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <ø> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.67% <100.00%> (-0.11%)⬇️
lightning/src/ln/channelmanager.rs85.12% <100.00%> (-0.03%)⬇️
lightning/src/ln/functional_tests.rs97.33% <100.00%> (-0.15%)⬇️
lightning/src/ln/onion_route_tests.rs96.60% <100.00%> (-0.05%)⬇️
lightning/src/ln/payment_tests.rs98.83% <100.00%> (+0.08%)⬆️
lightning/src/ln/shutdown_tests.rs95.87% <100.00%> (-0.02%)⬇️
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fe8c10d...d4ec090. Read the comment docs.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 49e7016 to 7719633CompareOctober 13, 2021 19:09
@jkczyz

Copy link
Copy Markdown
ContributorAuthor

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

Dropped the commit.

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

Reverted the marked changes to use get_route where applicable for ease of review, as requested offline. Left TODOs about changing them to get_route_and_payment_hash.

Comment threadlightning/src/ln/shutdown_tests.rs Outdated
check_closed_event!(nodes[1], 1, ClosureReason::CooperativeClosure);
}

// TODO: Determine why get_route fails when replacing get_payment_preimage_hash with

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have another todo here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainly to note why it may be that a simple replacement doesn't work here. Can drop it if you prefer.

@TheBlueMatt

TheBlueMatt commented Oct 13, 2021

Copy link
Copy Markdown
Collaborator

Do you want to take the in-number _ additions from #1113 here? It makes things a bit easier to read in a number of places IMO.Actually, I'll just rebase 1113 we can do it later.

Comment threadlightning/src/ln/functional_tests.rs Outdated
let (_, second_payment_hash, second_payment_secret) = get_payment_preimage_hash!(nodes[2]);
let sending_node = if forwarded_htlc { &nodes[0] } else { &nodes[1] };
let (route, second_payment_hash, _, second_payment_secret) = get_route_and_payment_hash!(sending_node, nodes[2], 100000);
// TODO: Why use a different payment secret here?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cause there's two different payments?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was unsure because they both used second_payment_hash but a different secret.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I was comparing it to the first send event further up, its just a typo I believe, feel free to drop it if the test still passes and always use the second secret.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to use the second secret.

Comment threadlightning/src/ln/functional_tests.rs Outdated
assert_ne!(node_txn[0].input[0].previous_output, node_txn[2].input[0].previous_output);
assert_ne!(node_txn[1].input[0].previous_output, node_txn[2].input[0].previous_output);

// TODO: Determine why replacing get_route with get_route_and_payment_hash above causes

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because the tx ordering is based on the payment hash and we end up with a different hash, I assume? Or something like that, but maybe we should just drop the TODO and open a general "move the remaining explicit route calls to the routing macro" issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM

@valentinewallacevalentinewallace left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK mod removing the todos in favor of an issue + squash

Comment threadlightning/src/ln/onion_route_tests.rs Outdated

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs squash.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from b6a3f5c to d700faaCompareOctober 13, 2021 22:27
let _chan = create_chan_between_nodes(&nodes[0], &nodes[1], InitFeatures::known(), InitFeatures::known());
let network_graph = &nodes[0].net_graph_msg_handler.network_graph;
let first_hops = nodes[0].node.list_usable_channels();
let route = get_keysend_route(&payer_pubkey, &network_graph, &payee_pubkey,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be the only place we call get_keysend_route in tests through a private channel, so I think best to keep it.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted and updated the other keysend test to use get_keysend_route.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from d700faa to 3e9678cCompareOctober 13, 2021 23:21
The interface for get_route will change to take a scorer. Using
get_route_and_payment_hash whenever possible allows for keeping the
scorer inside get_route_and_payment_hash rather than at every call site.
Replace get_route with get_route_and_payment_hash wherever possible.
Additionally, update get_route_and_payment_hash to use the known invoice
features and the sending node's logger.
@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 3e9678c to d4ec090CompareOctober 13, 2021 23:37
@TheBlueMatt
TheBlueMatt merged commit da498d7 into lightningdevkit:mainOct 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jkczyz@TheBlueMatt@valentinewallace
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Pre-scoring test clean-ups - #1120

Merged
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors
Oct 14, 2021
Merged

Pre-scoring test clean-ups#1120
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors

Conversation

@jkczyz

Copy link
Copy Markdown
Contributor

Replaces get_route with get_route_and_payment_hash in tests wherever possible, since a scorer will need to be passed to get_route. Also includes some fairly trivial test clean ups.

@jkczyz

Copy link
Copy Markdown
ContributorAuthor

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

@codecov

codecovBot commented Oct 13, 2021

Copy link
Copy Markdown

Codecov Report

Merging #1120 (d4ec090) into main (fe8c10d) will increase coverage by 0.06%.
The diff coverage is 100.00%.

Impacted file tree graph

@@ Coverage Diff @@## main #1120 +/- ##
==========================================
+ Coverage 90.67% 90.73% +0.06% 
==========================================
Files 66 66 Lines 34732 34808 +76 ==========================================
+ Hits 31494 31584 +90 + Misses 3238 3224 -14 
Impacted FilesCoverage Δ
lightning-background-processor/src/lib.rs94.23% <ø> (ø)
lightning/src/chain/channelmonitor.rs91.26% <ø> (ø)
lightning/src/ln/functional_test_utils.rs95.08% <ø> (-0.01%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <ø> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.67% <100.00%> (-0.11%)⬇️
lightning/src/ln/channelmanager.rs85.12% <100.00%> (-0.03%)⬇️
lightning/src/ln/functional_tests.rs97.33% <100.00%> (-0.15%)⬇️
lightning/src/ln/onion_route_tests.rs96.60% <100.00%> (-0.05%)⬇️
lightning/src/ln/payment_tests.rs98.83% <100.00%> (+0.08%)⬆️
lightning/src/ln/shutdown_tests.rs95.87% <100.00%> (-0.02%)⬇️
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fe8c10d...d4ec090. Read the comment docs.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 49e7016 to 7719633CompareOctober 13, 2021 19:09
@jkczyz

Copy link
Copy Markdown
ContributorAuthor

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

Dropped the commit.

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

Reverted the marked changes to use get_route where applicable for ease of review, as requested offline. Left TODOs about changing them to get_route_and_payment_hash.

Comment threadlightning/src/ln/shutdown_tests.rs Outdated
check_closed_event!(nodes[1], 1, ClosureReason::CooperativeClosure);
}

// TODO: Determine why get_route fails when replacing get_payment_preimage_hash with

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have another todo here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainly to note why it may be that a simple replacement doesn't work here. Can drop it if you prefer.

@TheBlueMatt

TheBlueMatt commented Oct 13, 2021

Copy link
Copy Markdown
Collaborator

Do you want to take the in-number _ additions from #1113 here? It makes things a bit easier to read in a number of places IMO.Actually, I'll just rebase 1113 we can do it later.

Comment threadlightning/src/ln/functional_tests.rs Outdated
let (_, second_payment_hash, second_payment_secret) = get_payment_preimage_hash!(nodes[2]);
let sending_node = if forwarded_htlc { &nodes[0] } else { &nodes[1] };
let (route, second_payment_hash, _, second_payment_secret) = get_route_and_payment_hash!(sending_node, nodes[2], 100000);
// TODO: Why use a different payment secret here?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cause there's two different payments?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was unsure because they both used second_payment_hash but a different secret.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I was comparing it to the first send event further up, its just a typo I believe, feel free to drop it if the test still passes and always use the second secret.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to use the second secret.

Comment threadlightning/src/ln/functional_tests.rs Outdated
assert_ne!(node_txn[0].input[0].previous_output, node_txn[2].input[0].previous_output);
assert_ne!(node_txn[1].input[0].previous_output, node_txn[2].input[0].previous_output);

// TODO: Determine why replacing get_route with get_route_and_payment_hash above causes

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because the tx ordering is based on the payment hash and we end up with a different hash, I assume? Or something like that, but maybe we should just drop the TODO and open a general "move the remaining explicit route calls to the routing macro" issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM

@valentinewallacevalentinewallace left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK mod removing the todos in favor of an issue + squash

Comment threadlightning/src/ln/onion_route_tests.rs Outdated

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs squash.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from b6a3f5c to d700faaCompareOctober 13, 2021 22:27
let _chan = create_chan_between_nodes(&nodes[0], &nodes[1], InitFeatures::known(), InitFeatures::known());
let network_graph = &nodes[0].net_graph_msg_handler.network_graph;
let first_hops = nodes[0].node.list_usable_channels();
let route = get_keysend_route(&payer_pubkey, &network_graph, &payee_pubkey,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be the only place we call get_keysend_route in tests through a private channel, so I think best to keep it.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted and updated the other keysend test to use get_keysend_route.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from d700faa to 3e9678cCompareOctober 13, 2021 23:21
The interface for get_route will change to take a scorer. Using
get_route_and_payment_hash whenever possible allows for keeping the
scorer inside get_route_and_payment_hash rather than at every call site.
Replace get_route with get_route_and_payment_hash wherever possible.
Additionally, update get_route_and_payment_hash to use the known invoice
features and the sending node's logger.
@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 3e9678c to d4ec090CompareOctober 13, 2021 23:37
@TheBlueMatt
TheBlueMatt merged commit da498d7 into lightningdevkit:mainOct 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jkczyz@TheBlueMatt@valentinewallace
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Pre-scoring test clean-ups - #1120

Merged
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors
Oct 14, 2021
Merged

Pre-scoring test clean-ups#1120
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors

Conversation

@jkczyz

Copy link
Copy Markdown
Contributor

Replaces get_route with get_route_and_payment_hash in tests wherever possible, since a scorer will need to be passed to get_route. Also includes some fairly trivial test clean ups.

@jkczyz

Copy link
Copy Markdown
ContributorAuthor

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

@codecov

codecovBot commented Oct 13, 2021

Copy link
Copy Markdown

Codecov Report

Merging #1120 (d4ec090) into main (fe8c10d) will increase coverage by 0.06%.
The diff coverage is 100.00%.

Impacted file tree graph

@@ Coverage Diff @@## main #1120 +/- ##
==========================================
+ Coverage 90.67% 90.73% +0.06% 
==========================================
Files 66 66 Lines 34732 34808 +76 ==========================================
+ Hits 31494 31584 +90 + Misses 3238 3224 -14 
Impacted FilesCoverage Δ
lightning-background-processor/src/lib.rs94.23% <ø> (ø)
lightning/src/chain/channelmonitor.rs91.26% <ø> (ø)
lightning/src/ln/functional_test_utils.rs95.08% <ø> (-0.01%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <ø> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.67% <100.00%> (-0.11%)⬇️
lightning/src/ln/channelmanager.rs85.12% <100.00%> (-0.03%)⬇️
lightning/src/ln/functional_tests.rs97.33% <100.00%> (-0.15%)⬇️
lightning/src/ln/onion_route_tests.rs96.60% <100.00%> (-0.05%)⬇️
lightning/src/ln/payment_tests.rs98.83% <100.00%> (+0.08%)⬆️
lightning/src/ln/shutdown_tests.rs95.87% <100.00%> (-0.02%)⬇️
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fe8c10d...d4ec090. Read the comment docs.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 49e7016 to 7719633CompareOctober 13, 2021 19:09
@jkczyz

Copy link
Copy Markdown
ContributorAuthor

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

Dropped the commit.

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

Reverted the marked changes to use get_route where applicable for ease of review, as requested offline. Left TODOs about changing them to get_route_and_payment_hash.

Comment threadlightning/src/ln/shutdown_tests.rs Outdated
check_closed_event!(nodes[1], 1, ClosureReason::CooperativeClosure);
}

// TODO: Determine why get_route fails when replacing get_payment_preimage_hash with

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have another todo here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainly to note why it may be that a simple replacement doesn't work here. Can drop it if you prefer.

@TheBlueMatt

TheBlueMatt commented Oct 13, 2021

Copy link
Copy Markdown
Collaborator

Do you want to take the in-number _ additions from #1113 here? It makes things a bit easier to read in a number of places IMO.Actually, I'll just rebase 1113 we can do it later.

Comment threadlightning/src/ln/functional_tests.rs Outdated
let (_, second_payment_hash, second_payment_secret) = get_payment_preimage_hash!(nodes[2]);
let sending_node = if forwarded_htlc { &nodes[0] } else { &nodes[1] };
let (route, second_payment_hash, _, second_payment_secret) = get_route_and_payment_hash!(sending_node, nodes[2], 100000);
// TODO: Why use a different payment secret here?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cause there's two different payments?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was unsure because they both used second_payment_hash but a different secret.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I was comparing it to the first send event further up, its just a typo I believe, feel free to drop it if the test still passes and always use the second secret.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to use the second secret.

Comment threadlightning/src/ln/functional_tests.rs Outdated
assert_ne!(node_txn[0].input[0].previous_output, node_txn[2].input[0].previous_output);
assert_ne!(node_txn[1].input[0].previous_output, node_txn[2].input[0].previous_output);

// TODO: Determine why replacing get_route with get_route_and_payment_hash above causes

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because the tx ordering is based on the payment hash and we end up with a different hash, I assume? Or something like that, but maybe we should just drop the TODO and open a general "move the remaining explicit route calls to the routing macro" issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM

@valentinewallacevalentinewallace left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK mod removing the todos in favor of an issue + squash

Comment threadlightning/src/ln/onion_route_tests.rs Outdated

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs squash.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from b6a3f5c to d700faaCompareOctober 13, 2021 22:27
let _chan = create_chan_between_nodes(&nodes[0], &nodes[1], InitFeatures::known(), InitFeatures::known());
let network_graph = &nodes[0].net_graph_msg_handler.network_graph;
let first_hops = nodes[0].node.list_usable_channels();
let route = get_keysend_route(&payer_pubkey, &network_graph, &payee_pubkey,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be the only place we call get_keysend_route in tests through a private channel, so I think best to keep it.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted and updated the other keysend test to use get_keysend_route.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from d700faa to 3e9678cCompareOctober 13, 2021 23:21
The interface for get_route will change to take a scorer. Using
get_route_and_payment_hash whenever possible allows for keeping the
scorer inside get_route_and_payment_hash rather than at every call site.
Replace get_route with get_route_and_payment_hash wherever possible.
Additionally, update get_route_and_payment_hash to use the known invoice
features and the sending node's logger.
@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 3e9678c to d4ec090CompareOctober 13, 2021 23:37
@TheBlueMatt
TheBlueMatt merged commit da498d7 into lightningdevkit:mainOct 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jkczyz@TheBlueMatt@valentinewallace
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Pre-scoring test clean-ups - #1120

Merged
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors
Oct 14, 2021
Merged

Pre-scoring test clean-ups#1120
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors

Conversation

@jkczyz

Copy link
Copy Markdown
Contributor

Replaces get_route with get_route_and_payment_hash in tests wherever possible, since a scorer will need to be passed to get_route. Also includes some fairly trivial test clean ups.

@jkczyz

Copy link
Copy Markdown
ContributorAuthor

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

@codecov

codecovBot commented Oct 13, 2021

Copy link
Copy Markdown

Codecov Report

Merging #1120 (d4ec090) into main (fe8c10d) will increase coverage by 0.06%.
The diff coverage is 100.00%.

Impacted file tree graph

@@ Coverage Diff @@## main #1120 +/- ##
==========================================
+ Coverage 90.67% 90.73% +0.06% 
==========================================
Files 66 66 Lines 34732 34808 +76 ==========================================
+ Hits 31494 31584 +90 + Misses 3238 3224 -14 
Impacted FilesCoverage Δ
lightning-background-processor/src/lib.rs94.23% <ø> (ø)
lightning/src/chain/channelmonitor.rs91.26% <ø> (ø)
lightning/src/ln/functional_test_utils.rs95.08% <ø> (-0.01%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <ø> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.67% <100.00%> (-0.11%)⬇️
lightning/src/ln/channelmanager.rs85.12% <100.00%> (-0.03%)⬇️
lightning/src/ln/functional_tests.rs97.33% <100.00%> (-0.15%)⬇️
lightning/src/ln/onion_route_tests.rs96.60% <100.00%> (-0.05%)⬇️
lightning/src/ln/payment_tests.rs98.83% <100.00%> (+0.08%)⬆️
lightning/src/ln/shutdown_tests.rs95.87% <100.00%> (-0.02%)⬇️
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fe8c10d...d4ec090. Read the comment docs.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 49e7016 to 7719633CompareOctober 13, 2021 19:09
@jkczyz

Copy link
Copy Markdown
ContributorAuthor

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

Dropped the commit.

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

Reverted the marked changes to use get_route where applicable for ease of review, as requested offline. Left TODOs about changing them to get_route_and_payment_hash.

Comment threadlightning/src/ln/shutdown_tests.rs Outdated
check_closed_event!(nodes[1], 1, ClosureReason::CooperativeClosure);
}

// TODO: Determine why get_route fails when replacing get_payment_preimage_hash with

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have another todo here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainly to note why it may be that a simple replacement doesn't work here. Can drop it if you prefer.

@TheBlueMatt

TheBlueMatt commented Oct 13, 2021

Copy link
Copy Markdown
Collaborator

Do you want to take the in-number _ additions from #1113 here? It makes things a bit easier to read in a number of places IMO.Actually, I'll just rebase 1113 we can do it later.

Comment threadlightning/src/ln/functional_tests.rs Outdated
let (_, second_payment_hash, second_payment_secret) = get_payment_preimage_hash!(nodes[2]);
let sending_node = if forwarded_htlc { &nodes[0] } else { &nodes[1] };
let (route, second_payment_hash, _, second_payment_secret) = get_route_and_payment_hash!(sending_node, nodes[2], 100000);
// TODO: Why use a different payment secret here?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cause there's two different payments?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was unsure because they both used second_payment_hash but a different secret.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I was comparing it to the first send event further up, its just a typo I believe, feel free to drop it if the test still passes and always use the second secret.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to use the second secret.

Comment threadlightning/src/ln/functional_tests.rs Outdated
assert_ne!(node_txn[0].input[0].previous_output, node_txn[2].input[0].previous_output);
assert_ne!(node_txn[1].input[0].previous_output, node_txn[2].input[0].previous_output);

// TODO: Determine why replacing get_route with get_route_and_payment_hash above causes

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because the tx ordering is based on the payment hash and we end up with a different hash, I assume? Or something like that, but maybe we should just drop the TODO and open a general "move the remaining explicit route calls to the routing macro" issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM

@valentinewallacevalentinewallace left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK mod removing the todos in favor of an issue + squash

Comment threadlightning/src/ln/onion_route_tests.rs Outdated

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs squash.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from b6a3f5c to d700faaCompareOctober 13, 2021 22:27
let _chan = create_chan_between_nodes(&nodes[0], &nodes[1], InitFeatures::known(), InitFeatures::known());
let network_graph = &nodes[0].net_graph_msg_handler.network_graph;
let first_hops = nodes[0].node.list_usable_channels();
let route = get_keysend_route(&payer_pubkey, &network_graph, &payee_pubkey,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be the only place we call get_keysend_route in tests through a private channel, so I think best to keep it.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted and updated the other keysend test to use get_keysend_route.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from d700faa to 3e9678cCompareOctober 13, 2021 23:21
The interface for get_route will change to take a scorer. Using
get_route_and_payment_hash whenever possible allows for keeping the
scorer inside get_route_and_payment_hash rather than at every call site.
Replace get_route with get_route_and_payment_hash wherever possible.
Additionally, update get_route_and_payment_hash to use the known invoice
features and the sending node's logger.
@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 3e9678c to d4ec090CompareOctober 13, 2021 23:37
@TheBlueMatt
TheBlueMatt merged commit da498d7 into lightningdevkit:mainOct 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jkczyz@TheBlueMatt@valentinewallace
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Pre-scoring test clean-ups - #1120

Merged
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors
Oct 14, 2021
Merged

Pre-scoring test clean-ups#1120
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors

Conversation

@jkczyz

Copy link
Copy Markdown
Contributor

Replaces get_route with get_route_and_payment_hash in tests wherever possible, since a scorer will need to be passed to get_route. Also includes some fairly trivial test clean ups.

@jkczyz

Copy link
Copy Markdown
ContributorAuthor

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

@codecov

codecovBot commented Oct 13, 2021

Copy link
Copy Markdown

Codecov Report

Merging #1120 (d4ec090) into main (fe8c10d) will increase coverage by 0.06%.
The diff coverage is 100.00%.

Impacted file tree graph

@@ Coverage Diff @@## main #1120 +/- ##
==========================================
+ Coverage 90.67% 90.73% +0.06% 
==========================================
Files 66 66 Lines 34732 34808 +76 ==========================================
+ Hits 31494 31584 +90 + Misses 3238 3224 -14 
Impacted FilesCoverage Δ
lightning-background-processor/src/lib.rs94.23% <ø> (ø)
lightning/src/chain/channelmonitor.rs91.26% <ø> (ø)
lightning/src/ln/functional_test_utils.rs95.08% <ø> (-0.01%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <ø> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.67% <100.00%> (-0.11%)⬇️
lightning/src/ln/channelmanager.rs85.12% <100.00%> (-0.03%)⬇️
lightning/src/ln/functional_tests.rs97.33% <100.00%> (-0.15%)⬇️
lightning/src/ln/onion_route_tests.rs96.60% <100.00%> (-0.05%)⬇️
lightning/src/ln/payment_tests.rs98.83% <100.00%> (+0.08%)⬆️
lightning/src/ln/shutdown_tests.rs95.87% <100.00%> (-0.02%)⬇️
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fe8c10d...d4ec090. Read the comment docs.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 49e7016 to 7719633CompareOctober 13, 2021 19:09
@jkczyz

Copy link
Copy Markdown
ContributorAuthor

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

Dropped the commit.

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

Reverted the marked changes to use get_route where applicable for ease of review, as requested offline. Left TODOs about changing them to get_route_and_payment_hash.

Comment threadlightning/src/ln/shutdown_tests.rs Outdated
check_closed_event!(nodes[1], 1, ClosureReason::CooperativeClosure);
}

// TODO: Determine why get_route fails when replacing get_payment_preimage_hash with

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have another todo here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainly to note why it may be that a simple replacement doesn't work here. Can drop it if you prefer.

@TheBlueMatt

TheBlueMatt commented Oct 13, 2021

Copy link
Copy Markdown
Collaborator

Do you want to take the in-number _ additions from #1113 here? It makes things a bit easier to read in a number of places IMO.Actually, I'll just rebase 1113 we can do it later.

Comment threadlightning/src/ln/functional_tests.rs Outdated
let (_, second_payment_hash, second_payment_secret) = get_payment_preimage_hash!(nodes[2]);
let sending_node = if forwarded_htlc { &nodes[0] } else { &nodes[1] };
let (route, second_payment_hash, _, second_payment_secret) = get_route_and_payment_hash!(sending_node, nodes[2], 100000);
// TODO: Why use a different payment secret here?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cause there's two different payments?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was unsure because they both used second_payment_hash but a different secret.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I was comparing it to the first send event further up, its just a typo I believe, feel free to drop it if the test still passes and always use the second secret.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to use the second secret.

Comment threadlightning/src/ln/functional_tests.rs Outdated
assert_ne!(node_txn[0].input[0].previous_output, node_txn[2].input[0].previous_output);
assert_ne!(node_txn[1].input[0].previous_output, node_txn[2].input[0].previous_output);

// TODO: Determine why replacing get_route with get_route_and_payment_hash above causes

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because the tx ordering is based on the payment hash and we end up with a different hash, I assume? Or something like that, but maybe we should just drop the TODO and open a general "move the remaining explicit route calls to the routing macro" issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM

@valentinewallacevalentinewallace left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK mod removing the todos in favor of an issue + squash

Comment threadlightning/src/ln/onion_route_tests.rs Outdated

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs squash.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from b6a3f5c to d700faaCompareOctober 13, 2021 22:27
let _chan = create_chan_between_nodes(&nodes[0], &nodes[1], InitFeatures::known(), InitFeatures::known());
let network_graph = &nodes[0].net_graph_msg_handler.network_graph;
let first_hops = nodes[0].node.list_usable_channels();
let route = get_keysend_route(&payer_pubkey, &network_graph, &payee_pubkey,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be the only place we call get_keysend_route in tests through a private channel, so I think best to keep it.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted and updated the other keysend test to use get_keysend_route.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from d700faa to 3e9678cCompareOctober 13, 2021 23:21
The interface for get_route will change to take a scorer. Using
get_route_and_payment_hash whenever possible allows for keeping the
scorer inside get_route_and_payment_hash rather than at every call site.
Replace get_route with get_route_and_payment_hash wherever possible.
Additionally, update get_route_and_payment_hash to use the known invoice
features and the sending node's logger.
@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 3e9678c to d4ec090CompareOctober 13, 2021 23:37
@TheBlueMatt
TheBlueMatt merged commit da498d7 into lightningdevkit:mainOct 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jkczyz@TheBlueMatt@valentinewallace
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Pre-scoring test clean-ups - #1120

Merged
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors
Oct 14, 2021
Merged

Pre-scoring test clean-ups#1120
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors

Conversation

@jkczyz

Copy link
Copy Markdown
Contributor

Replaces get_route with get_route_and_payment_hash in tests wherever possible, since a scorer will need to be passed to get_route. Also includes some fairly trivial test clean ups.

@jkczyz

Copy link
Copy Markdown
ContributorAuthor

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

@codecov

codecovBot commented Oct 13, 2021

Copy link
Copy Markdown

Codecov Report

Merging #1120 (d4ec090) into main (fe8c10d) will increase coverage by 0.06%.
The diff coverage is 100.00%.

Impacted file tree graph

@@ Coverage Diff @@## main #1120 +/- ##
==========================================
+ Coverage 90.67% 90.73% +0.06% 
==========================================
Files 66 66 Lines 34732 34808 +76 ==========================================
+ Hits 31494 31584 +90 + Misses 3238 3224 -14 
Impacted FilesCoverage Δ
lightning-background-processor/src/lib.rs94.23% <ø> (ø)
lightning/src/chain/channelmonitor.rs91.26% <ø> (ø)
lightning/src/ln/functional_test_utils.rs95.08% <ø> (-0.01%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <ø> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.67% <100.00%> (-0.11%)⬇️
lightning/src/ln/channelmanager.rs85.12% <100.00%> (-0.03%)⬇️
lightning/src/ln/functional_tests.rs97.33% <100.00%> (-0.15%)⬇️
lightning/src/ln/onion_route_tests.rs96.60% <100.00%> (-0.05%)⬇️
lightning/src/ln/payment_tests.rs98.83% <100.00%> (+0.08%)⬆️
lightning/src/ln/shutdown_tests.rs95.87% <100.00%> (-0.02%)⬇️
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fe8c10d...d4ec090. Read the comment docs.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 49e7016 to 7719633CompareOctober 13, 2021 19:09
@jkczyz

Copy link
Copy Markdown
ContributorAuthor

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

Dropped the commit.

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

Reverted the marked changes to use get_route where applicable for ease of review, as requested offline. Left TODOs about changing them to get_route_and_payment_hash.

Comment threadlightning/src/ln/shutdown_tests.rs Outdated
check_closed_event!(nodes[1], 1, ClosureReason::CooperativeClosure);
}

// TODO: Determine why get_route fails when replacing get_payment_preimage_hash with

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have another todo here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainly to note why it may be that a simple replacement doesn't work here. Can drop it if you prefer.

@TheBlueMatt

TheBlueMatt commented Oct 13, 2021

Copy link
Copy Markdown
Collaborator

Do you want to take the in-number _ additions from #1113 here? It makes things a bit easier to read in a number of places IMO.Actually, I'll just rebase 1113 we can do it later.

Comment threadlightning/src/ln/functional_tests.rs Outdated
let (_, second_payment_hash, second_payment_secret) = get_payment_preimage_hash!(nodes[2]);
let sending_node = if forwarded_htlc { &nodes[0] } else { &nodes[1] };
let (route, second_payment_hash, _, second_payment_secret) = get_route_and_payment_hash!(sending_node, nodes[2], 100000);
// TODO: Why use a different payment secret here?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cause there's two different payments?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was unsure because they both used second_payment_hash but a different secret.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I was comparing it to the first send event further up, its just a typo I believe, feel free to drop it if the test still passes and always use the second secret.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to use the second secret.

Comment threadlightning/src/ln/functional_tests.rs Outdated
assert_ne!(node_txn[0].input[0].previous_output, node_txn[2].input[0].previous_output);
assert_ne!(node_txn[1].input[0].previous_output, node_txn[2].input[0].previous_output);

// TODO: Determine why replacing get_route with get_route_and_payment_hash above causes

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because the tx ordering is based on the payment hash and we end up with a different hash, I assume? Or something like that, but maybe we should just drop the TODO and open a general "move the remaining explicit route calls to the routing macro" issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM

@valentinewallacevalentinewallace left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK mod removing the todos in favor of an issue + squash

Comment threadlightning/src/ln/onion_route_tests.rs Outdated

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs squash.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from b6a3f5c to d700faaCompareOctober 13, 2021 22:27
let _chan = create_chan_between_nodes(&nodes[0], &nodes[1], InitFeatures::known(), InitFeatures::known());
let network_graph = &nodes[0].net_graph_msg_handler.network_graph;
let first_hops = nodes[0].node.list_usable_channels();
let route = get_keysend_route(&payer_pubkey, &network_graph, &payee_pubkey,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be the only place we call get_keysend_route in tests through a private channel, so I think best to keep it.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted and updated the other keysend test to use get_keysend_route.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from d700faa to 3e9678cCompareOctober 13, 2021 23:21
The interface for get_route will change to take a scorer. Using
get_route_and_payment_hash whenever possible allows for keeping the
scorer inside get_route_and_payment_hash rather than at every call site.
Replace get_route with get_route_and_payment_hash wherever possible.
Additionally, update get_route_and_payment_hash to use the known invoice
features and the sending node's logger.
@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 3e9678c to d4ec090CompareOctober 13, 2021 23:37
@TheBlueMatt
TheBlueMatt merged commit da498d7 into lightningdevkit:mainOct 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jkczyz@TheBlueMatt@valentinewallace
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Pre-scoring test clean-ups - #1120

Merged
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors
Oct 14, 2021
Merged

Pre-scoring test clean-ups#1120
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors

Conversation

@jkczyz

Copy link
Copy Markdown
Contributor

Replaces get_route with get_route_and_payment_hash in tests wherever possible, since a scorer will need to be passed to get_route. Also includes some fairly trivial test clean ups.

@jkczyz

Copy link
Copy Markdown
ContributorAuthor

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

@codecov

codecovBot commented Oct 13, 2021

Copy link
Copy Markdown

Codecov Report

Merging #1120 (d4ec090) into main (fe8c10d) will increase coverage by 0.06%.
The diff coverage is 100.00%.

Impacted file tree graph

@@ Coverage Diff @@## main #1120 +/- ##
==========================================
+ Coverage 90.67% 90.73% +0.06% 
==========================================
Files 66 66 Lines 34732 34808 +76 ==========================================
+ Hits 31494 31584 +90 + Misses 3238 3224 -14 
Impacted FilesCoverage Δ
lightning-background-processor/src/lib.rs94.23% <ø> (ø)
lightning/src/chain/channelmonitor.rs91.26% <ø> (ø)
lightning/src/ln/functional_test_utils.rs95.08% <ø> (-0.01%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <ø> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.67% <100.00%> (-0.11%)⬇️
lightning/src/ln/channelmanager.rs85.12% <100.00%> (-0.03%)⬇️
lightning/src/ln/functional_tests.rs97.33% <100.00%> (-0.15%)⬇️
lightning/src/ln/onion_route_tests.rs96.60% <100.00%> (-0.05%)⬇️
lightning/src/ln/payment_tests.rs98.83% <100.00%> (+0.08%)⬆️
lightning/src/ln/shutdown_tests.rs95.87% <100.00%> (-0.02%)⬇️
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fe8c10d...d4ec090. Read the comment docs.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 49e7016 to 7719633CompareOctober 13, 2021 19:09
@jkczyz

Copy link
Copy Markdown
ContributorAuthor

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

Dropped the commit.

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

Reverted the marked changes to use get_route where applicable for ease of review, as requested offline. Left TODOs about changing them to get_route_and_payment_hash.

Comment threadlightning/src/ln/shutdown_tests.rs Outdated
check_closed_event!(nodes[1], 1, ClosureReason::CooperativeClosure);
}

// TODO: Determine why get_route fails when replacing get_payment_preimage_hash with

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have another todo here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainly to note why it may be that a simple replacement doesn't work here. Can drop it if you prefer.

@TheBlueMatt

TheBlueMatt commented Oct 13, 2021

Copy link
Copy Markdown
Collaborator

Do you want to take the in-number _ additions from #1113 here? It makes things a bit easier to read in a number of places IMO.Actually, I'll just rebase 1113 we can do it later.

Comment threadlightning/src/ln/functional_tests.rs Outdated
let (_, second_payment_hash, second_payment_secret) = get_payment_preimage_hash!(nodes[2]);
let sending_node = if forwarded_htlc { &nodes[0] } else { &nodes[1] };
let (route, second_payment_hash, _, second_payment_secret) = get_route_and_payment_hash!(sending_node, nodes[2], 100000);
// TODO: Why use a different payment secret here?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cause there's two different payments?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was unsure because they both used second_payment_hash but a different secret.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I was comparing it to the first send event further up, its just a typo I believe, feel free to drop it if the test still passes and always use the second secret.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to use the second secret.

Comment threadlightning/src/ln/functional_tests.rs Outdated
assert_ne!(node_txn[0].input[0].previous_output, node_txn[2].input[0].previous_output);
assert_ne!(node_txn[1].input[0].previous_output, node_txn[2].input[0].previous_output);

// TODO: Determine why replacing get_route with get_route_and_payment_hash above causes

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because the tx ordering is based on the payment hash and we end up with a different hash, I assume? Or something like that, but maybe we should just drop the TODO and open a general "move the remaining explicit route calls to the routing macro" issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM

@valentinewallacevalentinewallace left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK mod removing the todos in favor of an issue + squash

Comment threadlightning/src/ln/onion_route_tests.rs Outdated

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs squash.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from b6a3f5c to d700faaCompareOctober 13, 2021 22:27
let _chan = create_chan_between_nodes(&nodes[0], &nodes[1], InitFeatures::known(), InitFeatures::known());
let network_graph = &nodes[0].net_graph_msg_handler.network_graph;
let first_hops = nodes[0].node.list_usable_channels();
let route = get_keysend_route(&payer_pubkey, &network_graph, &payee_pubkey,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be the only place we call get_keysend_route in tests through a private channel, so I think best to keep it.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted and updated the other keysend test to use get_keysend_route.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from d700faa to 3e9678cCompareOctober 13, 2021 23:21
The interface for get_route will change to take a scorer. Using
get_route_and_payment_hash whenever possible allows for keeping the
scorer inside get_route_and_payment_hash rather than at every call site.
Replace get_route with get_route_and_payment_hash wherever possible.
Additionally, update get_route_and_payment_hash to use the known invoice
features and the sending node's logger.
@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 3e9678c to d4ec090CompareOctober 13, 2021 23:37
@TheBlueMatt
TheBlueMatt merged commit da498d7 into lightningdevkit:mainOct 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jkczyz@TheBlueMatt@valentinewallace
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Pre-scoring test clean-ups - #1120

Merged
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors
Oct 14, 2021
Merged

Pre-scoring test clean-ups#1120
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2021-10-test-refactors

Conversation

@jkczyz

Copy link
Copy Markdown
Contributor

Replaces get_route with get_route_and_payment_hash in tests wherever possible, since a scorer will need to be passed to get_route. Also includes some fairly trivial test clean ups.

@jkczyz

Copy link
Copy Markdown
ContributorAuthor

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

@codecov

codecovBot commented Oct 13, 2021

Copy link
Copy Markdown

Codecov Report

Merging #1120 (d4ec090) into main (fe8c10d) will increase coverage by 0.06%.
The diff coverage is 100.00%.

Impacted file tree graph

@@ Coverage Diff @@## main #1120 +/- ##
==========================================
+ Coverage 90.67% 90.73% +0.06% 
==========================================
Files 66 66 Lines 34732 34808 +76 ==========================================
+ Hits 31494 31584 +90 + Misses 3238 3224 -14 
Impacted FilesCoverage Δ
lightning-background-processor/src/lib.rs94.23% <ø> (ø)
lightning/src/chain/channelmonitor.rs91.26% <ø> (ø)
lightning/src/ln/functional_test_utils.rs95.08% <ø> (-0.01%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <ø> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.67% <100.00%> (-0.11%)⬇️
lightning/src/ln/channelmanager.rs85.12% <100.00%> (-0.03%)⬇️
lightning/src/ln/functional_tests.rs97.33% <100.00%> (-0.15%)⬇️
lightning/src/ln/onion_route_tests.rs96.60% <100.00%> (-0.05%)⬇️
lightning/src/ln/payment_tests.rs98.83% <100.00%> (+0.08%)⬆️
lightning/src/ln/shutdown_tests.rs95.87% <100.00%> (-0.02%)⬇️
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fe8c10d...d4ec090. Read the comment docs.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 49e7016 to 7719633CompareOctober 13, 2021 19:09
@jkczyz

Copy link
Copy Markdown
ContributorAuthor

The "Fix need for #[allow(unused_mut)] in tests" commit is largely duplicative with "Use Persister to return errors in tests not chain::Watch " in #1108, is it possible to drop that commit here and use the one from 1108?

Dropped the commit.

I left a few TODO comments in the primary commit where I was unsure of the change. So please take a close look at those. Everything else should be fairly mechanical.

Reverted the marked changes to use get_route where applicable for ease of review, as requested offline. Left TODOs about changing them to get_route_and_payment_hash.

Comment threadlightning/src/ln/shutdown_tests.rs Outdated
check_closed_event!(nodes[1], 1, ClosureReason::CooperativeClosure);
}

// TODO: Determine why get_route fails when replacing get_payment_preimage_hash with

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have another todo here.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainly to note why it may be that a simple replacement doesn't work here. Can drop it if you prefer.

@TheBlueMatt

TheBlueMatt commented Oct 13, 2021

Copy link
Copy Markdown
Collaborator

Do you want to take the in-number _ additions from #1113 here? It makes things a bit easier to read in a number of places IMO.Actually, I'll just rebase 1113 we can do it later.

Comment threadlightning/src/ln/functional_tests.rs Outdated
let (_, second_payment_hash, second_payment_secret) = get_payment_preimage_hash!(nodes[2]);
let sending_node = if forwarded_htlc { &nodes[0] } else { &nodes[1] };
let (route, second_payment_hash, _, second_payment_secret) = get_route_and_payment_hash!(sending_node, nodes[2], 100000);
// TODO: Why use a different payment secret here?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cause there's two different payments?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was unsure because they both used second_payment_hash but a different secret.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I was comparing it to the first send event further up, its just a typo I believe, feel free to drop it if the test still passes and always use the second secret.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated to use the second secret.

Comment threadlightning/src/ln/functional_tests.rs Outdated
assert_ne!(node_txn[0].input[0].previous_output, node_txn[2].input[0].previous_output);
assert_ne!(node_txn[1].input[0].previous_output, node_txn[2].input[0].previous_output);

// TODO: Determine why replacing get_route with get_route_and_payment_hash above causes

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because the tx ordering is based on the payment hash and we end up with a different hash, I assume? Or something like that, but maybe we should just drop the TODO and open a general "move the remaining explicit route calls to the routing macro" issue?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM

@valentinewallacevalentinewallace left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK mod removing the todos in favor of an issue + squash

Comment threadlightning/src/ln/onion_route_tests.rs Outdated

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs squash.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from b6a3f5c to d700faaCompareOctober 13, 2021 22:27
let _chan = create_chan_between_nodes(&nodes[0], &nodes[1], InitFeatures::known(), InitFeatures::known());
let network_graph = &nodes[0].net_graph_msg_handler.network_graph;
let first_hops = nodes[0].node.list_usable_channels();
let route = get_keysend_route(&payer_pubkey, &network_graph, &payee_pubkey,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be the only place we call get_keysend_route in tests through a private channel, so I think best to keep it.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted and updated the other keysend test to use get_keysend_route.

@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from d700faa to 3e9678cCompareOctober 13, 2021 23:21
The interface for get_route will change to take a scorer. Using
get_route_and_payment_hash whenever possible allows for keeping the
scorer inside get_route_and_payment_hash rather than at every call site.
Replace get_route with get_route_and_payment_hash wherever possible.
Additionally, update get_route_and_payment_hash to use the known invoice
features and the sending node's logger.
@jkczyz
jkczyzforce-pushed the 2021-10-test-refactors branch from 3e9678c to d4ec090CompareOctober 13, 2021 23:37
@TheBlueMatt
TheBlueMatt merged commit da498d7 into lightningdevkit:mainOct 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@jkczyz@TheBlueMatt@valentinewallace