wgengine/monitor: skip some macOS route updates, fix debounce regression
Debound was broken way back in 5c1e443d34 and we never noticed.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
be779b3587
commit
471f0c470a
@@ -5,7 +5,10 @@
|
||||
package monitor
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"testing"
|
||||
|
||||
"tailscale.com/net/interfaces"
|
||||
)
|
||||
|
||||
func TestMonitorStartClose(t *testing.T) {
|
||||
@@ -28,3 +31,35 @@ func TestMonitorJustClose(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
var monitor = flag.String("monitor", "", `go into monitor mode like 'route monitor'; test never terminates. Value can be either "raw" or "callback"`)
|
||||
|
||||
func TestMonitorMode(t *testing.T) {
|
||||
switch *monitor {
|
||||
case "":
|
||||
t.Skip("skipping non-test without --monitor")
|
||||
case "raw", "callback":
|
||||
default:
|
||||
t.Skipf(`invalid --monitor value: must be "raw" or "callback"`)
|
||||
}
|
||||
mon, err := New(t.Logf)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
switch *monitor {
|
||||
case "raw":
|
||||
for {
|
||||
msg, err := mon.om.Receive()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Logf("msg: %#v", msg)
|
||||
}
|
||||
case "callback":
|
||||
mon.RegisterChangeCallback(func(changed bool, st *interfaces.State) {
|
||||
t.Logf("cb: changed=%v, ifSt=%v", changed, st)
|
||||
})
|
||||
mon.Start()
|
||||
select {}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user