Skip to content

Commit 0eb7353

Browse files
committed
Merge remote-tracking branch 'origin/pull/91'
* origin/pull/91: keyring tests: duplicate checks removed, PascalCase for functions. main tests: data races eliminated keyring tests: data races eliminated
2 parents 1a96091 + c5dc305 commit 0eb7353

4 files changed

Lines changed: 17 additions & 12 deletions

File tree

cmd/ssh-tpm-agent/main_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,10 +174,10 @@ func runSSHAuth(t *testing.T, keytype tpm2.TPMAlgID, bits int, pin []byte, keyfn
174174
}
175175
defer session.Close()
176176

177-
session.Shell()
178-
179177
var b bytes.Buffer
180178
session.Stdout = &b
179+
session.Shell()
180+
session.Wait()
181181

182182
<-msgSent
183183
if b.String() != "connected" {

internal/keyring/keyring_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"testing"
88
)
99

10-
func TestSaveandGetData(t *testing.T) {
10+
func TestSaveAndGetData(t *testing.T) {
1111
keyring, err := SessionKeyring.CreateKeyring()
1212
if err != nil {
1313
t.Fatalf("failed getting keyring: %v", err)
@@ -27,7 +27,7 @@ func TestSaveandGetData(t *testing.T) {
2727
}
2828
}
2929

30-
func TestNokey(t *testing.T) {
30+
func TestNoKey(t *testing.T) {
3131
keyring, err := SessionKeyring.CreateKeyring()
3232
if err != nil {
3333
t.Fatalf("failed getting keyring: %v", err)

internal/keyring/threadkeyring.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,19 @@ func NewThreadKeyring(ctx context.Context, keyring *Keyring) (*ThreadKeyring, er
6969
tk.removekey = make(chan *removekeyMsg)
7070
tk.readkey = make(chan *readkeyMsg)
7171

72+
// Channel for initialization to prevent Data Race
73+
errCh := make(chan error, 1)
74+
7275
tk.wg.Add(1)
7376
go func() {
7477
var ak *Keyring
7578
runtime.LockOSThread()
7679
ak, err = keyring.CreateKeyring()
7780
if err != nil {
81+
errCh <- err
7882
return
7983
}
84+
errCh <- nil
8085
for {
8186
select {
8287
case msg := <-tk.addkey:
@@ -91,5 +96,11 @@ func NewThreadKeyring(ctx context.Context, keyring *Keyring) (*ThreadKeyring, er
9196
}
9297
}
9398
}()
99+
100+
// Wait for initialization to complete
101+
if err := <-errCh; err != nil {
102+
return nil, err
103+
}
104+
94105
return &tk, err
95106
}

internal/keyring/threadkeyring_test.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ var (
1212
ctx = context.Background()
1313
)
1414

15-
func TestSaveandGetDataThreaded(t *testing.T) {
15+
func TestSaveAndGetDataThreaded(t *testing.T) {
1616
keyring, err := NewThreadKeyring(ctx, SessionKeyring)
1717
if err != nil {
1818
t.Fatalf("failed getting keyring: %v", err)
@@ -32,14 +32,11 @@ func TestSaveandGetDataThreaded(t *testing.T) {
3232
}
3333
}
3434

35-
func TestNokeyThreaded(t *testing.T) {
35+
func TestNoKeyThreaded(t *testing.T) {
3636
keyring, err := NewThreadKeyring(ctx, SessionKeyring)
3737
if err != nil {
3838
t.Fatalf("failed getting keyring: %v", err)
3939
}
40-
if err != nil {
41-
t.Fatalf("failed getting keyring: %v", err)
42-
}
4340
_, err = keyring.ReadKey("this.key.does.not.exist")
4441
if !errors.Is(err, syscall.ENOKEY) {
4542
t.Fatalf("err: %v", err)
@@ -51,9 +48,6 @@ func TestRemoveKeyThreaded(t *testing.T) {
5148
if err != nil {
5249
t.Fatalf("failed getting keyring: %v", err)
5350
}
54-
if err != nil {
55-
t.Fatalf("failed getting keyring: %v", err)
56-
}
5751
b := []byte("test string")
5852
if err := keyring.AddKey("test-2", b); err != nil {
5953
t.Fatalf("err: %v", err)

0 commit comments

Comments
 (0)