remove annoying trash test
Kim committed
Apr 13, 2026 at 21:12 UTC
b9863ee2153b4ee7131118102f5787759e054989
1 file changed
-154
portal/discovery/refresher_test.go
deleted
-154
@@ -1,154 +0,0 @@
1
-package discovery
2
-
3
-import (
4
- "context"
5
- "encoding/pem"
6
- "net/http"
7
- "net/http/httptest"
8
- "sync/atomic"
9
- "testing"
10
- "time"
11
-
12
- "github.com/gosuda/portal-tunnel/v2/types"
13
- "github.com/gosuda/portal-tunnel/v2/utils"
14
-)
15
-
16
-func newDiscoveryTestServer(t *testing.T, handler http.HandlerFunc) (*httptest.Server, []byte) {
17
- t.Helper()
18
-
19
- server := httptest.NewTLSServer(handler)
20
- rootCAPEM := pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: server.Certificate().Raw})
21
- if rootCAPEM == nil {
22
- server.Close()
23
- t.Fatal("failed to encode test certificate")
24
- }
25
- return server, rootCAPEM
26
-}
27
-
28
-func TestRefresherRefreshesExpiredBootstrapRelay(t *testing.T) {
29
- now := time.Now().UTC()
30
- var relayURL string
31
- server, rootCAPEM := newDiscoveryTestServer(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
32
- utils.WriteAPIData(w, http.StatusOK, types.DiscoveryResponse{
33
- ProtocolVersion: types.DiscoveryVersion,
34
- GeneratedAt: now,
35
- Relays: []types.RelayDescriptor{
36
- mustPolicyRelayDescriptor(t, "relay-bootstrap", relayURL),
37
- },
38
- })
39
- }))
40
- defer server.Close()
41
- relayURL = server.URL
42
-
43
- set, err := NewRelaySet([]string{relayURL})
44
- if err != nil {
45
- t.Fatalf("NewRelaySet() error = %v", err)
46
- }
47
-
48
- set.mu.Lock()
49
- state := set.relays[relayURL]
50
- state.Descriptor = mustPolicyRelayDescriptor(t, "relay-bootstrap", relayURL)
51
- state.Descriptor.ExpiresAt = now.Add(-time.Second)
52
- state.LastSeenAt = now.Add(-time.Minute)
53
- set.relays[relayURL] = state
54
- set.mu.Unlock()
55
-
56
- refresher, err := NewRefresher(set, rootCAPEM, nil, "")
57
- if err != nil {
58
- t.Fatalf("NewRefresher() error = %v", err)
59
- }
60
- if err := refresher.Refresh(context.Background()); err != nil {
61
- t.Fatalf("Refresh() error = %v", err)
62
- }
63
-
64
- set.mu.RLock()
65
- refreshed := set.relays[relayURL]
66
- set.mu.RUnlock()
67
- if refreshed.Confirmed {
68
- t.Fatal("direct discovery refresh should not mark relay locally confirmed")
69
- }
70
- if !refreshed.Descriptor.ExpiresAt.After(now) {
71
- t.Fatalf("refreshed descriptor expiry = %v, want a fresh descriptor", refreshed.Descriptor.ExpiresAt)
72
- }
73
-}
74
-
75
-func TestRefresherRefreshesExpiredCollectedRelay(t *testing.T) {
76
- now := time.Now().UTC()
77
- var relayURL string
78
- server, rootCAPEM := newDiscoveryTestServer(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
79
- utils.WriteAPIData(w, http.StatusOK, types.DiscoveryResponse{
80
- ProtocolVersion: types.DiscoveryVersion,
81
- GeneratedAt: now,
82
- Relays: []types.RelayDescriptor{
83
- mustPolicyRelayDescriptor(t, "relay-known", relayURL),
84
- },
85
- })
86
- }))
87
- defer server.Close()
88
- relayURL = server.URL
89
-
90
- set, err := NewRelaySet(nil)
91
- if err != nil {
92
- t.Fatalf("NewRelaySet() error = %v", err)
93
- }
94
-
95
- set.mu.Lock()
96
- state := confirmedPolicyRelayState(t, "relay-known", relayURL)
97
- state.Descriptor.ExpiresAt = now.Add(-time.Second)
98
- state.LastSeenAt = now.Add(-time.Minute)
99
- set.relays[relayURL] = state
100
- set.mu.Unlock()
101
-
102
- refresher, err := NewRefresher(set, rootCAPEM, nil, "")
103
- if err != nil {
104
- t.Fatalf("NewRefresher() error = %v", err)
105
- }
106
- if err := refresher.Refresh(context.Background()); err != nil {
107
- t.Fatalf("Refresh() error = %v", err)
108
- }
109
-
110
- set.mu.RLock()
111
- refreshed := set.relays[relayURL]
112
- set.mu.RUnlock()
113
- if !refreshed.Descriptor.ExpiresAt.After(now) {
114
- t.Fatalf("refreshed descriptor expiry = %v, want a fresh descriptor", refreshed.Descriptor.ExpiresAt)
115
- }
116
-}
117
-
118
-func TestRefresherSkipsDirectRetryUntilBackoffExpires(t *testing.T) {
119
- now := time.Now().UTC()
120
- var requests atomic.Int32
121
- server, rootCAPEM := newDiscoveryTestServer(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
122
- requests.Add(1)
123
- utils.WriteAPIData(w, http.StatusOK, types.DiscoveryResponse{
124
- ProtocolVersion: types.DiscoveryVersion,
125
- GeneratedAt: now,
126
- Relays: []types.RelayDescriptor{
127
- mustPolicyRelayDescriptor(t, "relay-known", r.Host),
128
- },
129
- })
130
- }))
131
- defer server.Close()
132
-
133
- set, err := NewRelaySet(nil)
134
- if err != nil {
135
- t.Fatalf("NewRelaySet() error = %v", err)
136
- }
137
-
138
- set.mu.Lock()
139
- state := confirmedPolicyRelayState(t, "relay-known", server.URL)
140
- state.nextDirectRefreshAt = now.Add(time.Minute)
141
- set.relays[server.URL] = state
142
- set.mu.Unlock()
143
-
144
- refresher, err := NewRefresher(set, rootCAPEM, nil, "")
145
- if err != nil {
146
- t.Fatalf("NewRefresher() error = %v", err)
147
- }
148
- if err := refresher.Refresh(context.Background()); err != nil {
149
- t.Fatalf("Refresh() error = %v", err)
150
- }
151
- if got := requests.Load(); got != 0 {
152
- t.Fatalf("direct refresh requests = %d, want 0 before backoff expires", got)
153
- }
154
-}