Documentation ¶
Index ¶
- Variables
- func AllowRecording(t testing.TB)
- func FindFixturesDir() string
- func MustHaveRecordingAllowed(t testing.TB)
- func MustSupportFunctionCalls(t *testing.T, testBackend string)
- func RunTestsWithFixtures(m *testing.M) int
- func SafeRemoveAll(dir string)
- type BuildFlags
- type Fixture
- type FixtureKey
Constants ¶
This section is empty.
Variables ¶
var EnableRace = flag.Bool("racetarget", false, "Enables race detector on inferior process")
var Fixtures map[FixtureKey]Fixture = make(map[FixtureKey]Fixture)
Fixtures is a map of fixtureKey{ Fixture.Name, buildFlags } to Fixture.
Functions ¶
func AllowRecording ¶
AllowRecording allows the calling test to be used with a recording of the fixture.
func FindFixturesDir ¶
func FindFixturesDir() string
func MustHaveRecordingAllowed ¶
MustHaveRecordingAllowed skips this test if recording is not allowed
Not all the tests can be run with a recording:
- some fixtures never terminate independently (loopprog, testnextnethttp) and can not be recorded
- some tests assume they can interact with the target process (for example TestIssue419, or anything changing the value of a variable), which we can't do on with a recording
- some tests assume that the Pid returned by the process is valid, but it won't be at replay time
- some tests will start the fixture but not never execute a single instruction, for some reason rr doesn't like this and will print an error if it happens
- many tests will assume that we can return from a runtime.Breakpoint, with a recording this is not possible because when the fixture ran it wasn't attached to a debugger and in those circumstances a runtime.Breakpoint leads directly to a crash
Some of the tests using runtime.Breakpoint (anything involving variable evaluation and TestWorkDir) have been adapted to work with a recording.
func MustSupportFunctionCalls ¶
MustSupportFunctionCalls skips this test if function calls are unsupported on this backend/architecture pair.
func RunTestsWithFixtures ¶
RunTestsWithFixtures will pre-compile test fixtures before running test methods. Test binaries are deleted before exiting.
func SafeRemoveAll ¶
func SafeRemoveAll(dir string)
SafeRemoveAll removes dir and its contents but only as long as dir does not contain directories.
Types ¶
type BuildFlags ¶
type BuildFlags uint32
const ( LinkStrip BuildFlags = 1 << iota EnableCGOOptimization EnableInlining EnableOptimization EnableDWZCompression )
type Fixture ¶
type Fixture struct { // Name is the short name of the fixture. Name string // Path is the absolute path to the test binary. Path string // Source is the absolute path of the test binary source. Source string }
Fixture is a test binary.
func BuildFixture ¶
func BuildFixture(name string, flags BuildFlags) Fixture
type FixtureKey ¶
type FixtureKey struct { Name string Flags BuildFlags }