Skip to content

Commit afab785

Browse files
committed
no more TryLock
1 parent 104eaf0 commit afab785

File tree

1 file changed

+15
-34
lines changed
  • coderd/coderdtest/oidctest

1 file changed

+15
-34
lines changed

coderd/coderdtest/oidctest/idp.go

Lines changed: 15 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -92,57 +92,45 @@ func (f *fakeIDPLocked) PrivateKey() *rsa.PrivateKey {
9292
}
9393

9494
func (f *fakeIDPLocked) Provider() ProviderJSON {
95-
if !f.mu.TryRLock() {
96-
panic("developer error: fakeIDPLocked is already locked")
97-
}
95+
f.mu.RLock()
9896
defer f.mu.RUnlock()
9997
return f.provider
10098
}
10199

102100
func (f *fakeIDPLocked) Config() *oauth2.Config {
103-
if !f.mu.TryRLock() {
104-
panic("developer error: fakeIDPLocked is already locked")
105-
}
101+
f.mu.RLock()
106102
defer f.mu.RUnlock()
107103
return f.cfg
108104
}
109105

110106
func (f *fakeIDPLocked) Handler() http.Handler {
111-
if !f.mu.TryRLock() {
112-
panic("developer error: fakeIDPLocked is already locked")
113-
}
107+
f.mu.RLock()
114108
defer f.mu.RUnlock()
115109
return f.handler
116110
}
117111

118112
func (f *fakeIDPLocked) SetIssuer(issuer string) {
119-
if !f.mu.TryLock() {
120-
panic("developer error: fakeIDPLocked is already locked")
121-
}
113+
f.mu.Lock()
122114
defer f.mu.Unlock()
123115
f.issuer = issuer
124116
}
125117

126118
func (f *fakeIDPLocked) SetIssuerURL(issuerURL *url.URL) {
127-
if !f.mu.TryLock() {
128-
panic("developer error: fakeIDPLocked is already locked")
129-
}
119+
f.mu.Lock()
130120
defer f.mu.Unlock()
131121
f.issuerURL = issuerURL
132122
}
133123

134124
func (f *fakeIDPLocked) SetProvider(provider ProviderJSON) {
135-
if !f.mu.TryLock() {
136-
panic("developer error: fakeIDPLocked is already locked")
137-
}
125+
f.mu.Lock()
138126
defer f.mu.Unlock()
139127
f.provider = provider
140128
}
141129

130+
// MutateConfig is a helper function to mutate the oauth2.Config.
131+
// Beware of re-entrant locks!
142132
func (f *fakeIDPLocked) MutateConfig(fn func(cfg *oauth2.Config)) {
143-
if !f.mu.TryLock() {
144-
panic("developer error: fakeIDPLocked is already locked")
145-
}
133+
f.mu.Lock()
146134
if f.cfg == nil {
147135
f.cfg = &oauth2.Config{}
148136
}
@@ -151,25 +139,19 @@ func (f *fakeIDPLocked) MutateConfig(fn func(cfg *oauth2.Config)) {
151139
}
152140

153141
func (f *fakeIDPLocked) SetHandler(handler http.Handler) {
154-
if !f.mu.TryLock() {
155-
panic("developer error: fakeIDPLocked is already locked")
156-
}
142+
f.mu.Lock()
157143
defer f.mu.Unlock()
158144
f.handler = handler
159145
}
160146

161147
func (f *fakeIDPLocked) SetFakeCoderd(fakeCoderd func(req *http.Request) (*http.Response, error)) {
162-
if !f.mu.TryLock() {
163-
panic("developer error: fakeIDPLocked is already locked")
164-
}
148+
f.mu.Lock()
165149
defer f.mu.Unlock()
166150
f.fakeCoderd = fakeCoderd
167151
}
168152

169153
func (f *fakeIDPLocked) FakeCoderd() func(req *http.Request) (*http.Response, error) {
170-
if !f.mu.TryRLock() {
171-
panic("developer error: fakeIDPLocked is already locked")
172-
}
154+
f.mu.RLock()
173155
defer f.mu.RUnlock()
174156
return f.fakeCoderd
175157
}
@@ -1530,17 +1512,16 @@ func (f *FakeIDP) PublicKey() crypto.PublicKey {
15301512
func (f *FakeIDP) OauthConfig(t testing.TB, scopes []string) *oauth2.Config {
15311513
t.Helper()
15321514

1533-
authURL := f.locked.Provider().AuthURL
1534-
tokenURL := f.locked.Provider().TokenURL
1515+
provider := f.locked.Provider()
15351516
f.locked.MutateConfig(func(cfg *oauth2.Config) {
15361517
if len(scopes) == 0 {
15371518
scopes = []string{"openid", "email", "profile"}
15381519
}
15391520
cfg.ClientID = f.clientID
15401521
cfg.ClientSecret = f.clientSecret
15411522
cfg.Endpoint = oauth2.Endpoint{
1542-
AuthURL: authURL,
1543-
TokenURL: tokenURL,
1523+
AuthURL: provider.AuthURL,
1524+
TokenURL: provider.TokenURL,
15441525
AuthStyle: oauth2.AuthStyleInParams,
15451526
}
15461527
// If the user is using a real network request, they will need to do

0 commit comments

Comments
 (0)