@@ -12,7 +12,6 @@ import (
1212 "os"
1313 "path/filepath"
1414 "runtime"
15- "sync"
1615 "testing"
1716
1817 "github.com/stretchr/testify/require"
@@ -24,61 +23,35 @@ var (
2423 ctx = context .Background ()
2524
2625 // the Windows implementation doesn't require user interaction
27- runTests = runtime .GOOS == "windows" || os .Getenv (msalextManualTest ) != ""
26+ manualTests = runtime .GOOS == "windows" || os .Getenv (msalextManualTest ) != ""
2827)
2928
30- func TestRace (t * testing.T ) {
31- if ! runTests {
29+ func TestReadWrite (t * testing.T ) {
30+ if ! manualTests {
3231 t .Skipf ("set %s to run this test" , msalextManualTest )
3332 }
34- p := filepath .Join (t .TempDir (), t .Name ())
35- a , err := New (p )
36- require .NoError (t , err )
37-
38- actual , err := a .Read (ctx )
39- require .NoError (t , err )
40- require .Empty (t , actual )
41-
42- expected := "expected"
43- wg := sync.WaitGroup {}
44- for i := 0 ; i < 20 ; i ++ {
45- wg .Add (1 )
46- go func () {
47- defer wg .Done ()
48- if ! t .Failed () {
49- actual := []byte {}
50- err := a .Write (ctx , []byte (expected ))
51- if err == nil {
52- actual , err = a .Read (ctx )
53- }
54- if err != nil {
55- t .Error (err )
56- } else if a := string (actual ); a != expected {
57- t .Errorf ("expected %q, got %q" , expected , a )
58- }
33+ for _ , test := range []struct {
34+ desc string
35+ want []byte
36+ }{
37+ {desc : "Test when no stored data exists" },
38+ {desc : "Test writing data then reading it" , want : []byte ("want" )},
39+ } {
40+ t .Run (test .desc , func (t * testing.T ) {
41+ p := filepath .Join (t .TempDir (), t .Name ())
42+ a , err := New (p )
43+ require .NoError (t , err )
44+
45+ if test .want != nil {
46+ cp := make ([]byte , len (test .want ))
47+ copy (cp , test .want )
48+ err = a .Write (ctx , cp )
49+ require .NoError (t , err )
5950 }
60- }()
61- }
62- wg .Wait ()
63- }
6451
65- func TestRoundTrip (t * testing.T ) {
66- if ! runTests {
67- t .Skipf ("set %s to run this test" , msalextManualTest )
52+ actual , err := a .Read (ctx )
53+ require .NoError (t , err )
54+ require .Equal (t , test .want , actual )
55+ })
6856 }
69- p := filepath .Join (t .TempDir (), t .Name ())
70- a , err := New (p )
71- require .NoError (t , err )
72-
73- actual , err := a .Read (ctx )
74- require .NoError (t , err )
75- require .Empty (t , actual )
76-
77- expected := []byte ("expected" )
78- err = a .Write (ctx , expected )
79- require .NoError (t , err )
80-
81- actual , err = a .Read (ctx )
82- require .NoError (t , err )
83- require .Equal (t , expected , actual )
8457}
0 commit comments