b86409cdb3
This commit gives the start for making the htlc manager and htlc switch testable. The testability of htlc switch have been achieved by mocking all external subsystems. The concrete list of updates: 1. create standalone package for htlc switch. 2. add "ChannelLink" interface, which represent the previous htlc link. 3. add "Peer" interface, which represent the remote node inside our subsystem. 4. add htlc switch config to htlc switch susbystem, which stores the handlers which are not elongs to any of the above interfaces. With this commit we are able test htlc switch even without having the concrete implementation of Peer, ChannelLink structures, they will be added later.
55 lines
1.3 KiB
Go
55 lines
1.3 KiB
Go
package htlcswitch
|
|
|
|
import (
|
|
"errors"
|
|
"io"
|
|
|
|
"github.com/btcsuite/btclog"
|
|
)
|
|
|
|
// log is a logger that is initialized with no output filters. This
|
|
// means the package will not perform any logging by default until the caller
|
|
// requests it.
|
|
var log btclog.Logger
|
|
|
|
// The default amount of logging is none.
|
|
func init() {
|
|
DisableLog()
|
|
}
|
|
|
|
// DisableLog disables all library log output. Logging output is disabled
|
|
// by default until either UseLogger or SetLogWriter are called.
|
|
func DisableLog() {
|
|
log = btclog.Disabled
|
|
}
|
|
|
|
// UseLogger uses a specified Logger to output package logging info.
|
|
// This should be used in preference to SetLogWriter if the caller is also
|
|
// using btclog.
|
|
func UseLogger(logger btclog.Logger) {
|
|
log = logger
|
|
}
|
|
|
|
// SetLogWriter uses a specified io.Writer to output package logging info.
|
|
// This allows a caller to direct package logging output without needing a
|
|
// dependency on seelog. If the caller is also using btclog, UseLogger should
|
|
// be used instead.
|
|
func SetLogWriter(w io.Writer, level string) error {
|
|
if w == nil {
|
|
return errors.New("nil writer")
|
|
}
|
|
|
|
lvl, ok := btclog.LogLevelFromString(level)
|
|
if !ok {
|
|
return errors.New("invalid log level")
|
|
}
|
|
|
|
l, err := btclog.NewLoggerFromWriter(w, lvl)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
UseLogger(l)
|
|
return nil
|
|
}
|