mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-29 04:55:31 +00:00
portlist: fully exercise lessThan in tests
All cases in lessThan are not reliably exercised by other tests. This shows up in code coverage metrics as lines in lessThan are alternately added and removed from coverage. Add a test case to systematically test all conditions. Signed-off-by: Denton Gentry <dgentry@tailscale.com>
This commit is contained in:
parent
0aa55bffce
commit
07e4009e15
@ -47,6 +47,100 @@ func TestIgnoreLocallyBoundPorts(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestLessThan(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
a, b Port
|
||||||
|
want bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
"Port a < b",
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
Port{Proto: "tcp", Port: 101, Process: "proc1", inode: "inode1"},
|
||||||
|
true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Port a > b",
|
||||||
|
Port{Proto: "tcp", Port: 101, Process: "proc1", inode: "inode1"},
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Proto a < b",
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
Port{Proto: "udp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Proto a < b",
|
||||||
|
Port{Proto: "udp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inode a < b",
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc1", inode: "inode2"},
|
||||||
|
true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inode a > b",
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc2", inode: "inode2"},
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Process a < b",
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc2", inode: "inode1"},
|
||||||
|
true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Process a > b",
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc2", inode: "inode1"},
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Port evaluated first",
|
||||||
|
Port{Proto: "udp", Port: 100, Process: "proc2", inode: "inode2"},
|
||||||
|
Port{Proto: "tcp", Port: 101, Process: "proc1", inode: "inode1"},
|
||||||
|
true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Proto evaluated second",
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc2", inode: "inode2"},
|
||||||
|
Port{Proto: "udp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inode evaluated third",
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc2", inode: "inode1"},
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc1", inode: "inode2"},
|
||||||
|
true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Process evaluated fourth",
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc2", inode: "inode1"},
|
||||||
|
true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"equal",
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
Port{Proto: "tcp", Port: 100, Process: "proc1", inode: "inode1"},
|
||||||
|
false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
got := tt.a.lessThan(&tt.b)
|
||||||
|
if got != tt.want {
|
||||||
|
t.Errorf("%s: Equal = %v; want %v", tt.name, got, tt.want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func BenchmarkGetList(b *testing.B) {
|
func BenchmarkGetList(b *testing.B) {
|
||||||
b.ReportAllocs()
|
b.ReportAllocs()
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N; i++ {
|
||||||
|
Loading…
Reference in New Issue
Block a user