go2xunit icon indicating copy to clipboard operation
go2xunit copied to clipboard

Support go1.8 `go test -race`

Open tebeka opened this issue 8 years ago • 0 comments

If we have the following test file:

package main

import "testing"

func TestRace(t *testing.T) {
	c := make(chan bool)
	m := make(map[string]string)
	go func() {
		m["1"] = "a" // First conflicting access.
		c <- true
	}()
	m["2"] = "b" // Second conflicting access.
	<-c
	for k, v := range m {
		t.Log(k, v)
	}
}

Then run

$ go version
go version go1.8beta1 linux/amd64
$ go test -race | go2xunit
error: 37: orphan end test

The go test -race output is:

==================
WARNING: DATA RACE
Write at 0x00c420076900 by goroutine 7:
  runtime.mapassign()
      /opt/go1.8/src/runtime/hashmap.go:485 +0x0
  _/home/miki/playground/race.TestRace.func1()
      /home/miki/playground/race/race_test.go:9 +0x67

Previous write at 0x00c420076900 by goroutine 6:
  runtime.mapassign()
      /opt/go1.8/src/runtime/hashmap.go:485 +0x0
  _/home/miki/playground/race.TestRace()
      /home/miki/playground/race/race_test.go:12 +0x103
  testing.tRunner()
      /opt/go1.8/src/testing/testing.go:679 +0x228

Goroutine 7 (running) created at:
  _/home/miki/playground/race.TestRace()
      /home/miki/playground/race/race_test.go:11 +0xc1
  testing.tRunner()
      /opt/go1.8/src/testing/testing.go:679 +0x228

Goroutine 6 (running) created at:
  testing.(*T).Run()
      /opt/go1.8/src/testing/testing.go:716 +0x53c
  testing.runTests.func1()
      /opt/go1.8/src/testing/testing.go:900 +0xaa
  testing.tRunner()
      /opt/go1.8/src/testing/testing.go:679 +0x228
  testing.runTests()
      /opt/go1.8/src/testing/testing.go:906 +0x4ac
  testing.(*M).Run()
      /opt/go1.8/src/testing/testing.go:841 +0x1c3
  main.main()
      _/home/miki/playground/race/_test/_testmain.go:40 +0x20f
==================
--- FAIL: TestRace (0.00s)
	race_test.go:15: 2 b
	race_test.go:15: 1 a
	testing.go:632: race detected during execution of test
FAIL
FAIL	_/home/miki/playground/race	0.011s

tebeka avatar Jan 06 '17 14:01 tebeka