skip # see https://github.com/burrowers/garble/issues/241

# Note that we need bar_test too.
env GOPRIVATE=test/bar,test/bar_test

# build the test binary
garble test -c
binsubstr bar.test$exe 'TestFoo' 'TestSeparateFoo'
! binsubstr bar.test$exe 'ImportedVar'

# run the tests
exec ./bar.test -test.v
stdout 'PASS.*TestFoo'
stdout 'PASS.*TestSeparateFoo'

[short] stop # no need to verify this with -short

# verify with regular cmd/go
exec go test -v
stdout 'PASS.*TestFoo'

-- go.mod --
module test/bar

go 1.15
-- bar.go --
package bar

func Foo() string { return "Foo" }

var ImportedVar = "imported var value"
-- bar_test.go --
package bar

import "testing"

func TestFoo(t *testing.T) {
	t.Log(ImportedVar)
	if Foo() != "Foo" {
		t.FailNow()
	}
}
-- bar_separate_test.go --
package bar_test

import (
	"testing"

	"test/bar"
)

func TestSeparateFoo(t *testing.T) {
	t.Log(bar.ImportedVar)
	if bar.Foo() != "Foo" {
		t.FailNow()
	}
}
-- main_test.go --
package bar

import (
	"os"
	"testing"
)

func TestMain(m *testing.M) {
	os.Exit(m.Run())
}
