Skip to content

Commit f278d6b

Browse files
committed
ebpf: add tests for isKernelSupported()
1 parent c006425 commit f278d6b

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

probe/endpoint/ebpf_test.go

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import (
88
"time"
99

1010
"github.com/weaveworks/tcptracer-bpf/pkg/tracer"
11+
12+
"github.com/weaveworks/scope/probe/host"
1113
)
1214

1315
func newMockEbpfTracker() *EbpfTracker {
@@ -233,3 +235,74 @@ func TestInvalidTimeStampDead(t *testing.T) {
233235
t.Errorf("expected ebpfTracker to be set to dead after events with wrong order")
234236
}
235237
}
238+
239+
func TestIsKernelSupported(t *testing.T) {
240+
var release, version string
241+
oldGetKernelReleaseAndVersion := host.GetKernelReleaseAndVersion
242+
defer func() {
243+
host.GetKernelReleaseAndVersion = oldGetKernelReleaseAndVersion
244+
}()
245+
host.GetKernelReleaseAndVersion = func() (string, string, error) { return release, version, nil }
246+
testVersions := []struct {
247+
release string
248+
version string
249+
supported bool
250+
}{
251+
{
252+
"4.1",
253+
"",
254+
false,
255+
},
256+
{
257+
"4.4",
258+
"",
259+
true,
260+
},
261+
{
262+
"4.4-custom",
263+
"",
264+
true,
265+
},
266+
{
267+
"4.4.127",
268+
"",
269+
true,
270+
},
271+
{
272+
"4.4.0-119-generic",
273+
"#143-Ubuntu SMP Mon Apr 2 16:08:24 UTC 2018",
274+
false,
275+
},
276+
{
277+
"4.4.0-116-generic",
278+
"#140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018",
279+
true,
280+
},
281+
{
282+
"4.13.0-38-generic",
283+
"#43-Ubuntu SMP Wed Mar 14 15:20:44 UTC 2018",
284+
true,
285+
},
286+
{
287+
"4.13.0-119-generic",
288+
"#43-Ubuntu SMP Wed Apr 1 00:00:00 UTC 2018",
289+
true,
290+
},
291+
{
292+
"4.9.0-6-amd64",
293+
"#1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02)",
294+
true,
295+
},
296+
}
297+
for _, tv := range testVersions {
298+
release = tv.release
299+
version = tv.version
300+
err := isKernelSupported()
301+
if tv.supported && err != nil {
302+
t.Errorf("expected kernel release %q version %q to be supported but got error: %v", release, version, err)
303+
}
304+
if !tv.supported && err == nil {
305+
t.Errorf("expected kernel release %q version %q to not be supported", release, version)
306+
}
307+
}
308+
}

0 commit comments

Comments
 (0)