...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package dlopen
16
17 import (
18 "fmt"
19 "testing"
20 )
21
22 func checkFailure(shouldSucceed bool, err error) (rErr error) {
23 switch {
24 case err != nil && shouldSucceed:
25 rErr = fmt.Errorf("expected test to succeed, failed unexpectedly: %v", err)
26 case err == nil && !shouldSucceed:
27 rErr = fmt.Errorf("expected test to fail, succeeded unexpectedly")
28 }
29
30 return
31 }
32
33 func TestDlopen(t *testing.T) {
34 tests := []struct {
35 libs []string
36 shouldSucceed bool
37 }{
38 {
39 libs: []string{
40 "libc.so.6",
41 "libc.so",
42 },
43 shouldSucceed: true,
44 },
45 {
46 libs: []string{
47 "libstrange.so",
48 },
49 shouldSucceed: false,
50 },
51 }
52
53 for i, tt := range tests {
54 expLen := 4
55 len, err := strlen(tt.libs, "test")
56 if checkFailure(tt.shouldSucceed, err) != nil {
57 t.Errorf("case %d: %v", i, err)
58 }
59
60 if tt.shouldSucceed && len != expLen {
61 t.Errorf("case %d: expected length %d, got %d", i, expLen, len)
62 }
63 }
64 }
65
View as plain text