• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lightningnetwork / lnd / 12312390362

13 Dec 2024 08:44AM UTC coverage: 57.458% (+8.5%) from 48.92%
12312390362

Pull #9343

github

ellemouton
fn: rework the ContextGuard and add tests

In this commit, the ContextGuard struct is re-worked such that the
context that its new main WithCtx method provides is cancelled in sync
with a parent context being cancelled or with it's quit channel being
cancelled. Tests are added to assert the behaviour. In order for the
close of the quit channel to be consistent with the cancelling of the
derived context, the quit channel _must_ be contained internal to the
ContextGuard so that callers are only able to close the channel via the
exposed Quit method which will then take care to first cancel any
derived context that depend on the quit channel before returning.
Pull Request #9343: fn: expand the ContextGuard and add tests

101853 of 177264 relevant lines covered (57.46%)

24972.93 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/htlcswitch/hodl/config_dev.go
1
//go:build dev
2
// +build dev
3

4
package hodl
5

6
// Config is a struct enumerating the possible command line flags that are used
7
// to activate specific hodl modes.
8
//
9
// NOTE: THESE FLAGS ARE INTENDED FOR TESTING PURPOSES ONLY. ACTIVATING THESE
10
// FLAGS IN PRODUCTION WILL VIOLATE CRITICAL ASSUMPTIONS MADE BY THIS SOFTWARE.
11
type Config struct {
12
        ExitSettle bool `long:"exit-settle" description:"Instructs the node to drop ADDs for which it is the exit node, and to not settle back to the sender"`
13

14
        AddIncoming bool `long:"add-incoming" description:"Instructs the node to drop incoming ADDs before processing them in the incoming link"`
15

16
        SettleIncoming bool `long:"settle-incoming" description:"Instructs the node to drop incoming SETTLEs before processing them in the incoming link"`
17

18
        FailIncoming bool `long:"fail-incoming" description:"Instructs the node to drop incoming FAILs before processing them in the incoming link"`
19

20
        AddOutgoing bool `long:"add-outgoing" description:"Instructs the node to drop outgoing ADDs before applying them to the channel state"`
21

22
        SettleOutgoing bool `long:"settle-outgoing" description:"Instructs the node to drop outgoing SETTLEs before applying them to the channel state"`
23

24
        FailOutgoing bool `long:"fail-outgoing" description:"Instructs the node to drop outgoing FAILs before applying them to the channel state"`
25

26
        Commit bool `long:"commit" description:"Instructs the node to add HTLCs to its local commitment state and to open circuits for any ADDs, but abort before committing the changes"`
27

28
        BogusSettle bool `long:"bogus-settle" description:"Instructs the node to settle back any incoming HTLC with a bogus preimage"`
29
}
30

31
// Mask extracts the flags specified in the configuration, composing a Mask from
32
// the active flags.
33
func (c *Config) Mask() Mask {
×
34
        var flags []Flag
×
35

×
36
        if c.ExitSettle {
×
37
                flags = append(flags, ExitSettle)
×
38
        }
×
39
        if c.AddIncoming {
×
40
                flags = append(flags, AddIncoming)
×
41
        }
×
42
        if c.SettleIncoming {
×
43
                flags = append(flags, SettleIncoming)
×
44
        }
×
45
        if c.FailIncoming {
×
46
                flags = append(flags, FailIncoming)
×
47
        }
×
48
        if c.AddOutgoing {
×
49
                flags = append(flags, AddOutgoing)
×
50
        }
×
51
        if c.SettleOutgoing {
×
52
                flags = append(flags, SettleOutgoing)
×
53
        }
×
54
        if c.FailOutgoing {
×
55
                flags = append(flags, FailOutgoing)
×
56
        }
×
57
        if c.Commit {
×
58
                flags = append(flags, Commit)
×
59
        }
×
60
        if c.BogusSettle {
×
61
                flags = append(flags, BogusSettle)
×
62
        }
×
63

64
        // NOTE: The value returned here will only honor the configuration if
65
        // the dev build flag is present. In production, this method always
66
        // returns hodl.MaskNone and Active(*) always returns false.
67
        return MaskFromFlags(flags...)
×
68
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc