package stdtypes | |
import ( | |
"io/ioutil" | |
"sync" | |
"testing" | |
"github.com/gogo/protobuf/proto" | |
) | |
func TestConcurrentTextMarshal(t *testing.T) { | |
// Verify that there are no race conditions when calling | |
// TextMarshaler.Marshal on a protobuf message that contains a StdDuration | |
std := StdTypes{} | |
var wg sync.WaitGroup | |
tm := proto.TextMarshaler{} | |
for i := 0; i < 2; i++ { | |
wg.Add(1) | |
go func() { | |
defer wg.Done() | |
err := tm.Marshal(ioutil.Discard, &std) | |
if err != nil { | |
t.Fatal(err) | |
} | |
}() | |
} | |
wg.Wait() | |
} |