Файловый менеджер - Редактировать - /var/www/html/test2json.zip
Ðазад
PK ! jm3- - signal_unix.gonu �[��� // Copyright 2022 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build unix || js || wasip1 package main import ( "os" "syscall" ) var signalsToIgnore = []os.Signal{os.Interrupt, syscall.SIGQUIT} PK ! <Ҷ signal_notunix.gonu �[��� // Copyright 2022 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build plan9 || windows package main import ( "os" ) var signalsToIgnore = []os.Signal{os.Interrupt} PK ! �-T�� � main.gonu �[��� // Copyright 2017 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Test2json converts go test output to a machine-readable JSON stream. // // Usage: // // go tool test2json [-p pkg] [-t] [./pkg.test -test.v=test2json] // // Test2json runs the given test command and converts its output to JSON; // with no command specified, test2json expects test output on standard input. // It writes a corresponding stream of JSON events to standard output. // There is no unnecessary input or output buffering, so that // the JSON stream can be read for “live updates” of test status. // // The -p flag sets the package reported in each test event. // // The -t flag requests that time stamps be added to each test event. // // The test should be invoked with -test.v=test2json. Using only -test.v // (or -test.v=true) is permissible but produces lower fidelity results. // // Note that "go test -json" takes care of invoking test2json correctly, // so "go tool test2json" is only needed when a test binary is being run // separately from "go test". Use "go test -json" whenever possible. // // Note also that test2json is only intended for converting a single test // binary's output. To convert the output of a "go test" command that // runs multiple packages, again use "go test -json". // // # Output Format // // The JSON stream is a newline-separated sequence of TestEvent objects // corresponding to the Go struct: // // type TestEvent struct { // Time time.Time // encodes as an RFC3339-format string // Action string // Package string // Test string // Elapsed float64 // seconds // Output string // } // // The Time field holds the time the event happened. // It is conventionally omitted for cached test results. // // The Action field is one of a fixed set of action descriptions: // // start - the test binary is about to be executed // run - the test has started running // pause - the test has been paused // cont - the test has continued running // pass - the test passed // bench - the benchmark printed log output but did not fail // fail - the test or benchmark failed // output - the test printed output // skip - the test was skipped or the package contained no tests // // Every JSON stream begins with a "start" event. // // The Package field, if present, specifies the package being tested. // When the go command runs parallel tests in -json mode, events from // different tests are interlaced; the Package field allows readers to // separate them. // // The Test field, if present, specifies the test, example, or benchmark // function that caused the event. Events for the overall package test // do not set Test. // // The Elapsed field is set for "pass" and "fail" events. It gives the time // elapsed for the specific test or the overall package test that passed or failed. // // The Output field is set for Action == "output" and is a portion of the test's output // (standard output and standard error merged together). The output is // unmodified except that invalid UTF-8 output from a test is coerced // into valid UTF-8 by use of replacement characters. With that one exception, // the concatenation of the Output fields of all output events is the exact // output of the test execution. // // When a benchmark runs, it typically produces a single line of output // giving timing results. That line is reported in an event with Action == "output" // and no Test field. If a benchmark logs output or reports a failure // (for example, by using b.Log or b.Error), that extra output is reported // as a sequence of events with Test set to the benchmark name, terminated // by a final event with Action == "bench" or "fail". // Benchmarks have no events with Action == "pause". package main import ( "flag" "fmt" "io" "os" "os/exec" "os/signal" "cmd/internal/test2json" ) var ( flagP = flag.String("p", "", "report `pkg` as the package being tested in each event") flagT = flag.Bool("t", false, "include timestamps in events") ) func usage() { fmt.Fprintf(os.Stderr, "usage: go tool test2json [-p pkg] [-t] [./pkg.test -test.v]\n") os.Exit(2) } // ignoreSignals ignore the interrupt signals. func ignoreSignals() { signal.Ignore(signalsToIgnore...) } func main() { flag.Usage = usage flag.Parse() var mode test2json.Mode if *flagT { mode |= test2json.Timestamp } c := test2json.NewConverter(os.Stdout, *flagP, mode) defer c.Close() if flag.NArg() == 0 { io.Copy(c, os.Stdin) } else { args := flag.Args() cmd := exec.Command(args[0], args[1:]...) w := &countWriter{0, c} cmd.Stdout = w cmd.Stderr = w ignoreSignals() err := cmd.Run() if err != nil { if w.n > 0 { // Assume command printed why it failed. } else { fmt.Fprintf(c, "test2json: %v\n", err) } } c.Exited(err) if err != nil { c.Close() os.Exit(1) } } } type countWriter struct { n int64 w io.Writer } func (w *countWriter) Write(b []byte) (int, error) { w.n += int64(len(b)) return w.w.Write(b) } PK ! ra � � test2json_test.gonu �[��� // Copyright 2017 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package test2json import ( "bytes" "encoding/json" "flag" "fmt" "io" "os" "path/filepath" "reflect" "strings" "testing" "unicode/utf8" ) var update = flag.Bool("update", false, "rewrite testdata/*.json files") func TestGolden(t *testing.T) { files, err := filepath.Glob("testdata/*.test") if err != nil { t.Fatal(err) } for _, file := range files { name := strings.TrimSuffix(filepath.Base(file), ".test") t.Run(name, func(t *testing.T) { orig, err := os.ReadFile(file) if err != nil { t.Fatal(err) } // Test one line written to c at a time. // Assume that's the most likely to be handled correctly. var buf bytes.Buffer c := NewConverter(&buf, "", 0) in := append([]byte{}, orig...) for _, line := range bytes.SplitAfter(in, []byte("\n")) { writeAndKill(c, line) } c.Close() if *update { js := strings.TrimSuffix(file, ".test") + ".json" t.Logf("rewriting %s", js) if err := os.WriteFile(js, buf.Bytes(), 0666); err != nil { t.Fatal(err) } return } want, err := os.ReadFile(strings.TrimSuffix(file, ".test") + ".json") if err != nil { t.Fatal(err) } diffJSON(t, buf.Bytes(), want) if t.Failed() { // If the line-at-a-time conversion fails, no point testing boundary conditions. return } // Write entire input in bulk. t.Run("bulk", func(t *testing.T) { buf.Reset() c = NewConverter(&buf, "", 0) in = append([]byte{}, orig...) writeAndKill(c, in) c.Close() diffJSON(t, buf.Bytes(), want) }) // In bulk again with \r\n. t.Run("crlf", func(t *testing.T) { buf.Reset() c = NewConverter(&buf, "", 0) in = bytes.ReplaceAll(orig, []byte("\n"), []byte("\r\n")) writeAndKill(c, in) c.Close() diffJSON(t, bytes.ReplaceAll(buf.Bytes(), []byte(`\r\n`), []byte(`\n`)), want) }) // Write 2 bytes at a time on even boundaries. t.Run("even2", func(t *testing.T) { buf.Reset() c = NewConverter(&buf, "", 0) in = append([]byte{}, orig...) for i := 0; i < len(in); i += 2 { if i+2 <= len(in) { writeAndKill(c, in[i:i+2]) } else { writeAndKill(c, in[i:]) } } c.Close() diffJSON(t, buf.Bytes(), want) }) // Write 2 bytes at a time on odd boundaries. t.Run("odd2", func(t *testing.T) { buf.Reset() c = NewConverter(&buf, "", 0) in = append([]byte{}, orig...) if len(in) > 0 { writeAndKill(c, in[:1]) } for i := 1; i < len(in); i += 2 { if i+2 <= len(in) { writeAndKill(c, in[i:i+2]) } else { writeAndKill(c, in[i:]) } } c.Close() diffJSON(t, buf.Bytes(), want) }) // Test with very small output buffers, to check that // UTF8 sequences are not broken up. for b := 5; b <= 8; b++ { t.Run(fmt.Sprintf("tiny%d", b), func(t *testing.T) { oldIn := inBuffer oldOut := outBuffer defer func() { inBuffer = oldIn outBuffer = oldOut }() inBuffer = 64 outBuffer = b buf.Reset() c = NewConverter(&buf, "", 0) in = append([]byte{}, orig...) writeAndKill(c, in) c.Close() diffJSON(t, buf.Bytes(), want) }) } }) } } // writeAndKill writes b to w and then fills b with Zs. // The filling makes sure that if w is holding onto b for // future use, that future use will have obviously wrong data. func writeAndKill(w io.Writer, b []byte) { w.Write(b) for i := range b { b[i] = 'Z' } } // diffJSON diffs the stream we have against the stream we want // and fails the test with a useful message if they don't match. func diffJSON(t *testing.T, have, want []byte) { t.Helper() type event map[string]any // Parse into events, one per line. parseEvents := func(b []byte) ([]event, []string) { t.Helper() var events []event var lines []string for _, line := range bytes.SplitAfter(b, []byte("\n")) { if len(line) > 0 { line = bytes.TrimSpace(line) var e event err := json.Unmarshal(line, &e) if err != nil { t.Errorf("unmarshal %s: %v", b, err) continue } events = append(events, e) lines = append(lines, string(line)) } } return events, lines } haveEvents, haveLines := parseEvents(have) wantEvents, wantLines := parseEvents(want) if t.Failed() { return } // Make sure the events we have match the events we want. // At each step we're matching haveEvents[i] against wantEvents[j]. // i and j can move independently due to choices about exactly // how to break up text in "output" events. i := 0 j := 0 // Fail reports a failure at the current i,j and stops the test. // It shows the events around the current positions, // with the current positions marked. fail := func() { var buf bytes.Buffer show := func(i int, lines []string) { for k := -2; k < 5; k++ { marker := "" if k == 0 { marker = "» " } if 0 <= i+k && i+k < len(lines) { fmt.Fprintf(&buf, "\t%s%s\n", marker, lines[i+k]) } } if i >= len(lines) { // show marker after end of input fmt.Fprintf(&buf, "\t» \n") } } fmt.Fprintf(&buf, "have:\n") show(i, haveLines) fmt.Fprintf(&buf, "want:\n") show(j, wantLines) t.Fatal(buf.String()) } var outputTest string // current "Test" key in "output" events var wantOutput, haveOutput string // collected "Output" of those events // getTest returns the "Test" setting, or "" if it is missing. getTest := func(e event) string { s, _ := e["Test"].(string) return s } // checkOutput collects output from the haveEvents for the current outputTest // and then checks that the collected output matches the wanted output. checkOutput := func() { for i < len(haveEvents) && haveEvents[i]["Action"] == "output" && getTest(haveEvents[i]) == outputTest { haveOutput += haveEvents[i]["Output"].(string) i++ } if haveOutput != wantOutput { t.Errorf("output mismatch for Test=%q:\nhave %q\nwant %q", outputTest, haveOutput, wantOutput) fail() } haveOutput = "" wantOutput = "" } // Walk through wantEvents matching against haveEvents. for j = range wantEvents { e := wantEvents[j] if e["Action"] == "output" && getTest(e) == outputTest { wantOutput += e["Output"].(string) continue } checkOutput() if e["Action"] == "output" { outputTest = getTest(e) wantOutput += e["Output"].(string) continue } if i >= len(haveEvents) { t.Errorf("early end of event stream: missing event") fail() } if !reflect.DeepEqual(haveEvents[i], e) { t.Errorf("events out of sync") fail() } i++ } checkOutput() if i < len(haveEvents) { t.Errorf("extra events in stream") fail() } } func TestTrimUTF8(t *testing.T) { s := "hello α ☺ 😂 world" // α is 2-byte, ☺ is 3-byte, 😂 is 4-byte b := []byte(s) for i := 0; i < len(s); i++ { j := trimUTF8(b[:i]) u := string([]rune(s[:j])) + string([]rune(s[j:])) if u != s { t.Errorf("trimUTF8(%q) = %d (-%d), not at boundary (split: %q %q)", s[:i], j, i-j, s[:j], s[j:]) } if utf8.FullRune(b[j:i]) { t.Errorf("trimUTF8(%q) = %d (-%d), too early (missed: %q)", s[:j], j, i-j, s[j:i]) } } } PK ! �����9 �9 test2json.gonu �[��� // Copyright 2017 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package test2json implements conversion of test binary output to JSON. // It is used by cmd/test2json and cmd/go. // // See the cmd/test2json documentation for details of the JSON encoding. package test2json import ( "bytes" "encoding/json" "fmt" "io" "strconv" "strings" "time" "unicode" "unicode/utf8" ) // Mode controls details of the conversion. type Mode int const ( Timestamp Mode = 1 << iota // include Time in events ) // event is the JSON struct we emit. type event struct { Time *time.Time `json:",omitempty"` Action string Package string `json:",omitempty"` Test string `json:",omitempty"` Elapsed *float64 `json:",omitempty"` Output *textBytes `json:",omitempty"` } // textBytes is a hack to get JSON to emit a []byte as a string // without actually copying it to a string. // It implements encoding.TextMarshaler, which returns its text form as a []byte, // and then json encodes that text form as a string (which was our goal). type textBytes []byte func (b textBytes) MarshalText() ([]byte, error) { return b, nil } // A Converter holds the state of a test-to-JSON conversion. // It implements io.WriteCloser; the caller writes test output in, // and the converter writes JSON output to w. type Converter struct { w io.Writer // JSON output stream pkg string // package to name in events mode Mode // mode bits start time.Time // time converter started testName string // name of current test, for output attribution report []*event // pending test result reports (nested for subtests) result string // overall test result if seen input lineBuffer // input buffer output lineBuffer // output buffer needMarker bool // require ^V marker to introduce test framing line } // inBuffer and outBuffer are the input and output buffer sizes. // They're variables so that they can be reduced during testing. // // The input buffer needs to be able to hold any single test // directive line we want to recognize, like: // // <many spaces> --- PASS: very/nested/s/u/b/t/e/s/t // // If anyone reports a test directive line > 4k not working, it will // be defensible to suggest they restructure their test or test names. // // The output buffer must be >= utf8.UTFMax, so that it can // accumulate any single UTF8 sequence. Lines that fit entirely // within the output buffer are emitted in single output events. // Otherwise they are split into multiple events. // The output buffer size therefore limits the size of the encoding // of a single JSON output event. 1k seems like a reasonable balance // between wanting to avoid splitting an output line and not wanting to // generate enormous output events. var ( inBuffer = 4096 outBuffer = 1024 ) // NewConverter returns a "test to json" converter. // Writes on the returned writer are written as JSON to w, // with minimal delay. // // The writes to w are whole JSON events ending in \n, // so that it is safe to run multiple tests writing to multiple converters // writing to a single underlying output stream w. // As long as the underlying output w can handle concurrent writes // from multiple goroutines, the result will be a JSON stream // describing the relative ordering of execution in all the concurrent tests. // // The mode flag adjusts the behavior of the converter. // Passing ModeTime includes event timestamps and elapsed times. // // The pkg string, if present, specifies the import path to // report in the JSON stream. func NewConverter(w io.Writer, pkg string, mode Mode) *Converter { c := new(Converter) *c = Converter{ w: w, pkg: pkg, mode: mode, start: time.Now(), input: lineBuffer{ b: make([]byte, 0, inBuffer), line: c.handleInputLine, part: c.output.write, }, output: lineBuffer{ b: make([]byte, 0, outBuffer), line: c.writeOutputEvent, part: c.writeOutputEvent, }, } c.writeEvent(&event{Action: "start"}) return c } // Write writes the test input to the converter. func (c *Converter) Write(b []byte) (int, error) { c.input.write(b) return len(b), nil } // Exited marks the test process as having exited with the given error. func (c *Converter) Exited(err error) { if err == nil { if c.result != "skip" { c.result = "pass" } } else { c.result = "fail" } } const marker = byte(0x16) // ^V var ( // printed by test on successful run. bigPass = []byte("PASS") // printed by test after a normal test failure. bigFail = []byte("FAIL") // printed by 'go test' along with an error if the test binary terminates // with an error. bigFailErrorPrefix = []byte("FAIL\t") // an === NAME line with no test name, if trailing spaces are deleted emptyName = []byte("=== NAME") emptyNameLine = []byte("=== NAME \n") updates = [][]byte{ []byte("=== RUN "), []byte("=== PAUSE "), []byte("=== CONT "), []byte("=== NAME "), []byte("=== PASS "), []byte("=== FAIL "), []byte("=== SKIP "), } reports = [][]byte{ []byte("--- PASS: "), []byte("--- FAIL: "), []byte("--- SKIP: "), []byte("--- BENCH: "), } fourSpace = []byte(" ") skipLinePrefix = []byte("? \t") skipLineSuffix = []byte("\t[no test files]") ) // handleInputLine handles a single whole test output line. // It must write the line to c.output but may choose to do so // before or after emitting other events. func (c *Converter) handleInputLine(line []byte) { if len(line) == 0 { return } sawMarker := false if c.needMarker && line[0] != marker { c.output.write(line) return } if line[0] == marker { c.output.flush() sawMarker = true line = line[1:] } // Trim is line without \n or \r\n. trim := line if len(trim) > 0 && trim[len(trim)-1] == '\n' { trim = trim[:len(trim)-1] if len(trim) > 0 && trim[len(trim)-1] == '\r' { trim = trim[:len(trim)-1] } } // === CONT followed by an empty test name can lose its trailing spaces. if bytes.Equal(trim, emptyName) { line = emptyNameLine trim = line[:len(line)-1] } // Final PASS or FAIL. if bytes.Equal(trim, bigPass) || bytes.Equal(trim, bigFail) || bytes.HasPrefix(trim, bigFailErrorPrefix) { c.flushReport(0) c.testName = "" c.needMarker = sawMarker c.output.write(line) if bytes.Equal(trim, bigPass) { c.result = "pass" } else { c.result = "fail" } return } // Special case for entirely skipped test binary: "? \tpkgname\t[no test files]\n" is only line. // Report it as plain output but remember to say skip in the final summary. if bytes.HasPrefix(line, skipLinePrefix) && bytes.HasSuffix(trim, skipLineSuffix) && len(c.report) == 0 { c.result = "skip" } // "=== RUN " // "=== PAUSE " // "=== CONT " actionColon := false origLine := line ok := false indent := 0 for _, magic := range updates { if bytes.HasPrefix(line, magic) { ok = true break } } if !ok { // "--- PASS: " // "--- FAIL: " // "--- SKIP: " // "--- BENCH: " // but possibly indented. for bytes.HasPrefix(line, fourSpace) { line = line[4:] indent++ } for _, magic := range reports { if bytes.HasPrefix(line, magic) { actionColon = true ok = true break } } } // Not a special test output line. if !ok { // Lookup the name of the test which produced the output using the // indentation of the output as an index into the stack of the current // subtests. // If the indentation is greater than the number of current subtests // then the output must have included extra indentation. We can't // determine which subtest produced this output, so we default to the // old behaviour of assuming the most recently run subtest produced it. if indent > 0 && indent <= len(c.report) { c.testName = c.report[indent-1].Test } c.output.write(origLine) return } // Parse out action and test name. i := 0 if actionColon { i = bytes.IndexByte(line, ':') + 1 } if i == 0 { i = len(updates[0]) } action := strings.ToLower(strings.TrimSuffix(strings.TrimSpace(string(line[4:i])), ":")) name := strings.TrimSpace(string(line[i:])) e := &event{Action: action} if line[0] == '-' { // PASS or FAIL report // Parse out elapsed time. if i := strings.Index(name, " ("); i >= 0 { if strings.HasSuffix(name, "s)") { t, err := strconv.ParseFloat(name[i+2:len(name)-2], 64) if err == nil { if c.mode&Timestamp != 0 { e.Elapsed = &t } } } name = name[:i] } if len(c.report) < indent { // Nested deeper than expected. // Treat this line as plain output. c.output.write(origLine) return } // Flush reports at this indentation level or deeper. c.needMarker = sawMarker c.flushReport(indent) e.Test = name c.testName = name c.report = append(c.report, e) c.output.write(origLine) return } // === update. // Finish any pending PASS/FAIL reports. c.needMarker = sawMarker c.flushReport(0) c.testName = name if action == "name" { // This line is only generated to get c.testName right. // Don't emit an event. return } if action == "pause" { // For a pause, we want to write the pause notification before // delivering the pause event, just so it doesn't look like the test // is generating output immediately after being paused. c.output.write(origLine) } c.writeEvent(e) if action != "pause" { c.output.write(origLine) } return } // flushReport flushes all pending PASS/FAIL reports at levels >= depth. func (c *Converter) flushReport(depth int) { c.testName = "" for len(c.report) > depth { e := c.report[len(c.report)-1] c.report = c.report[:len(c.report)-1] c.writeEvent(e) } } // Close marks the end of the go test output. // It flushes any pending input and then output (only partial lines at this point) // and then emits the final overall package-level pass/fail event. func (c *Converter) Close() error { c.input.flush() c.output.flush() if c.result != "" { e := &event{Action: c.result} if c.mode&Timestamp != 0 { dt := time.Since(c.start).Round(1 * time.Millisecond).Seconds() e.Elapsed = &dt } c.writeEvent(e) } return nil } // writeOutputEvent writes a single output event with the given bytes. func (c *Converter) writeOutputEvent(out []byte) { c.writeEvent(&event{ Action: "output", Output: (*textBytes)(&out), }) } // writeEvent writes a single event. // It adds the package, time (if requested), and test name (if needed). func (c *Converter) writeEvent(e *event) { e.Package = c.pkg if c.mode&Timestamp != 0 { t := time.Now() e.Time = &t } if e.Test == "" { e.Test = c.testName } js, err := json.Marshal(e) if err != nil { // Should not happen - event is valid for json.Marshal. fmt.Fprintf(c.w, "testjson internal error: %v\n", err) return } js = append(js, '\n') c.w.Write(js) } // A lineBuffer is an I/O buffer that reacts to writes by invoking // input-processing callbacks on whole lines or (for long lines that // have been split) line fragments. // // It should be initialized with b set to a buffer of length 0 but non-zero capacity, // and line and part set to the desired input processors. // The lineBuffer will call line(x) for any whole line x (including the final newline) // that fits entirely in cap(b). It will handle input lines longer than cap(b) by // calling part(x) for sections of the line. The line will be split at UTF8 boundaries, // and the final call to part for a long line includes the final newline. type lineBuffer struct { b []byte // buffer mid bool // whether we're in the middle of a long line line func([]byte) // line callback part func([]byte) // partial line callback } // write writes b to the buffer. func (l *lineBuffer) write(b []byte) { for len(b) > 0 { // Copy what we can into l.b. m := copy(l.b[len(l.b):cap(l.b)], b) l.b = l.b[:len(l.b)+m] b = b[m:] // Process lines in l.b. i := 0 for i < len(l.b) { j, w := indexEOL(l.b[i:]) if j < 0 { if !l.mid { if j := bytes.IndexByte(l.b[i:], '\t'); j >= 0 { if isBenchmarkName(bytes.TrimRight(l.b[i:i+j], " ")) { l.part(l.b[i : i+j+1]) l.mid = true i += j + 1 } } } break } e := i + j + w if l.mid { // Found the end of a partial line. l.part(l.b[i:e]) l.mid = false } else { // Found a whole line. l.line(l.b[i:e]) } i = e } // Whatever's left in l.b is a line fragment. if i == 0 && len(l.b) == cap(l.b) { // The whole buffer is a fragment. // Emit it as the beginning (or continuation) of a partial line. t := trimUTF8(l.b) l.part(l.b[:t]) l.b = l.b[:copy(l.b, l.b[t:])] l.mid = true } // There's room for more input. // Slide it down in hope of completing the line. if i > 0 { l.b = l.b[:copy(l.b, l.b[i:])] } } } // indexEOL finds the index of a line ending, // returning its position and output width. // A line ending is either a \n or the empty string just before a ^V not beginning a line. // The output width for \n is 1 (meaning it should be printed) // but the output width for ^V is 0 (meaning it should be left to begin the next line). func indexEOL(b []byte) (pos, wid int) { for i, c := range b { if c == '\n' { return i, 1 } if c == marker && i > 0 { // test -v=json emits ^V at start of framing lines return i, 0 } } return -1, 0 } // flush flushes the line buffer. func (l *lineBuffer) flush() { if len(l.b) > 0 { // Must be a line without a \n, so a partial line. l.part(l.b) l.b = l.b[:0] } } var benchmark = []byte("Benchmark") // isBenchmarkName reports whether b is a valid benchmark name // that might appear as the first field in a benchmark result line. func isBenchmarkName(b []byte) bool { if !bytes.HasPrefix(b, benchmark) { return false } if len(b) == len(benchmark) { // just "Benchmark" return true } r, _ := utf8.DecodeRune(b[len(benchmark):]) return !unicode.IsLower(r) } // trimUTF8 returns a length t as close to len(b) as possible such that b[:t] // does not end in the middle of a possibly-valid UTF-8 sequence. // // If a large text buffer must be split before position i at the latest, // splitting at position trimUTF(b[:i]) avoids splitting a UTF-8 sequence. func trimUTF8(b []byte) int { // Scan backward to find non-continuation byte. for i := 1; i < utf8.UTFMax && i <= len(b); i++ { if c := b[len(b)-i]; c&0xc0 != 0x80 { switch { case c&0xe0 == 0xc0: if i < 2 { return len(b) - i } case c&0xf0 == 0xe0: if i < 3 { return len(b) - i } case c&0xf8 == 0xf0: if i < 4 { return len(b) - i } } break } } return len(b) } PK ! �H)�� � testdata/issue23920.testnu �[��� === RUN TestWithColons === RUN TestWithColons/[::1] === RUN TestWithColons/127.0.0.1:0 --- PASS: TestWithColons (0.00s) --- PASS: TestWithColons/[::1] (0.00s) --- PASS: TestWithColons/127.0.0.1:0 (0.00s) PASS PK ! ��;� � testdata/unicode.testnu �[��� === RUN TestUnicode Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα. Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα. 私はガラスを食べられます。それは私を傷つけません。私はガラスを食べられます。それは私を傷つけません。 --- PASS: TestUnicode ฉันกินกระจกได้ แต่มันไม่ทำให้ฉันเจ็บ ฉันกินกระจกได้ แต่มันไม่ทำให้ฉันเจ็บ אני יכול לאכול זכוכית וזה לא מזיק לי. אני יכול לאכול זכוכית וזה לא מזיק לי. PASS PK ! .��� testdata/issue29755.jsonnu �[��� {"Action":"start"} {"Action":"run","Test":"TestOutputWithSubtest"} {"Action":"output","Test":"TestOutputWithSubtest","Output":"=== RUN TestOutputWithSubtest\n"} {"Action":"run","Test":"TestOutputWithSubtest/sub_test"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test","Output":"=== RUN TestOutputWithSubtest/sub_test\n"} {"Action":"run","Test":"TestOutputWithSubtest/sub_test/sub2"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test/sub2","Output":"=== RUN TestOutputWithSubtest/sub_test/sub2\n"} {"Action":"run","Test":"TestOutputWithSubtest/sub_test2"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test2","Output":"=== RUN TestOutputWithSubtest/sub_test2\n"} {"Action":"run","Test":"TestOutputWithSubtest/sub_test2/sub2"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test2/sub2","Output":"=== RUN TestOutputWithSubtest/sub_test2/sub2\n"} {"Action":"output","Test":"TestOutputWithSubtest","Output":"--- FAIL: TestOutputWithSubtest (0.00s)\n"} {"Action":"output","Test":"TestOutputWithSubtest","Output":" foo_test.go:6: output before sub tests\n"} {"Action":"output","Test":"TestOutputWithSubtest","Output":" foo_test.go:10: output from root test\n"} {"Action":"output","Test":"TestOutputWithSubtest","Output":" foo_test.go:15: output from root test\n"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test","Output":" --- PASS: TestOutputWithSubtest/sub_test (0.00s)\n"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test","Output":" foo_test.go:9: output from sub test\n"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test","Output":" foo_test.go:11: more output from sub test\n"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test","Output":" foo_test.go:16: more output from sub test\n"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test/sub2","Output":" --- PASS: TestOutputWithSubtest/sub_test/sub2 (0.00s)\n"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test/sub2","Output":" foo_test.go:14: output from sub2 test\n"} {"Action":"output","Test":"TestOutputWithSubtest","Output":" foo_test.go:22: output from root test\n"} {"Action":"output","Test":"TestOutputWithSubtest","Output":" foo_test.go:27: output from root test\n"} {"Action":"pass","Test":"TestOutputWithSubtest/sub_test/sub2"} {"Action":"pass","Test":"TestOutputWithSubtest/sub_test"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test2","Output":" --- PASS: TestOutputWithSubtest/sub_test2 (0.00s)\n"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test2","Output":" foo_test.go:21: output from sub test2\n"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test2","Output":" foo_test.go:23: more output from sub test2\n"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test2","Output":" foo_test.go:28: more output from sub test2\n"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test2/sub2","Output":" --- PASS: TestOutputWithSubtest/sub_test2/sub2 (0.00s)\n"} {"Action":"output","Test":"TestOutputWithSubtest/sub_test2/sub2","Output":" foo_test.go:26: output from sub2 test\n"} {"Action":"output","Test":"TestOutputWithSubtest","Output":" foo_test.go:32: output after sub test\n"} {"Action":"pass","Test":"TestOutputWithSubtest/sub_test2/sub2"} {"Action":"pass","Test":"TestOutputWithSubtest/sub_test2"} {"Action":"fail","Test":"TestOutputWithSubtest"} {"Action":"output","Output":"FAIL\n"} {"Action":"output","Output":"FAIL\tgotest.tools/gotestsum/foo\t0.001s\n"} {"Action":"output","Output":"FAIL\n"} {"Action":"fail"} PK ! �;#�� � testdata/unicode.jsonnu �[��� {"Action":"start"} {"Action":"run","Test":"TestUnicode"} {"Action":"output","Test":"TestUnicode","Output":"=== RUN TestUnicode\n"} {"Action":"output","Test":"TestUnicode","Output":"Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα. Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα.\n"} {"Action":"output","Test":"TestUnicode","Output":"私はガラスを食べられます。それは私を傷つけません。私はガラスを食べられます。それは私を傷つけません。\n"} {"Action":"output","Test":"TestUnicode","Output":"--- PASS: TestUnicode\n"} {"Action":"output","Test":"TestUnicode","Output":" ฉันกินกระจกได้ แต่มันไม่ทำให้ฉันเจ็บ ฉันกินกระจกได้ แต่มันไม่ทำให้ฉันเจ็บ\n"} {"Action":"output","Test":"TestUnicode","Output":" אני יכול לאכול זכוכית וזה לא מזיק לי. אני יכול לאכול זכוכית וזה לא מזיק לי.\n"} {"Action":"pass","Test":"TestUnicode"} {"Action":"output","Output":"PASS\n"} {"Action":"pass"} PK ! ����. . testdata/bench.testnu �[��� goos: darwin goarch: 386 BenchmarkFoo-8 2000000000 0.00 ns/op --- BENCH: BenchmarkFoo-8 x_test.go:8: My benchmark x_test.go:8: My benchmark x_test.go:8: My benchmark x_test.go:8: My benchmark x_test.go:8: My benchmark x_test.go:8: My benchmark PASS ok command-line-arguments 0.009s PK ! ���2D D testdata/ascii.jsonnu �[��� {"Action":"start"} {"Action":"run","Test":"TestAscii"} {"Action":"output","Test":"TestAscii","Output":"=== RUN TestAscii\n"} {"Action":"output","Test":"TestAscii","Output":"I can eat glass, and it doesn't hurt me. I can eat glass, and it doesn't hurt me.\n"} {"Action":"output","Test":"TestAscii","Output":"I CAN EAT GLASS, AND IT DOESN'T HURT ME. I CAN EAT GLASS, AND IT DOESN'T HURT ME.\n"} {"Action":"output","Test":"TestAscii","Output":"--- PASS: TestAscii\n"} {"Action":"output","Test":"TestAscii","Output":" i can eat glass, and it doesn't hurt me. i can eat glass, and it doesn't hurt me.\n"} {"Action":"output","Test":"TestAscii","Output":" V PNA RNG TYNFF, NAQ VG QBRFA'G UHEG ZR. V PNA RNG TYNFF, NAQ VG QBRFA'G UHEG ZR.\n"} {"Action":"pass","Test":"TestAscii"} {"Action":"output","Output":"PASS\n"} {"Action":"pass"} PK ! U3� testdata/panic.jsonnu �[��� {"Action":"start"} {"Action":"output","Test":"TestPanic","Output":"--- FAIL: TestPanic (0.00s)\n"} {"Action":"output","Test":"TestPanic","Output":"panic: oops [recovered]\n"} {"Action":"output","Test":"TestPanic","Output":"\tpanic: oops\n"} {"Action":"output","Test":"TestPanic","Output":"\n"} {"Action":"output","Test":"TestPanic","Output":"goroutine 7 [running]:\n"} {"Action":"output","Test":"TestPanic","Output":"testing.tRunner.func1(0xc000092100)\n"} {"Action":"output","Test":"TestPanic","Output":"\t/go/src/testing/testing.go:874 +0x3a3\n"} {"Action":"output","Test":"TestPanic","Output":"panic(0x1110ea0, 0x116aea0)\n"} {"Action":"output","Test":"TestPanic","Output":"\t/go/src/runtime/panic.go:679 +0x1b2\n"} {"Action":"output","Test":"TestPanic","Output":"command-line-arguments.TestPanic(0xc000092100)\n"} {"Action":"output","Test":"TestPanic","Output":"\ta_test.go:6 +0x39\n"} {"Action":"output","Test":"TestPanic","Output":"testing.tRunner(0xc000092100, 0x114f500)\n"} {"Action":"output","Test":"TestPanic","Output":"\tgo/src/testing/testing.go:909 +0xc9\n"} {"Action":"output","Test":"TestPanic","Output":"created by testing.(*T).Run\n"} {"Action":"output","Test":"TestPanic","Output":"\tgo/src/testing/testing.go:960 +0x350\n"} {"Action":"fail","Test":"TestPanic"} {"Action":"output","Output":"FAIL\tcommand-line-arguments\t0.042s\n"} {"Action":"output","Output":"FAIL\n"} {"Action":"fail"} PK ! >.:�9 9 testdata/vet.testnu �[��� === RUN TestVet === PAUSE TestVet === RUN TestVetAsm === PAUSE TestVetAsm === RUN TestVetDirs === PAUSE TestVetDirs === RUN TestTags === PAUSE TestTags === RUN TestVetVerbose === PAUSE TestVetVerbose === CONT TestVet === CONT TestTags === CONT TestVetVerbose === RUN TestTags/testtag === PAUSE TestTags/testtag === CONT TestVetDirs === CONT TestVetAsm === RUN TestVet/0 === PAUSE TestVet/0 === RUN TestVet/1 === PAUSE TestVet/1 === RUN TestVet/2 === PAUSE TestVet/2 === RUN TestVet/3 === PAUSE TestVet/3 === RUN TestVet/4 === RUN TestTags/x_testtag_y === PAUSE TestVet/4 === RUN TestVet/5 === PAUSE TestVet/5 === PAUSE TestTags/x_testtag_y === RUN TestVet/6 === RUN TestTags/x,testtag,y === PAUSE TestTags/x,testtag,y === RUN TestVetDirs/testingpkg === PAUSE TestVet/6 === CONT TestTags/x,testtag,y === PAUSE TestVetDirs/testingpkg === RUN TestVetDirs/divergent === RUN TestVet/7 === PAUSE TestVet/7 === PAUSE TestVetDirs/divergent === CONT TestTags/x_testtag_y === CONT TestTags/testtag === RUN TestVetDirs/buildtag === PAUSE TestVetDirs/buildtag === CONT TestVet/0 === CONT TestVet/4 === RUN TestVetDirs/incomplete === PAUSE TestVetDirs/incomplete === RUN TestVetDirs/cgo === PAUSE TestVetDirs/cgo === CONT TestVet/7 === CONT TestVet/6 --- PASS: TestVetVerbose (0.04s) === CONT TestVet/5 === CONT TestVet/3 === CONT TestVet/2 --- PASS: TestTags (0.00s) --- PASS: TestTags/x_testtag_y (0.04s) vet_test.go:187: -tags=x testtag y --- PASS: TestTags/x,testtag,y (0.04s) vet_test.go:187: -tags=x,testtag,y --- PASS: TestTags/testtag (0.04s) vet_test.go:187: -tags=testtag === CONT TestVet/1 === CONT TestVetDirs/testingpkg === CONT TestVetDirs/buildtag === CONT TestVetDirs/divergent === CONT TestVetDirs/incomplete === CONT TestVetDirs/cgo --- PASS: TestVet (0.39s) --- PASS: TestVet/5 (0.07s) vet_test.go:114: files: ["testdata/copylock_func.go" "testdata/rangeloop.go"] --- PASS: TestVet/3 (0.07s) vet_test.go:114: files: ["testdata/composite.go" "testdata/nilfunc.go"] --- PASS: TestVet/6 (0.07s) vet_test.go:114: files: ["testdata/copylock_range.go" "testdata/shadow.go"] --- PASS: TestVet/2 (0.07s) vet_test.go:114: files: ["testdata/bool.go" "testdata/method.go" "testdata/unused.go"] --- PASS: TestVet/0 (0.13s) vet_test.go:114: files: ["testdata/assign.go" "testdata/httpresponse.go" "testdata/structtag.go"] --- PASS: TestVet/4 (0.16s) vet_test.go:114: files: ["testdata/copylock.go" "testdata/print.go"] --- PASS: TestVet/1 (0.07s) vet_test.go:114: files: ["testdata/atomic.go" "testdata/lostcancel.go" "testdata/unsafeptr.go"] --- PASS: TestVet/7 (0.19s) vet_test.go:114: files: ["testdata/deadcode.go" "testdata/shift.go"] --- PASS: TestVetDirs (0.01s) --- PASS: TestVetDirs/testingpkg (0.06s) --- PASS: TestVetDirs/divergent (0.05s) --- PASS: TestVetDirs/buildtag (0.06s) --- PASS: TestVetDirs/incomplete (0.05s) --- PASS: TestVetDirs/cgo (0.04s) --- PASS: TestVetAsm (0.75s) PASS ok cmd/vet (cached) PK ! � 5 testdata/empty.jsonnu �[��� {"Action":"start"} PK ! A �� � testdata/panic.testnu �[��� --- FAIL: TestPanic (0.00s) panic: oops [recovered] panic: oops goroutine 7 [running]: testing.tRunner.func1(0xc000092100) /go/src/testing/testing.go:874 +0x3a3 panic(0x1110ea0, 0x116aea0) /go/src/runtime/panic.go:679 +0x1b2 command-line-arguments.TestPanic(0xc000092100) a_test.go:6 +0x39 testing.tRunner(0xc000092100, 0x114f500) go/src/testing/testing.go:909 +0xc9 created by testing.(*T).Run go/src/testing/testing.go:960 +0x350 FAIL command-line-arguments 0.042s FAIL PK ! �- - testdata/smiley.testnu �[��� === RUN Test☺☹ === PAUSE Test☺☹ === RUN Test☺☹Asm === PAUSE Test☺☹Asm === RUN Test☺☹Dirs === PAUSE Test☺☹Dirs === RUN TestTags === PAUSE TestTags === RUN Test☺☹Verbose === PAUSE Test☺☹Verbose === CONT Test☺☹ === CONT TestTags === CONT Test☺☹Verbose === RUN TestTags/testtag === PAUSE TestTags/testtag === CONT Test☺☹Dirs === CONT Test☺☹Asm === RUN Test☺☹/0 === PAUSE Test☺☹/0 === RUN Test☺☹/1 === PAUSE Test☺☹/1 === RUN Test☺☹/2 === PAUSE Test☺☹/2 === RUN Test☺☹/3 === PAUSE Test☺☹/3 === RUN Test☺☹/4 === RUN TestTags/x_testtag_y === PAUSE Test☺☹/4 === RUN Test☺☹/5 === PAUSE Test☺☹/5 === PAUSE TestTags/x_testtag_y === RUN Test☺☹/6 === RUN TestTags/x,testtag,y === PAUSE TestTags/x,testtag,y === RUN Test☺☹Dirs/testingpkg === PAUSE Test☺☹/6 === CONT TestTags/x,testtag,y === PAUSE Test☺☹Dirs/testingpkg === RUN Test☺☹Dirs/divergent === RUN Test☺☹/7 === PAUSE Test☺☹/7 === PAUSE Test☺☹Dirs/divergent === CONT TestTags/x_testtag_y === CONT TestTags/testtag === RUN Test☺☹Dirs/buildtag === PAUSE Test☺☹Dirs/buildtag === CONT Test☺☹/0 === CONT Test☺☹/4 === RUN Test☺☹Dirs/incomplete === PAUSE Test☺☹Dirs/incomplete === RUN Test☺☹Dirs/cgo === PAUSE Test☺☹Dirs/cgo === CONT Test☺☹/7 === CONT Test☺☹/6 --- PASS: Test☺☹Verbose (0.04s) === CONT Test☺☹/5 === CONT Test☺☹/3 === CONT Test☺☹/2 --- PASS: TestTags (0.00s) --- PASS: TestTags/x_testtag_y (0.04s) vet_test.go:187: -tags=x testtag y --- PASS: TestTags/x,testtag,y (0.04s) vet_test.go:187: -tags=x,testtag,y --- PASS: TestTags/testtag (0.04s) vet_test.go:187: -tags=testtag === CONT Test☺☹/1 === CONT Test☺☹Dirs/testingpkg === CONT Test☺☹Dirs/buildtag === CONT Test☺☹Dirs/divergent === CONT Test☺☹Dirs/incomplete === CONT Test☺☹Dirs/cgo --- PASS: Test☺☹ (0.39s) --- PASS: Test☺☹/5 (0.07s) vet_test.go:114: φιλεσ: ["testdata/copylock_func.go" "testdata/rangeloop.go"] --- PASS: Test☺☹/3 (0.07s) vet_test.go:114: φιλεσ: ["testdata/composite.go" "testdata/nilfunc.go"] --- PASS: Test☺☹/6 (0.07s) vet_test.go:114: φιλεσ: ["testdata/copylock_range.go" "testdata/shadow.go"] --- PASS: Test☺☹/2 (0.07s) vet_test.go:114: φιλεσ: ["testdata/bool.go" "testdata/method.go" "testdata/unused.go"] --- PASS: Test☺☹/0 (0.13s) vet_test.go:114: φιλεσ: ["testdata/assign.go" "testdata/httpresponse.go" "testdata/structtag.go"] --- PASS: Test☺☹/4 (0.16s) vet_test.go:114: φιλεσ: ["testdata/copylock.go" "testdata/print.go"] --- PASS: Test☺☹/1 (0.07s) vet_test.go:114: φιλεσ: ["testdata/atomic.go" "testdata/lostcancel.go" "testdata/unsafeptr.go"] --- PASS: Test☺☹/7 (0.19s) vet_test.go:114: φιλεσ: ["testdata/deadcode.go" "testdata/shift.go"] --- PASS: Test☺☹Dirs (0.01s) --- PASS: Test☺☹Dirs/testingpkg (0.06s) --- PASS: Test☺☹Dirs/divergent (0.05s) --- PASS: Test☺☹Dirs/buildtag (0.06s) --- PASS: Test☺☹Dirs/incomplete (0.05s) --- PASS: Test☺☹Dirs/cgo (0.04s) --- PASS: Test☺☹Asm (0.75s) PASS ok cmd/vet (cached) PK ! >)� testdata/framefuzz.testnu �[��� === RUN TestAddrStringAllocs === RUN TestAddrStringAllocs/zero === NAME TestAddrStringAllocs === RUN TestAddrStringAllocs/ipv4 === NAME TestAddrStringAllocs === RUN TestAddrStringAllocs/ipv6 === NAME TestAddrStringAllocs === RUN TestAddrStringAllocs/ipv6+zone === NAME TestAddrStringAllocs === RUN TestAddrStringAllocs/ipv4-in-ipv6 === NAME TestAddrStringAllocs === RUN TestAddrStringAllocs/ipv4-in-ipv6+zone === NAME TestAddrStringAllocs --- PASS: TestAddrStringAllocs (0.00s) --- PASS: TestAddrStringAllocs/zero (0.00s) --- PASS: TestAddrStringAllocs/ipv4 (0.00s) --- PASS: TestAddrStringAllocs/ipv6 (0.00s) --- PASS: TestAddrStringAllocs/ipv6+zone (0.00s) --- PASS: TestAddrStringAllocs/ipv4-in-ipv6 (0.00s) --- PASS: TestAddrStringAllocs/ipv4-in-ipv6+zone (0.00s) === NAME === RUN TestPrefixString --- PASS: TestPrefixString (0.00s) === NAME === RUN TestInvalidAddrPortString --- PASS: TestInvalidAddrPortString (0.00s) === NAME === RUN TestAsSlice --- PASS: TestAsSlice (0.00s) === NAME === NAME TestInlining inlining_test.go:102: not in expected set, but also inlinable: "Addr.string4" inlining_test.go:102: not in expected set, but also inlinable: "Prefix.isZero" inlining_test.go:102: not in expected set, but also inlinable: "IPv4Unspecified" inlining_test.go:102: not in expected set, but also inlinable: "joinHostPort" inlining_test.go:102: not in expected set, but also inlinable: "Addr.MarshalBinary" inlining_test.go:102: not in expected set, but also inlinable: "bePutUint64" inlining_test.go:102: not in expected set, but also inlinable: "mask6" inlining_test.go:102: not in expected set, but also inlinable: "AddrPort.isZero" inlining_test.go:102: not in expected set, but also inlinable: "stringsLastIndexByte" inlining_test.go:102: not in expected set, but also inlinable: "Addr.isZero" inlining_test.go:102: not in expected set, but also inlinable: "bePutUint32" inlining_test.go:102: not in expected set, but also inlinable: "leUint16" inlining_test.go:102: not in expected set, but also inlinable: "Addr.string6" inlining_test.go:102: not in expected set, but also inlinable: "beUint64" inlining_test.go:102: not in expected set, but also inlinable: "appendHexPad" inlining_test.go:102: not in expected set, but also inlinable: "lePutUint16" --- PASS: TestInlining (0.10s) === RUN FuzzParse fuzz: elapsed: 0s, gathering baseline coverage: 0/390 completed fuzz: elapsed: 0s, gathering baseline coverage: 390/390 completed, now fuzzing with 16 workers fuzz: elapsed: 3s, execs: 438666 (146173/sec), new interesting: 12 (total: 402) fuzz: elapsed: 4s, execs: 558467 (147850/sec), new interesting: 15 (total: 405) --- PASS: FuzzParse (3.85s) === NAME PASS PK ! u� testdata/framefuzz.jsonnu �[��� {"Action":"start"} {"Action":"run","Test":"TestAddrStringAllocs"} {"Action":"output","Test":"TestAddrStringAllocs","Output":"=== RUN TestAddrStringAllocs\n"} {"Action":"run","Test":"TestAddrStringAllocs/zero"} {"Action":"output","Test":"TestAddrStringAllocs/zero","Output":"=== RUN TestAddrStringAllocs/zero\n"} {"Action":"run","Test":"TestAddrStringAllocs/ipv4"} {"Action":"output","Test":"TestAddrStringAllocs/ipv4","Output":"=== RUN TestAddrStringAllocs/ipv4\n"} {"Action":"run","Test":"TestAddrStringAllocs/ipv6"} {"Action":"output","Test":"TestAddrStringAllocs/ipv6","Output":"=== RUN TestAddrStringAllocs/ipv6\n"} {"Action":"run","Test":"TestAddrStringAllocs/ipv6+zone"} {"Action":"output","Test":"TestAddrStringAllocs/ipv6+zone","Output":"=== RUN TestAddrStringAllocs/ipv6+zone\n"} {"Action":"run","Test":"TestAddrStringAllocs/ipv4-in-ipv6"} {"Action":"output","Test":"TestAddrStringAllocs/ipv4-in-ipv6","Output":"=== RUN TestAddrStringAllocs/ipv4-in-ipv6\n"} {"Action":"run","Test":"TestAddrStringAllocs/ipv4-in-ipv6+zone"} {"Action":"output","Test":"TestAddrStringAllocs/ipv4-in-ipv6+zone","Output":"=== RUN TestAddrStringAllocs/ipv4-in-ipv6+zone\n"} {"Action":"output","Test":"TestAddrStringAllocs","Output":"--- PASS: TestAddrStringAllocs (0.00s)\n"} {"Action":"output","Test":"TestAddrStringAllocs/zero","Output":" --- PASS: TestAddrStringAllocs/zero (0.00s)\n"} {"Action":"pass","Test":"TestAddrStringAllocs/zero"} {"Action":"output","Test":"TestAddrStringAllocs/ipv4","Output":" --- PASS: TestAddrStringAllocs/ipv4 (0.00s)\n"} {"Action":"pass","Test":"TestAddrStringAllocs/ipv4"} {"Action":"output","Test":"TestAddrStringAllocs/ipv6","Output":" --- PASS: TestAddrStringAllocs/ipv6 (0.00s)\n"} {"Action":"pass","Test":"TestAddrStringAllocs/ipv6"} {"Action":"output","Test":"TestAddrStringAllocs/ipv6+zone","Output":" --- PASS: TestAddrStringAllocs/ipv6+zone (0.00s)\n"} {"Action":"pass","Test":"TestAddrStringAllocs/ipv6+zone"} {"Action":"output","Test":"TestAddrStringAllocs/ipv4-in-ipv6","Output":" --- PASS: TestAddrStringAllocs/ipv4-in-ipv6 (0.00s)\n"} {"Action":"pass","Test":"TestAddrStringAllocs/ipv4-in-ipv6"} {"Action":"output","Test":"TestAddrStringAllocs/ipv4-in-ipv6+zone","Output":" --- PASS: TestAddrStringAllocs/ipv4-in-ipv6+zone (0.00s)\n"} {"Action":"pass","Test":"TestAddrStringAllocs/ipv4-in-ipv6+zone"} {"Action":"pass","Test":"TestAddrStringAllocs"} {"Action":"run","Test":"TestPrefixString"} {"Action":"output","Test":"TestPrefixString","Output":"=== RUN TestPrefixString\n"} {"Action":"output","Test":"TestPrefixString","Output":"--- PASS: TestPrefixString (0.00s)\n"} {"Action":"pass","Test":"TestPrefixString"} {"Action":"run","Test":"TestInvalidAddrPortString"} {"Action":"output","Test":"TestInvalidAddrPortString","Output":"=== RUN TestInvalidAddrPortString\n"} {"Action":"output","Test":"TestInvalidAddrPortString","Output":"--- PASS: TestInvalidAddrPortString (0.00s)\n"} {"Action":"pass","Test":"TestInvalidAddrPortString"} {"Action":"run","Test":"TestAsSlice"} {"Action":"output","Test":"TestAsSlice","Output":"=== RUN TestAsSlice\n"} {"Action":"output","Test":"TestAsSlice","Output":"--- PASS: TestAsSlice (0.00s)\n"} {"Action":"pass","Test":"TestAsSlice"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"Addr.string4\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"Prefix.isZero\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"IPv4Unspecified\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"joinHostPort\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"Addr.MarshalBinary\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"bePutUint64\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"mask6\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"AddrPort.isZero\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"stringsLastIndexByte\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"Addr.isZero\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"bePutUint32\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"leUint16\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"Addr.string6\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"beUint64\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"appendHexPad\"\n"} {"Action":"output","Test":"TestInlining","Output":" inlining_test.go:102: not in expected set, but also inlinable: \"lePutUint16\"\n"} {"Action":"output","Test":"TestInlining","Output":"--- PASS: TestInlining (0.10s)\n"} {"Action":"pass","Test":"TestInlining"} {"Action":"run","Test":"FuzzParse"} {"Action":"output","Test":"FuzzParse","Output":"=== RUN FuzzParse\n"} {"Action":"output","Test":"FuzzParse","Output":"fuzz: elapsed: 0s, gathering baseline coverage: 0/390 completed\n"} {"Action":"output","Test":"FuzzParse","Output":"fuzz: elapsed: 0s, gathering baseline coverage: 390/390 completed, now fuzzing with 16 workers\n"} {"Action":"output","Test":"FuzzParse","Output":"fuzz: elapsed: 3s, execs: 438666 (146173/sec), new interesting: 12 (total: 402)\n"} {"Action":"output","Test":"FuzzParse","Output":"\u0003fuzz: elapsed: 4s, execs: 558467 (147850/sec), new interesting: 15 (total: 405)\n"} {"Action":"output","Test":"FuzzParse","Output":"--- PASS: FuzzParse (3.85s)\n"} {"Action":"pass","Test":"FuzzParse"} {"Action":"output","Output":"PASS\n"} {"Action":"pass"} PK ! ��.�� � testdata/frame.testnu �[��� === RUN TestAscii === RUN TestNotReally --- PASS: TestAscii i can eat glass, and it doesn't hurt me. i can eat glass, and it doesn't hurt me. FAIL PASS PK ! ��aN} } testdata/ascii.testnu �[��� === RUN TestAscii I can eat glass, and it doesn't hurt me. I can eat glass, and it doesn't hurt me. I CAN EAT GLASS, AND IT DOESN'T HURT ME. I CAN EAT GLASS, AND IT DOESN'T HURT ME. --- PASS: TestAscii i can eat glass, and it doesn't hurt me. i can eat glass, and it doesn't hurt me. V PNA RNG TYNFF, NAQ VG QBRFA'G UHEG ZR. V PNA RNG TYNFF, NAQ VG QBRFA'G UHEG ZR. PASS PK ! ��`�O O testdata/issue23036.jsonnu �[��� {"Action":"start"} {"Action":"run","Test":"TestActualCase"} {"Action":"output","Test":"TestActualCase","Output":"=== RUN TestActualCase\n"} {"Action":"output","Test":"TestActualCase","Output":"--- FAIL: TestActualCase (0.00s)\n"} {"Action":"output","Test":"TestActualCase","Output":" foo_test.go:14: Differed.\n"} {"Action":"output","Test":"TestActualCase","Output":" Expected: MyTest:\n"} {"Action":"output","Test":"TestActualCase","Output":" --- FAIL: Test output from other tool\n"} {"Action":"output","Test":"TestActualCase","Output":" Actual: not expected\n"} {"Action":"fail","Test":"TestActualCase"} {"Action":"output","Output":"FAIL\n"} {"Action":"output","Output":"exit status 1\n"} {"Action":"output","Output":"FAIL github.com/org/project/badtest 0.049s\n"} {"Action":"fail"} PK ! �@&/ / testdata/vet.jsonnu �[��� {"Action":"start"} {"Action":"run","Test":"TestVet"} {"Action":"output","Test":"TestVet","Output":"=== RUN TestVet\n"} {"Action":"output","Test":"TestVet","Output":"=== PAUSE TestVet\n"} {"Action":"pause","Test":"TestVet"} {"Action":"run","Test":"TestVetAsm"} {"Action":"output","Test":"TestVetAsm","Output":"=== RUN TestVetAsm\n"} {"Action":"output","Test":"TestVetAsm","Output":"=== PAUSE TestVetAsm\n"} {"Action":"pause","Test":"TestVetAsm"} {"Action":"run","Test":"TestVetDirs"} {"Action":"output","Test":"TestVetDirs","Output":"=== RUN TestVetDirs\n"} {"Action":"output","Test":"TestVetDirs","Output":"=== PAUSE TestVetDirs\n"} {"Action":"pause","Test":"TestVetDirs"} {"Action":"run","Test":"TestTags"} {"Action":"output","Test":"TestTags","Output":"=== RUN TestTags\n"} {"Action":"output","Test":"TestTags","Output":"=== PAUSE TestTags\n"} {"Action":"pause","Test":"TestTags"} {"Action":"run","Test":"TestVetVerbose"} {"Action":"output","Test":"TestVetVerbose","Output":"=== RUN TestVetVerbose\n"} {"Action":"output","Test":"TestVetVerbose","Output":"=== PAUSE TestVetVerbose\n"} {"Action":"pause","Test":"TestVetVerbose"} {"Action":"cont","Test":"TestVet"} {"Action":"output","Test":"TestVet","Output":"=== CONT TestVet\n"} {"Action":"cont","Test":"TestTags"} {"Action":"output","Test":"TestTags","Output":"=== CONT TestTags\n"} {"Action":"cont","Test":"TestVetVerbose"} {"Action":"output","Test":"TestVetVerbose","Output":"=== CONT TestVetVerbose\n"} {"Action":"run","Test":"TestTags/testtag"} {"Action":"output","Test":"TestTags/testtag","Output":"=== RUN TestTags/testtag\n"} {"Action":"output","Test":"TestTags/testtag","Output":"=== PAUSE TestTags/testtag\n"} {"Action":"pause","Test":"TestTags/testtag"} {"Action":"cont","Test":"TestVetDirs"} {"Action":"output","Test":"TestVetDirs","Output":"=== CONT TestVetDirs\n"} {"Action":"cont","Test":"TestVetAsm"} {"Action":"output","Test":"TestVetAsm","Output":"=== CONT TestVetAsm\n"} {"Action":"run","Test":"TestVet/0"} {"Action":"output","Test":"TestVet/0","Output":"=== RUN TestVet/0\n"} {"Action":"output","Test":"TestVet/0","Output":"=== PAUSE TestVet/0\n"} {"Action":"pause","Test":"TestVet/0"} {"Action":"run","Test":"TestVet/1"} {"Action":"output","Test":"TestVet/1","Output":"=== RUN TestVet/1\n"} {"Action":"output","Test":"TestVet/1","Output":"=== PAUSE TestVet/1\n"} {"Action":"pause","Test":"TestVet/1"} {"Action":"run","Test":"TestVet/2"} {"Action":"output","Test":"TestVet/2","Output":"=== RUN TestVet/2\n"} {"Action":"output","Test":"TestVet/2","Output":"=== PAUSE TestVet/2\n"} {"Action":"pause","Test":"TestVet/2"} {"Action":"run","Test":"TestVet/3"} {"Action":"output","Test":"TestVet/3","Output":"=== RUN TestVet/3\n"} {"Action":"output","Test":"TestVet/3","Output":"=== PAUSE TestVet/3\n"} {"Action":"pause","Test":"TestVet/3"} {"Action":"run","Test":"TestVet/4"} {"Action":"output","Test":"TestVet/4","Output":"=== RUN TestVet/4\n"} {"Action":"run","Test":"TestTags/x_testtag_y"} {"Action":"output","Test":"TestTags/x_testtag_y","Output":"=== RUN TestTags/x_testtag_y\n"} {"Action":"output","Test":"TestVet/4","Output":"=== PAUSE TestVet/4\n"} {"Action":"pause","Test":"TestVet/4"} {"Action":"run","Test":"TestVet/5"} {"Action":"output","Test":"TestVet/5","Output":"=== RUN TestVet/5\n"} {"Action":"output","Test":"TestVet/5","Output":"=== PAUSE TestVet/5\n"} {"Action":"pause","Test":"TestVet/5"} {"Action":"output","Test":"TestTags/x_testtag_y","Output":"=== PAUSE TestTags/x_testtag_y\n"} {"Action":"pause","Test":"TestTags/x_testtag_y"} {"Action":"run","Test":"TestVet/6"} {"Action":"output","Test":"TestVet/6","Output":"=== RUN TestVet/6\n"} {"Action":"run","Test":"TestTags/x,testtag,y"} {"Action":"output","Test":"TestTags/x,testtag,y","Output":"=== RUN TestTags/x,testtag,y\n"} {"Action":"output","Test":"TestTags/x,testtag,y","Output":"=== PAUSE TestTags/x,testtag,y\n"} {"Action":"pause","Test":"TestTags/x,testtag,y"} {"Action":"run","Test":"TestVetDirs/testingpkg"} {"Action":"output","Test":"TestVetDirs/testingpkg","Output":"=== RUN TestVetDirs/testingpkg\n"} {"Action":"output","Test":"TestVet/6","Output":"=== PAUSE TestVet/6\n"} {"Action":"pause","Test":"TestVet/6"} {"Action":"cont","Test":"TestTags/x,testtag,y"} {"Action":"output","Test":"TestTags/x,testtag,y","Output":"=== CONT TestTags/x,testtag,y\n"} {"Action":"output","Test":"TestVetDirs/testingpkg","Output":"=== PAUSE TestVetDirs/testingpkg\n"} {"Action":"pause","Test":"TestVetDirs/testingpkg"} {"Action":"run","Test":"TestVetDirs/divergent"} {"Action":"output","Test":"TestVetDirs/divergent","Output":"=== RUN TestVetDirs/divergent\n"} {"Action":"run","Test":"TestVet/7"} {"Action":"output","Test":"TestVet/7","Output":"=== RUN TestVet/7\n"} {"Action":"output","Test":"TestVet/7","Output":"=== PAUSE TestVet/7\n"} {"Action":"pause","Test":"TestVet/7"} {"Action":"output","Test":"TestVetDirs/divergent","Output":"=== PAUSE TestVetDirs/divergent\n"} {"Action":"pause","Test":"TestVetDirs/divergent"} {"Action":"cont","Test":"TestTags/x_testtag_y"} {"Action":"output","Test":"TestTags/x_testtag_y","Output":"=== CONT TestTags/x_testtag_y\n"} {"Action":"cont","Test":"TestTags/testtag"} {"Action":"output","Test":"TestTags/testtag","Output":"=== CONT TestTags/testtag\n"} {"Action":"run","Test":"TestVetDirs/buildtag"} {"Action":"output","Test":"TestVetDirs/buildtag","Output":"=== RUN TestVetDirs/buildtag\n"} {"Action":"output","Test":"TestVetDirs/buildtag","Output":"=== PAUSE TestVetDirs/buildtag\n"} {"Action":"pause","Test":"TestVetDirs/buildtag"} {"Action":"cont","Test":"TestVet/0"} {"Action":"output","Test":"TestVet/0","Output":"=== CONT TestVet/0\n"} {"Action":"cont","Test":"TestVet/4"} {"Action":"output","Test":"TestVet/4","Output":"=== CONT TestVet/4\n"} {"Action":"run","Test":"TestVetDirs/incomplete"} {"Action":"output","Test":"TestVetDirs/incomplete","Output":"=== RUN TestVetDirs/incomplete\n"} {"Action":"output","Test":"TestVetDirs/incomplete","Output":"=== PAUSE TestVetDirs/incomplete\n"} {"Action":"pause","Test":"TestVetDirs/incomplete"} {"Action":"run","Test":"TestVetDirs/cgo"} {"Action":"output","Test":"TestVetDirs/cgo","Output":"=== RUN TestVetDirs/cgo\n"} {"Action":"output","Test":"TestVetDirs/cgo","Output":"=== PAUSE TestVetDirs/cgo\n"} {"Action":"pause","Test":"TestVetDirs/cgo"} {"Action":"cont","Test":"TestVet/7"} {"Action":"output","Test":"TestVet/7","Output":"=== CONT TestVet/7\n"} {"Action":"cont","Test":"TestVet/6"} {"Action":"output","Test":"TestVet/6","Output":"=== CONT TestVet/6\n"} {"Action":"output","Test":"TestVetVerbose","Output":"--- PASS: TestVetVerbose (0.04s)\n"} {"Action":"pass","Test":"TestVetVerbose"} {"Action":"cont","Test":"TestVet/5"} {"Action":"output","Test":"TestVet/5","Output":"=== CONT TestVet/5\n"} {"Action":"cont","Test":"TestVet/3"} {"Action":"output","Test":"TestVet/3","Output":"=== CONT TestVet/3\n"} {"Action":"cont","Test":"TestVet/2"} {"Action":"output","Test":"TestVet/2","Output":"=== CONT TestVet/2\n"} {"Action":"output","Test":"TestTags","Output":"--- PASS: TestTags (0.00s)\n"} {"Action":"output","Test":"TestTags/x_testtag_y","Output":" --- PASS: TestTags/x_testtag_y (0.04s)\n"} {"Action":"output","Test":"TestTags/x_testtag_y","Output":" vet_test.go:187: -tags=x testtag y\n"} {"Action":"pass","Test":"TestTags/x_testtag_y"} {"Action":"output","Test":"TestTags/x,testtag,y","Output":" --- PASS: TestTags/x,testtag,y (0.04s)\n"} {"Action":"output","Test":"TestTags/x,testtag,y","Output":" vet_test.go:187: -tags=x,testtag,y\n"} {"Action":"pass","Test":"TestTags/x,testtag,y"} {"Action":"output","Test":"TestTags/testtag","Output":" --- PASS: TestTags/testtag (0.04s)\n"} {"Action":"output","Test":"TestTags/testtag","Output":" vet_test.go:187: -tags=testtag\n"} {"Action":"pass","Test":"TestTags/testtag"} {"Action":"pass","Test":"TestTags"} {"Action":"cont","Test":"TestVet/1"} {"Action":"output","Test":"TestVet/1","Output":"=== CONT TestVet/1\n"} {"Action":"cont","Test":"TestVetDirs/testingpkg"} {"Action":"output","Test":"TestVetDirs/testingpkg","Output":"=== CONT TestVetDirs/testingpkg\n"} {"Action":"cont","Test":"TestVetDirs/buildtag"} {"Action":"output","Test":"TestVetDirs/buildtag","Output":"=== CONT TestVetDirs/buildtag\n"} {"Action":"cont","Test":"TestVetDirs/divergent"} {"Action":"output","Test":"TestVetDirs/divergent","Output":"=== CONT TestVetDirs/divergent\n"} {"Action":"cont","Test":"TestVetDirs/incomplete"} {"Action":"output","Test":"TestVetDirs/incomplete","Output":"=== CONT TestVetDirs/incomplete\n"} {"Action":"cont","Test":"TestVetDirs/cgo"} {"Action":"output","Test":"TestVetDirs/cgo","Output":"=== CONT TestVetDirs/cgo\n"} {"Action":"output","Test":"TestVet","Output":"--- PASS: TestVet (0.39s)\n"} {"Action":"output","Test":"TestVet/5","Output":" --- PASS: TestVet/5 (0.07s)\n"} {"Action":"output","Test":"TestVet/5","Output":" vet_test.go:114: files: [\"testdata/copylock_func.go\" \"testdata/rangeloop.go\"]\n"} {"Action":"pass","Test":"TestVet/5"} {"Action":"output","Test":"TestVet/3","Output":" --- PASS: TestVet/3 (0.07s)\n"} {"Action":"output","Test":"TestVet/3","Output":" vet_test.go:114: files: [\"testdata/composite.go\" \"testdata/nilfunc.go\"]\n"} {"Action":"pass","Test":"TestVet/3"} {"Action":"output","Test":"TestVet/6","Output":" --- PASS: TestVet/6 (0.07s)\n"} {"Action":"output","Test":"TestVet/6","Output":" vet_test.go:114: files: [\"testdata/copylock_range.go\" \"testdata/shadow.go\"]\n"} {"Action":"pass","Test":"TestVet/6"} {"Action":"output","Test":"TestVet/2","Output":" --- PASS: TestVet/2 (0.07s)\n"} {"Action":"output","Test":"TestVet/2","Output":" vet_test.go:114: files: [\"testdata/bool.go\" \"testdata/method.go\" \"testdata/unused.go\"]\n"} {"Action":"pass","Test":"TestVet/2"} {"Action":"output","Test":"TestVet/0","Output":" --- PASS: TestVet/0 (0.13s)\n"} {"Action":"output","Test":"TestVet/0","Output":" vet_test.go:114: files: [\"testdata/assign.go\" \"testdata/httpresponse.go\" \"testdata/structtag.go\"]\n"} {"Action":"pass","Test":"TestVet/0"} {"Action":"output","Test":"TestVet/4","Output":" --- PASS: TestVet/4 (0.16s)\n"} {"Action":"output","Test":"TestVet/4","Output":" vet_test.go:114: files: [\"testdata/copylock.go\" \"testdata/print.go\"]\n"} {"Action":"pass","Test":"TestVet/4"} {"Action":"output","Test":"TestVet/1","Output":" --- PASS: TestVet/1 (0.07s)\n"} {"Action":"output","Test":"TestVet/1","Output":" vet_test.go:114: files: [\"testdata/atomic.go\" \"testdata/lostcancel.go\" \"testdata/unsafeptr.go\"]\n"} {"Action":"pass","Test":"TestVet/1"} {"Action":"output","Test":"TestVet/7","Output":" --- PASS: TestVet/7 (0.19s)\n"} {"Action":"output","Test":"TestVet/7","Output":" vet_test.go:114: files: [\"testdata/deadcode.go\" \"testdata/shift.go\"]\n"} {"Action":"pass","Test":"TestVet/7"} {"Action":"pass","Test":"TestVet"} {"Action":"output","Test":"TestVetDirs","Output":"--- PASS: TestVetDirs (0.01s)\n"} {"Action":"output","Test":"TestVetDirs/testingpkg","Output":" --- PASS: TestVetDirs/testingpkg (0.06s)\n"} {"Action":"pass","Test":"TestVetDirs/testingpkg"} {"Action":"output","Test":"TestVetDirs/divergent","Output":" --- PASS: TestVetDirs/divergent (0.05s)\n"} {"Action":"pass","Test":"TestVetDirs/divergent"} {"Action":"output","Test":"TestVetDirs/buildtag","Output":" --- PASS: TestVetDirs/buildtag (0.06s)\n"} {"Action":"pass","Test":"TestVetDirs/buildtag"} {"Action":"output","Test":"TestVetDirs/incomplete","Output":" --- PASS: TestVetDirs/incomplete (0.05s)\n"} {"Action":"pass","Test":"TestVetDirs/incomplete"} {"Action":"output","Test":"TestVetDirs/cgo","Output":" --- PASS: TestVetDirs/cgo (0.04s)\n"} {"Action":"pass","Test":"TestVetDirs/cgo"} {"Action":"pass","Test":"TestVetDirs"} {"Action":"output","Test":"TestVetAsm","Output":"--- PASS: TestVetAsm (0.75s)\n"} {"Action":"pass","Test":"TestVetAsm"} {"Action":"output","Output":"PASS\n"} {"Action":"output","Output":"ok \tcmd/vet\t(cached)\n"} {"Action":"pass"} PK ! ��N�� � testdata/bench.jsonnu �[��� {"Action":"start"} {"Action":"output","Output":"goos: darwin\n"} {"Action":"output","Output":"goarch: 386\n"} {"Action":"output","Output":"BenchmarkFoo-8 \t2000000000\t 0.00 ns/op\n"} {"Action":"output","Test":"BenchmarkFoo-8","Output":"--- BENCH: BenchmarkFoo-8\n"} {"Action":"output","Test":"BenchmarkFoo-8","Output":"\tx_test.go:8: My benchmark\n"} {"Action":"output","Test":"BenchmarkFoo-8","Output":"\tx_test.go:8: My benchmark\n"} {"Action":"output","Test":"BenchmarkFoo-8","Output":"\tx_test.go:8: My benchmark\n"} {"Action":"output","Test":"BenchmarkFoo-8","Output":"\tx_test.go:8: My benchmark\n"} {"Action":"output","Test":"BenchmarkFoo-8","Output":"\tx_test.go:8: My benchmark\n"} {"Action":"output","Test":"BenchmarkFoo-8","Output":"\tx_test.go:8: My benchmark\n"} {"Action":"bench","Test":"BenchmarkFoo-8"} {"Action":"output","Output":"PASS\n"} {"Action":"output","Output":"ok \tcommand-line-arguments\t0.009s\n"} {"Action":"pass"} PK ! �魊Z Z testdata/benchfail.jsonnu �[��� {"Action":"start"} {"Action":"output","Test":"BenchmarkFoo","Output":"--- FAIL: BenchmarkFoo\n"} {"Action":"output","Test":"BenchmarkFoo","Output":"\tx_test.go:8: My benchmark\n"} {"Action":"fail","Test":"BenchmarkFoo"} {"Action":"output","Output":"FAIL\n"} {"Action":"output","Output":"FAIL\tcommand-line-arguments\t0.008s\n"} {"Action":"fail"} PK ! �ĘW W testdata/timeout.jsonnu �[��� {"Action":"start"} {"Action":"run","Test":"Test"} {"Action":"output","Test":"Test","Output":"=== RUN Test\n"} {"Action":"output","Test":"Test","Output":"panic: test timed out after 1s\n"} {"Action":"output","Test":"Test","Output":"\n"} {"Action":"output","Output":"FAIL\tp\t1.111s\n"} {"Action":"output","Output":"FAIL\n"} {"Action":"fail"} PK ! �i�B B testdata/timeout.testnu �[��� === RUN Test panic: test timed out after 1s FAIL p 1.111s FAIL PK ! �"�� testdata/benchshort.jsonnu �[��� {"Action":"start"} {"Action":"output","Output":"# This file ends in an early EOF to trigger the Benchmark prefix test,\n"} {"Action":"output","Output":"# which only happens when a benchmark prefix is seen ahead of the \\n.\n"} {"Action":"output","Output":"# Normally that's due to the benchmark running and the \\n coming later,\n"} {"Action":"output","Output":"# but to avoid questions of timing, we just use a file with no \\n at all.\n"} {"Action":"output","Output":"BenchmarkFoo \t"} {"Action":"output","Output":"10000 early EOF"} PK ! nL�Z> > testdata/benchshort.testnu �[��� # This file ends in an early EOF to trigger the Benchmark prefix test, # which only happens when a benchmark prefix is seen ahead of the \n. # Normally that's due to the benchmark running and the \n coming later, # but to avoid questions of timing, we just use a file with no \n at all. BenchmarkFoo 10000 early EOFPK ! ���{Z Z testdata/benchfail.testnu �[��� --- FAIL: BenchmarkFoo x_test.go:8: My benchmark FAIL FAIL command-line-arguments 0.008s PK ! testdata/empty.testnu �[��� PK ! ꊪ�1 �1 testdata/smiley.jsonnu �[��� {"Action":"start"} {"Action":"run","Test":"Test☺☹"} {"Action":"output","Test":"Test☺☹","Output":"=== RUN Test☺☹\n"} {"Action":"output","Test":"Test☺☹","Output":"=== PAUSE Test☺☹\n"} {"Action":"pause","Test":"Test☺☹"} {"Action":"run","Test":"Test☺☹Asm"} {"Action":"output","Test":"Test☺☹Asm","Output":"=== RUN Test☺☹Asm\n"} {"Action":"output","Test":"Test☺☹Asm","Output":"=== PAUSE Test☺☹Asm\n"} {"Action":"pause","Test":"Test☺☹Asm"} {"Action":"run","Test":"Test☺☹Dirs"} {"Action":"output","Test":"Test☺☹Dirs","Output":"=== RUN Test☺☹Dirs\n"} {"Action":"output","Test":"Test☺☹Dirs","Output":"=== PAUSE Test☺☹Dirs\n"} {"Action":"pause","Test":"Test☺☹Dirs"} {"Action":"run","Test":"TestTags"} {"Action":"output","Test":"TestTags","Output":"=== RUN TestTags\n"} {"Action":"output","Test":"TestTags","Output":"=== PAUSE TestTags\n"} {"Action":"pause","Test":"TestTags"} {"Action":"run","Test":"Test☺☹Verbose"} {"Action":"output","Test":"Test☺☹Verbose","Output":"=== RUN Test☺☹Verbose\n"} {"Action":"output","Test":"Test☺☹Verbose","Output":"=== PAUSE Test☺☹Verbose\n"} {"Action":"pause","Test":"Test☺☹Verbose"} {"Action":"cont","Test":"Test☺☹"} {"Action":"output","Test":"Test☺☹","Output":"=== CONT Test☺☹\n"} {"Action":"cont","Test":"TestTags"} {"Action":"output","Test":"TestTags","Output":"=== CONT TestTags\n"} {"Action":"cont","Test":"Test☺☹Verbose"} {"Action":"output","Test":"Test☺☹Verbose","Output":"=== CONT Test☺☹Verbose\n"} {"Action":"run","Test":"TestTags/testtag"} {"Action":"output","Test":"TestTags/testtag","Output":"=== RUN TestTags/testtag\n"} {"Action":"output","Test":"TestTags/testtag","Output":"=== PAUSE TestTags/testtag\n"} {"Action":"pause","Test":"TestTags/testtag"} {"Action":"cont","Test":"Test☺☹Dirs"} {"Action":"output","Test":"Test☺☹Dirs","Output":"=== CONT Test☺☹Dirs\n"} {"Action":"cont","Test":"Test☺☹Asm"} {"Action":"output","Test":"Test☺☹Asm","Output":"=== CONT Test☺☹Asm\n"} {"Action":"run","Test":"Test☺☹/0"} {"Action":"output","Test":"Test☺☹/0","Output":"=== RUN Test☺☹/0\n"} {"Action":"output","Test":"Test☺☹/0","Output":"=== PAUSE Test☺☹/0\n"} {"Action":"pause","Test":"Test☺☹/0"} {"Action":"run","Test":"Test☺☹/1"} {"Action":"output","Test":"Test☺☹/1","Output":"=== RUN Test☺☹/1\n"} {"Action":"output","Test":"Test☺☹/1","Output":"=== PAUSE Test☺☹/1\n"} {"Action":"pause","Test":"Test☺☹/1"} {"Action":"run","Test":"Test☺☹/2"} {"Action":"output","Test":"Test☺☹/2","Output":"=== RUN Test☺☹/2\n"} {"Action":"output","Test":"Test☺☹/2","Output":"=== PAUSE Test☺☹/2\n"} {"Action":"pause","Test":"Test☺☹/2"} {"Action":"run","Test":"Test☺☹/3"} {"Action":"output","Test":"Test☺☹/3","Output":"=== RUN Test☺☹/3\n"} {"Action":"output","Test":"Test☺☹/3","Output":"=== PAUSE Test☺☹/3\n"} {"Action":"pause","Test":"Test☺☹/3"} {"Action":"run","Test":"Test☺☹/4"} {"Action":"output","Test":"Test☺☹/4","Output":"=== RUN Test☺☹/4\n"} {"Action":"run","Test":"TestTags/x_testtag_y"} {"Action":"output","Test":"TestTags/x_testtag_y","Output":"=== RUN TestTags/x_testtag_y\n"} {"Action":"output","Test":"Test☺☹/4","Output":"=== PAUSE Test☺☹/4\n"} {"Action":"pause","Test":"Test☺☹/4"} {"Action":"run","Test":"Test☺☹/5"} {"Action":"output","Test":"Test☺☹/5","Output":"=== RUN Test☺☹/5\n"} {"Action":"output","Test":"Test☺☹/5","Output":"=== PAUSE Test☺☹/5\n"} {"Action":"pause","Test":"Test☺☹/5"} {"Action":"output","Test":"TestTags/x_testtag_y","Output":"=== PAUSE TestTags/x_testtag_y\n"} {"Action":"pause","Test":"TestTags/x_testtag_y"} {"Action":"run","Test":"Test☺☹/6"} {"Action":"output","Test":"Test☺☹/6","Output":"=== RUN Test☺☹/6\n"} {"Action":"run","Test":"TestTags/x,testtag,y"} {"Action":"output","Test":"TestTags/x,testtag,y","Output":"=== RUN TestTags/x,testtag,y\n"} {"Action":"output","Test":"TestTags/x,testtag,y","Output":"=== PAUSE TestTags/x,testtag,y\n"} {"Action":"pause","Test":"TestTags/x,testtag,y"} {"Action":"run","Test":"Test☺☹Dirs/testingpkg"} {"Action":"output","Test":"Test☺☹Dirs/testingpkg","Output":"=== RUN Test☺☹Dirs/testingpkg\n"} {"Action":"output","Test":"Test☺☹/6","Output":"=== PAUSE Test☺☹/6\n"} {"Action":"pause","Test":"Test☺☹/6"} {"Action":"cont","Test":"TestTags/x,testtag,y"} {"Action":"output","Test":"TestTags/x,testtag,y","Output":"=== CONT TestTags/x,testtag,y\n"} {"Action":"output","Test":"Test☺☹Dirs/testingpkg","Output":"=== PAUSE Test☺☹Dirs/testingpkg\n"} {"Action":"pause","Test":"Test☺☹Dirs/testingpkg"} {"Action":"run","Test":"Test☺☹Dirs/divergent"} {"Action":"output","Test":"Test☺☹Dirs/divergent","Output":"=== RUN Test☺☹Dirs/divergent\n"} {"Action":"run","Test":"Test☺☹/7"} {"Action":"output","Test":"Test☺☹/7","Output":"=== RUN Test☺☹/7\n"} {"Action":"output","Test":"Test☺☹/7","Output":"=== PAUSE Test☺☹/7\n"} {"Action":"pause","Test":"Test☺☹/7"} {"Action":"output","Test":"Test☺☹Dirs/divergent","Output":"=== PAUSE Test☺☹Dirs/divergent\n"} {"Action":"pause","Test":"Test☺☹Dirs/divergent"} {"Action":"cont","Test":"TestTags/x_testtag_y"} {"Action":"output","Test":"TestTags/x_testtag_y","Output":"=== CONT TestTags/x_testtag_y\n"} {"Action":"cont","Test":"TestTags/testtag"} {"Action":"output","Test":"TestTags/testtag","Output":"=== CONT TestTags/testtag\n"} {"Action":"run","Test":"Test☺☹Dirs/buildtag"} {"Action":"output","Test":"Test☺☹Dirs/buildtag","Output":"=== RUN Test☺☹Dirs/buildtag\n"} {"Action":"output","Test":"Test☺☹Dirs/buildtag","Output":"=== PAUSE Test☺☹Dirs/buildtag\n"} {"Action":"pause","Test":"Test☺☹Dirs/buildtag"} {"Action":"cont","Test":"Test☺☹/0"} {"Action":"output","Test":"Test☺☹/0","Output":"=== CONT Test☺☹/0\n"} {"Action":"cont","Test":"Test☺☹/4"} {"Action":"output","Test":"Test☺☹/4","Output":"=== CONT Test☺☹/4\n"} {"Action":"run","Test":"Test☺☹Dirs/incomplete"} {"Action":"output","Test":"Test☺☹Dirs/incomplete","Output":"=== RUN Test☺☹Dirs/incomplete\n"} {"Action":"output","Test":"Test☺☹Dirs/incomplete","Output":"=== PAUSE Test☺☹Dirs/incomplete\n"} {"Action":"pause","Test":"Test☺☹Dirs/incomplete"} {"Action":"run","Test":"Test☺☹Dirs/cgo"} {"Action":"output","Test":"Test☺☹Dirs/cgo","Output":"=== RUN Test☺☹Dirs/cgo\n"} {"Action":"output","Test":"Test☺☹Dirs/cgo","Output":"=== PAUSE Test☺☹Dirs/cgo\n"} {"Action":"pause","Test":"Test☺☹Dirs/cgo"} {"Action":"cont","Test":"Test☺☹/7"} {"Action":"output","Test":"Test☺☹/7","Output":"=== CONT Test☺☹/7\n"} {"Action":"cont","Test":"Test☺☹/6"} {"Action":"output","Test":"Test☺☹/6","Output":"=== CONT Test☺☹/6\n"} {"Action":"output","Test":"Test☺☹Verbose","Output":"--- PASS: Test☺☹Verbose (0.04s)\n"} {"Action":"pass","Test":"Test☺☹Verbose"} {"Action":"cont","Test":"Test☺☹/5"} {"Action":"output","Test":"Test☺☹/5","Output":"=== CONT Test☺☹/5\n"} {"Action":"cont","Test":"Test☺☹/3"} {"Action":"output","Test":"Test☺☹/3","Output":"=== CONT Test☺☹/3\n"} {"Action":"cont","Test":"Test☺☹/2"} {"Action":"output","Test":"Test☺☹/2","Output":"=== CONT Test☺☹/2\n"} {"Action":"output","Test":"TestTags","Output":"--- PASS: TestTags (0.00s)\n"} {"Action":"output","Test":"TestTags/x_testtag_y","Output":" --- PASS: TestTags/x_testtag_y (0.04s)\n"} {"Action":"output","Test":"TestTags/x_testtag_y","Output":" vet_test.go:187: -tags=x testtag y\n"} {"Action":"pass","Test":"TestTags/x_testtag_y"} {"Action":"output","Test":"TestTags/x,testtag,y","Output":" --- PASS: TestTags/x,testtag,y (0.04s)\n"} {"Action":"output","Test":"TestTags/x,testtag,y","Output":" vet_test.go:187: -tags=x,testtag,y\n"} {"Action":"pass","Test":"TestTags/x,testtag,y"} {"Action":"output","Test":"TestTags/testtag","Output":" --- PASS: TestTags/testtag (0.04s)\n"} {"Action":"output","Test":"TestTags/testtag","Output":" vet_test.go:187: -tags=testtag\n"} {"Action":"pass","Test":"TestTags/testtag"} {"Action":"pass","Test":"TestTags"} {"Action":"cont","Test":"Test☺☹/1"} {"Action":"output","Test":"Test☺☹/1","Output":"=== CONT Test☺☹/1\n"} {"Action":"cont","Test":"Test☺☹Dirs/testingpkg"} {"Action":"output","Test":"Test☺☹Dirs/testingpkg","Output":"=== CONT Test☺☹Dirs/testingpkg\n"} {"Action":"cont","Test":"Test☺☹Dirs/buildtag"} {"Action":"output","Test":"Test☺☹Dirs/buildtag","Output":"=== CONT Test☺☹Dirs/buildtag\n"} {"Action":"cont","Test":"Test☺☹Dirs/divergent"} {"Action":"output","Test":"Test☺☹Dirs/divergent","Output":"=== CONT Test☺☹Dirs/divergent\n"} {"Action":"cont","Test":"Test☺☹Dirs/incomplete"} {"Action":"output","Test":"Test☺☹Dirs/incomplete","Output":"=== CONT Test☺☹Dirs/incomplete\n"} {"Action":"cont","Test":"Test☺☹Dirs/cgo"} {"Action":"output","Test":"Test☺☹Dirs/cgo","Output":"=== CONT Test☺☹Dirs/cgo\n"} {"Action":"output","Test":"Test☺☹","Output":"--- PASS: Test☺☹ (0.39s)\n"} {"Action":"output","Test":"Test☺☹/5","Output":" --- PASS: Test☺☹/5 (0.07s)\n"} {"Action":"output","Test":"Test☺☹/5","Output":" vet_test.go:114: φιλεσ: [\"testdata/copylock_func.go\" \"testdata/rangeloop.go\"]\n"} {"Action":"pass","Test":"Test☺☹/5"} {"Action":"output","Test":"Test☺☹/3","Output":" --- PASS: Test☺☹/3 (0.07s)\n"} {"Action":"output","Test":"Test☺☹/3","Output":" vet_test.go:114: φιλεσ: [\"testdata/composite.go\" \"testdata/nilfunc.go\"]\n"} {"Action":"pass","Test":"Test☺☹/3"} {"Action":"output","Test":"Test☺☹/6","Output":" --- PASS: Test☺☹/6 (0.07s)\n"} {"Action":"output","Test":"Test☺☹/6","Output":" vet_test.go:114: φιλεσ: [\"testdata/copylock_range.go\" \"testdata/shadow.go\"]\n"} {"Action":"pass","Test":"Test☺☹/6"} {"Action":"output","Test":"Test☺☹/2","Output":" --- PASS: Test☺☹/2 (0.07s)\n"} {"Action":"output","Test":"Test☺☹/2","Output":" vet_test.go:114: φιλεσ: [\"testdata/bool.go\" \"testdata/method.go\" \"testdata/unused.go\"]\n"} {"Action":"pass","Test":"Test☺☹/2"} {"Action":"output","Test":"Test☺☹/0","Output":" --- PASS: Test☺☹/0 (0.13s)\n"} {"Action":"output","Test":"Test☺☹/0","Output":" vet_test.go:114: φιλεσ: [\"testdata/assign.go\" \"testdata/httpresponse.go\" \"testdata/structtag.go\"]\n"} {"Action":"pass","Test":"Test☺☹/0"} {"Action":"output","Test":"Test☺☹/4","Output":" --- PASS: Test☺☹/4 (0.16s)\n"} {"Action":"output","Test":"Test☺☹/4","Output":" vet_test.go:114: φιλεσ: [\"testdata/copylock.go\" \"testdata/print.go\"]\n"} {"Action":"pass","Test":"Test☺☹/4"} {"Action":"output","Test":"Test☺☹/1","Output":" --- PASS: Test☺☹/1 (0.07s)\n"} {"Action":"output","Test":"Test☺☹/1","Output":" vet_test.go:114: φιλεσ: [\"testdata/atomic.go\" \"testdata/lostcancel.go\" \"testdata/unsafeptr.go\"]\n"} {"Action":"pass","Test":"Test☺☹/1"} {"Action":"output","Test":"Test☺☹/7","Output":" --- PASS: Test☺☹/7 (0.19s)\n"} {"Action":"output","Test":"Test☺☹/7","Output":" vet_test.go:114: φιλεσ: [\"testdata/deadcode.go\" \"testdata/shift.go\"]\n"} {"Action":"pass","Test":"Test☺☹/7"} {"Action":"pass","Test":"Test☺☹"} {"Action":"output","Test":"Test☺☹Dirs","Output":"--- PASS: Test☺☹Dirs (0.01s)\n"} {"Action":"output","Test":"Test☺☹Dirs/testingpkg","Output":" --- PASS: Test☺☹Dirs/testingpkg (0.06s)\n"} {"Action":"pass","Test":"Test☺☹Dirs/testingpkg"} {"Action":"output","Test":"Test☺☹Dirs/divergent","Output":" --- PASS: Test☺☹Dirs/divergent (0.05s)\n"} {"Action":"pass","Test":"Test☺☹Dirs/divergent"} {"Action":"output","Test":"Test☺☹Dirs/buildtag","Output":" --- PASS: Test☺☹Dirs/buildtag (0.06s)\n"} {"Action":"pass","Test":"Test☺☹Dirs/buildtag"} {"Action":"output","Test":"Test☺☹Dirs/incomplete","Output":" --- PASS: Test☺☹Dirs/incomplete (0.05s)\n"} {"Action":"pass","Test":"Test☺☹Dirs/incomplete"} {"Action":"output","Test":"Test☺☹Dirs/cgo","Output":" --- PASS: Test☺☹Dirs/cgo (0.04s)\n"} {"Action":"pass","Test":"Test☺☹Dirs/cgo"} {"Action":"pass","Test":"Test☺☹Dirs"} {"Action":"output","Test":"Test☺☹Asm","Output":"--- PASS: Test☺☹Asm (0.75s)\n"} {"Action":"pass","Test":"Test☺☹Asm"} {"Action":"output","Output":"PASS\n"} {"Action":"output","Output":"ok \tcmd/vet\t(cached)\n"} {"Action":"pass"} PK ! g,uΖ � testdata/issue29755.testnu �[��� === RUN TestOutputWithSubtest === RUN TestOutputWithSubtest/sub_test === RUN TestOutputWithSubtest/sub_test/sub2 === RUN TestOutputWithSubtest/sub_test2 === RUN TestOutputWithSubtest/sub_test2/sub2 --- FAIL: TestOutputWithSubtest (0.00s) foo_test.go:6: output before sub tests foo_test.go:10: output from root test foo_test.go:15: output from root test --- PASS: TestOutputWithSubtest/sub_test (0.00s) foo_test.go:9: output from sub test foo_test.go:11: more output from sub test foo_test.go:16: more output from sub test --- PASS: TestOutputWithSubtest/sub_test/sub2 (0.00s) foo_test.go:14: output from sub2 test foo_test.go:22: output from root test foo_test.go:27: output from root test --- PASS: TestOutputWithSubtest/sub_test2 (0.00s) foo_test.go:21: output from sub test2 foo_test.go:23: more output from sub test2 foo_test.go:28: more output from sub test2 --- PASS: TestOutputWithSubtest/sub_test2/sub2 (0.00s) foo_test.go:26: output from sub2 test foo_test.go:32: output after sub test FAIL FAIL gotest.tools/gotestsum/foo 0.001s FAIL PK ! �:� � testdata/issue23920.jsonnu �[��� {"Action":"start"} {"Action":"run","Test":"TestWithColons"} {"Action":"output","Test":"TestWithColons","Output":"=== RUN TestWithColons\n"} {"Action":"run","Test":"TestWithColons/[::1]"} {"Action":"output","Test":"TestWithColons/[::1]","Output":"=== RUN TestWithColons/[::1]\n"} {"Action":"run","Test":"TestWithColons/127.0.0.1:0"} {"Action":"output","Test":"TestWithColons/127.0.0.1:0","Output":"=== RUN TestWithColons/127.0.0.1:0\n"} {"Action":"output","Test":"TestWithColons","Output":"--- PASS: TestWithColons (0.00s)\n"} {"Action":"output","Test":"TestWithColons/[::1]","Output":" --- PASS: TestWithColons/[::1] (0.00s)\n"} {"Action":"pass","Test":"TestWithColons/[::1]"} {"Action":"output","Test":"TestWithColons/127.0.0.1:0","Output":" --- PASS: TestWithColons/127.0.0.1:0 (0.00s)\n"} {"Action":"pass","Test":"TestWithColons/127.0.0.1:0"} {"Action":"pass","Test":"TestWithColons"} {"Action":"output","Output":"PASS\n"} {"Action":"pass"} PK ! �/y�0 �0 testdata/framebig.jsonnu �[��� {"Action":"start"} {"Action":"run","Test":"TestIndex"} {"Action":"output","Test":"TestIndex","Output":"=== RUN TestIndex\n"} {"Action":"output","Test":"TestIndex","Output":"--- PASS: TestIndex (0.00s)\n"} {"Action":"pass","Test":"TestIndex"} {"Action":"pass","Test":"TestIndex"} {"Action":"output","Test":"TestIndex","Output":"=== PASS TestIndex\n"} {"Action":"run","Test":"TestLastIndex"} {"Action":"output","Test":"TestLastIndex","Output":"=== RUN TestLastIndex\n"} {"Action":"output","Test":"TestLastIndex","Output":"--- PASS: TestLastIndex (0.00s)\n"} {"Action":"pass","Test":"TestLastIndex"} {"Action":"pass","Test":"TestLastIndex"} {"Action":"output","Test":"TestLastIndex","Output":"=== PASS TestLastIndex\n"} {"Action":"run","Test":"TestIndexAny"} {"Action":"output","Test":"TestIndexAny","Output":"=== RUN TestIndexAny\n"} {"Action":"output","Test":"TestIndexAny","Output":"--- PASS: TestIndexAny (0.00s)\n"} {"Action":"pass","Test":"TestIndexAny"} {"Action":"pass","Test":"TestIndexAny"} {"Action":"output","Test":"TestIndexAny","Output":"=== PASS TestIndexAny\n"} {"Action":"run","Test":"TestLastIndexAny"} {"Action":"output","Test":"TestLastIndexAny","Output":"=== RUN TestLastIndexAny\n"} {"Action":"output","Test":"TestLastIndexAny","Output":"--- PASS: TestLastIndexAny (0.00s)\n"} {"Action":"pass","Test":"TestLastIndexAny"} {"Action":"pass","Test":"TestLastIndexAny"} {"Action":"output","Test":"TestLastIndexAny","Output":"=== PASS TestLastIndexAny\n"} {"Action":"run","Test":"TestIndexByte"} {"Action":"output","Test":"TestIndexByte","Output":"=== RUN TestIndexByte\n"} {"Action":"output","Test":"TestIndexByte","Output":"--- PASS: TestIndexByte (0.00s)\n"} {"Action":"pass","Test":"TestIndexByte"} {"Action":"pass","Test":"TestIndexByte"} {"Action":"output","Test":"TestIndexByte","Output":"=== PASS TestIndexByte\n"} {"Action":"run","Test":"TestLastIndexByte"} {"Action":"output","Test":"TestLastIndexByte","Output":"=== RUN TestLastIndexByte\n"} {"Action":"output","Test":"TestLastIndexByte","Output":"--- PASS: TestLastIndexByte (0.00s)\n"} {"Action":"pass","Test":"TestLastIndexByte"} {"Action":"pass","Test":"TestLastIndexByte"} {"Action":"output","Test":"TestLastIndexByte","Output":"=== PASS TestLastIndexByte\n"} {"Action":"run","Test":"TestIndexRandom"} {"Action":"output","Test":"TestIndexRandom","Output":"=== RUN TestIndexRandom\n"} {"Action":"output","Test":"TestIndexRandom","Output":"--- PASS: TestIndexRandom (0.00s)\n"} {"Action":"pass","Test":"TestIndexRandom"} {"Action":"pass","Test":"TestIndexRandom"} {"Action":"output","Test":"TestIndexRandom","Output":"=== PASS TestIndexRandom\n"} {"Action":"run","Test":"TestIndexRune"} {"Action":"output","Test":"TestIndexRune","Output":"=== RUN TestIndexRune\n"} {"Action":"output","Test":"TestIndexRune","Output":"--- PASS: TestIndexRune (0.00s)\n"} {"Action":"pass","Test":"TestIndexRune"} {"Action":"pass","Test":"TestIndexRune"} {"Action":"output","Test":"TestIndexRune","Output":"=== PASS TestIndexRune\n"} {"Action":"run","Test":"TestIndexFunc"} {"Action":"output","Test":"TestIndexFunc","Output":"=== RUN TestIndexFunc\n"} {"Action":"output","Test":"TestIndexFunc","Output":"--- PASS: TestIndexFunc (0.00s)\n"} {"Action":"pass","Test":"TestIndexFunc"} {"Action":"pass","Test":"TestIndexFunc"} {"Action":"output","Test":"TestIndexFunc","Output":"=== PASS TestIndexFunc\n"} {"Action":"run","Test":"ExampleIndex"} {"Action":"output","Test":"ExampleIndex","Output":"=== RUN ExampleIndex\n"} {"Action":"output","Test":"ExampleIndex","Output":"--- PASS: ExampleIndex (0.00s)\n"} {"Action":"pass","Test":"ExampleIndex"} {"Action":"run","Test":"ExampleIndexFunc"} {"Action":"output","Test":"ExampleIndexFunc","Output":"=== RUN ExampleIndexFunc\n"} {"Action":"output","Test":"ExampleIndexFunc","Output":"--- PASS: ExampleIndexFunc (0.00s)\n"} {"Action":"pass","Test":"ExampleIndexFunc"} {"Action":"run","Test":"ExampleIndexAny"} {"Action":"output","Test":"ExampleIndexAny","Output":"=== RUN ExampleIndexAny\n"} {"Action":"output","Test":"ExampleIndexAny","Output":"--- PASS: ExampleIndexAny (0.00s)\n"} {"Action":"pass","Test":"ExampleIndexAny"} {"Action":"run","Test":"ExampleIndexByte"} {"Action":"output","Test":"ExampleIndexByte","Output":"=== RUN ExampleIndexByte\n"} {"Action":"output","Test":"ExampleIndexByte","Output":"--- PASS: ExampleIndexByte (0.00s)\n"} {"Action":"pass","Test":"ExampleIndexByte"} {"Action":"run","Test":"ExampleIndexRune"} {"Action":"output","Test":"ExampleIndexRune","Output":"=== RUN ExampleIndexRune\n"} {"Action":"output","Test":"ExampleIndexRune","Output":"--- PASS: ExampleIndexRune (0.00s)\n"} {"Action":"pass","Test":"ExampleIndexRune"} {"Action":"run","Test":"ExampleLastIndex"} {"Action":"output","Test":"ExampleLastIndex","Output":"=== RUN ExampleLastIndex\n"} {"Action":"output","Test":"ExampleLastIndex","Output":"--- PASS: ExampleLastIndex (0.00s)\n"} {"Action":"pass","Test":"ExampleLastIndex"} {"Action":"run","Test":"ExampleLastIndexAny"} {"Action":"output","Test":"ExampleLastIndexAny","Output":"=== RUN ExampleLastIndexAny\n"} {"Action":"output","Test":"ExampleLastIndexAny","Output":"--- PASS: ExampleLastIndexAny (0.00s)\n"} {"Action":"pass","Test":"ExampleLastIndexAny"} {"Action":"run","Test":"ExampleLastIndexByte"} {"Action":"output","Test":"ExampleLastIndexByte","Output":"=== RUN ExampleLastIndexByte\n"} {"Action":"output","Test":"ExampleLastIndexByte","Output":"--- PASS: ExampleLastIndexByte (0.00s)\n"} {"Action":"pass","Test":"ExampleLastIndexByte"} {"Action":"run","Test":"ExampleLastIndexFunc"} {"Action":"output","Test":"ExampleLastIndexFunc","Output":"=== RUN ExampleLastIndexFunc\n"} {"Action":"output","Test":"ExampleLastIndexFunc","Output":"--- PASS: ExampleLastIndexFunc (0.00s)\n"} {"Action":"pass","Test":"ExampleLastIndexFunc"} {"Action":"output","Output":"goos: darwin\n"} {"Action":"output","Output":"goarch: amd64\n"} {"Action":"output","Output":"pkg: strings\n"} {"Action":"output","Output":"cpu: Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz\n"} {"Action":"run","Test":"BenchmarkIndexRune"} {"Action":"output","Test":"BenchmarkIndexRune","Output":"=== RUN BenchmarkIndexRune\n"} {"Action":"output","Test":"BenchmarkIndexRune","Output":"BenchmarkIndexRune\n"} {"Action":"output","Test":"BenchmarkIndexRune","Output":"BenchmarkIndexRune-16 \t87335496\t 14.27 ns/op\n"} {"Action":"run","Test":"BenchmarkIndexRuneLongString"} {"Action":"output","Test":"BenchmarkIndexRuneLongString","Output":"=== RUN BenchmarkIndexRuneLongString\n"} {"Action":"output","Test":"BenchmarkIndexRuneLongString","Output":"BenchmarkIndexRuneLongString\n"} {"Action":"output","Test":"BenchmarkIndexRuneLongString","Output":"BenchmarkIndexRuneLongString-16 \t57104472\t 18.66 ns/op\n"} {"Action":"run","Test":"BenchmarkIndexRuneFastPath"} {"Action":"output","Test":"BenchmarkIndexRuneFastPath","Output":"=== RUN BenchmarkIndexRuneFastPath\n"} {"Action":"output","Test":"BenchmarkIndexRuneFastPath","Output":"BenchmarkIndexRuneFastPath\n"} {"Action":"output","Test":"BenchmarkIndexRuneFastPath","Output":"BenchmarkIndexRuneFastPath-16 \t262380160\t 4.499 ns/op\n"} {"Action":"run","Test":"BenchmarkIndex"} {"Action":"output","Test":"BenchmarkIndex","Output":"=== RUN BenchmarkIndex\n"} {"Action":"output","Test":"BenchmarkIndex","Output":"BenchmarkIndex\n"} {"Action":"output","Test":"BenchmarkIndex","Output":"BenchmarkIndex-16 \t248529364\t 4.697 ns/op\n"} {"Action":"run","Test":"BenchmarkLastIndex"} {"Action":"output","Test":"BenchmarkLastIndex","Output":"=== RUN BenchmarkLastIndex\n"} {"Action":"output","Test":"BenchmarkLastIndex","Output":"BenchmarkLastIndex\n"} {"Action":"output","Test":"BenchmarkLastIndex","Output":"BenchmarkLastIndex-16 \t293688756\t 4.166 ns/op\n"} {"Action":"run","Test":"BenchmarkIndexByte"} {"Action":"output","Test":"BenchmarkIndexByte","Output":"=== RUN BenchmarkIndexByte\n"} {"Action":"output","Test":"BenchmarkIndexByte","Output":"BenchmarkIndexByte\n"} {"Action":"output","Test":"BenchmarkIndexByte","Output":"BenchmarkIndexByte-16 \t310338391\t 3.608 ns/op\n"} {"Action":"run","Test":"BenchmarkIndexHard1"} {"Action":"output","Test":"BenchmarkIndexHard1","Output":"=== RUN BenchmarkIndexHard1\n"} {"Action":"output","Test":"BenchmarkIndexHard1","Output":"BenchmarkIndexHard1\n"} {"Action":"output","Test":"BenchmarkIndexHard1","Output":"BenchmarkIndexHard1-16 \t 12852\t 92380 ns/op\n"} {"Action":"run","Test":"BenchmarkIndexHard2"} {"Action":"output","Test":"BenchmarkIndexHard2","Output":"=== RUN BenchmarkIndexHard2\n"} {"Action":"output","Test":"BenchmarkIndexHard2","Output":"BenchmarkIndexHard2\n"} {"Action":"output","Test":"BenchmarkIndexHard2","Output":"BenchmarkIndexHard2-16 \t 8977\t 135080 ns/op\n"} {"Action":"run","Test":"BenchmarkIndexHard3"} {"Action":"output","Test":"BenchmarkIndexHard3","Output":"=== RUN BenchmarkIndexHard3\n"} {"Action":"output","Test":"BenchmarkIndexHard3","Output":"BenchmarkIndexHard3\n"} {"Action":"output","Test":"BenchmarkIndexHard3","Output":"BenchmarkIndexHard3-16 \t 1885\t 532079 ns/op\n"} {"Action":"run","Test":"BenchmarkIndexHard4"} {"Action":"output","Test":"BenchmarkIndexHard4","Output":"=== RUN BenchmarkIndexHard4\n"} {"Action":"output","Test":"BenchmarkIndexHard4","Output":"BenchmarkIndexHard4\n"} {"Action":"output","Test":"BenchmarkIndexHard4","Output":"BenchmarkIndexHard4-16 \t 2298\t 533435 ns/op\n"} {"Action":"run","Test":"BenchmarkLastIndexHard1"} {"Action":"output","Test":"BenchmarkLastIndexHard1","Output":"=== RUN BenchmarkLastIndexHard1\n"} {"Action":"output","Test":"BenchmarkLastIndexHard1","Output":"BenchmarkLastIndexHard1\n"} {"Action":"output","Test":"BenchmarkLastIndexHard1","Output":"BenchmarkLastIndexHard1-16 \t 813\t 1295767 ns/op\n"} {"Action":"run","Test":"BenchmarkLastIndexHard2"} {"Action":"output","Test":"BenchmarkLastIndexHard2","Output":"=== RUN BenchmarkLastIndexHard2\n"} {"Action":"output","Test":"BenchmarkLastIndexHard2","Output":"BenchmarkLastIndexHard2\n"} {"Action":"output","Test":"BenchmarkLastIndexHard2","Output":"BenchmarkLastIndexHard2-16 \t 784\t 1389403 ns/op\n"} {"Action":"run","Test":"BenchmarkLastIndexHard3"} {"Action":"output","Test":"BenchmarkLastIndexHard3","Output":"=== RUN BenchmarkLastIndexHard3\n"} {"Action":"output","Test":"BenchmarkLastIndexHard3","Output":"BenchmarkLastIndexHard3\n"} {"Action":"output","Test":"BenchmarkLastIndexHard3","Output":"BenchmarkLastIndexHard3-16 \t 913\t 1316608 ns/op\n"} {"Action":"run","Test":"BenchmarkIndexTorture"} {"Action":"output","Test":"BenchmarkIndexTorture","Output":"=== RUN BenchmarkIndexTorture\n"} {"Action":"output","Test":"BenchmarkIndexTorture","Output":"BenchmarkIndexTorture\n"} {"Action":"output","Test":"BenchmarkIndexTorture","Output":"BenchmarkIndexTorture-16 \t 98090\t 10201 ns/op\n"} {"Action":"run","Test":"BenchmarkIndexAnyASCII"} {"Action":"output","Test":"BenchmarkIndexAnyASCII","Output":"=== RUN BenchmarkIndexAnyASCII\n"} {"Action":"output","Test":"BenchmarkIndexAnyASCII","Output":"BenchmarkIndexAnyASCII\n"} {"Action":"run","Test":"BenchmarkIndexAnyASCII/1:1"} {"Action":"output","Test":"BenchmarkIndexAnyASCII/1:1","Output":"=== RUN BenchmarkIndexAnyASCII/1:1\n"} {"Action":"output","Test":"BenchmarkIndexAnyASCII/1:1","Output":"BenchmarkIndexAnyASCII/1:1\n"} {"Action":"output","Test":"BenchmarkIndexAnyASCII/1:1","Output":"BenchmarkIndexAnyASCII/1:1-16 \t214829462\t 5.592 ns/op\n"} {"Action":"run","Test":"BenchmarkIndexAnyASCII/1:2"} {"Action":"output","Test":"BenchmarkIndexAnyASCII/1:2","Output":"=== RUN BenchmarkIndexAnyASCII/1:2\n"} {"Action":"output","Test":"BenchmarkIndexAnyASCII/1:2","Output":"BenchmarkIndexAnyASCII/1:2\n"} {"Action":"output","Test":"BenchmarkIndexAnyASCII/1:2","Output":"BenchmarkIndexAnyASCII/1:2-16 \t155499682\t 7.214 ns/op\n"} {"Action":"run","Test":"BenchmarkIndexAnyASCII/1:4"} {"Action":"output","Test":"BenchmarkIndexAnyASCII/1:4","Output":"=== RUN BenchmarkIndexAnyASCII/1:4\n"} {"Action":"output","Test":"BenchmarkIndexAnyASCII/1:4","Output":"BenchmarkIndexAnyASCII/1:4\n"} {"Action":"output","Test":"BenchmarkIndexAnyASCII/1:4","Output":"BenchmarkIndexAnyASCII/1:4-16 \t172757770\t 7.092 ns/op\n"} {"Action":"output","Output":"PASS\n"} {"Action":"pass"} PK ! �C7 7 testdata/framebig.testnu �[��� === RUN TestIndex --- PASS: TestIndex (0.00s) === PASS TestIndex === NAME === RUN TestLastIndex --- PASS: TestLastIndex (0.00s) === PASS TestLastIndex === NAME === RUN TestIndexAny --- PASS: TestIndexAny (0.00s) === PASS TestIndexAny === NAME === RUN TestLastIndexAny --- PASS: TestLastIndexAny (0.00s) === PASS TestLastIndexAny === NAME === RUN TestIndexByte --- PASS: TestIndexByte (0.00s) === PASS TestIndexByte === NAME === RUN TestLastIndexByte --- PASS: TestLastIndexByte (0.00s) === PASS TestLastIndexByte === NAME === RUN TestIndexRandom --- PASS: TestIndexRandom (0.00s) === PASS TestIndexRandom === NAME === RUN TestIndexRune --- PASS: TestIndexRune (0.00s) === PASS TestIndexRune === NAME === RUN TestIndexFunc --- PASS: TestIndexFunc (0.00s) === PASS TestIndexFunc === NAME === RUN ExampleIndex --- PASS: ExampleIndex (0.00s) === NAME === RUN ExampleIndexFunc --- PASS: ExampleIndexFunc (0.00s) === NAME === RUN ExampleIndexAny --- PASS: ExampleIndexAny (0.00s) === NAME === RUN ExampleIndexByte --- PASS: ExampleIndexByte (0.00s) === NAME === RUN ExampleIndexRune --- PASS: ExampleIndexRune (0.00s) === NAME === RUN ExampleLastIndex --- PASS: ExampleLastIndex (0.00s) === NAME === RUN ExampleLastIndexAny --- PASS: ExampleLastIndexAny (0.00s) === NAME === RUN ExampleLastIndexByte --- PASS: ExampleLastIndexByte (0.00s) === NAME === RUN ExampleLastIndexFunc --- PASS: ExampleLastIndexFunc (0.00s) === NAME goos: darwin goarch: amd64 pkg: strings cpu: Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz === RUN BenchmarkIndexRune BenchmarkIndexRune BenchmarkIndexRune-16 87335496 14.27 ns/op === NAME === RUN BenchmarkIndexRuneLongString BenchmarkIndexRuneLongString BenchmarkIndexRuneLongString-16 57104472 18.66 ns/op === NAME === RUN BenchmarkIndexRuneFastPath BenchmarkIndexRuneFastPath BenchmarkIndexRuneFastPath-16 262380160 4.499 ns/op === NAME === RUN BenchmarkIndex BenchmarkIndex BenchmarkIndex-16 248529364 4.697 ns/op === NAME === RUN BenchmarkLastIndex BenchmarkLastIndex BenchmarkLastIndex-16 293688756 4.166 ns/op === NAME === RUN BenchmarkIndexByte BenchmarkIndexByte BenchmarkIndexByte-16 310338391 3.608 ns/op === NAME === RUN BenchmarkIndexHard1 BenchmarkIndexHard1 BenchmarkIndexHard1-16 12852 92380 ns/op === NAME === RUN BenchmarkIndexHard2 BenchmarkIndexHard2 BenchmarkIndexHard2-16 8977 135080 ns/op === NAME === RUN BenchmarkIndexHard3 BenchmarkIndexHard3 BenchmarkIndexHard3-16 1885 532079 ns/op === NAME === RUN BenchmarkIndexHard4 BenchmarkIndexHard4 BenchmarkIndexHard4-16 2298 533435 ns/op === NAME === RUN BenchmarkLastIndexHard1 BenchmarkLastIndexHard1 BenchmarkLastIndexHard1-16 813 1295767 ns/op === NAME === RUN BenchmarkLastIndexHard2 BenchmarkLastIndexHard2 BenchmarkLastIndexHard2-16 784 1389403 ns/op === NAME === RUN BenchmarkLastIndexHard3 BenchmarkLastIndexHard3 BenchmarkLastIndexHard3-16 913 1316608 ns/op === NAME === RUN BenchmarkIndexTorture BenchmarkIndexTorture BenchmarkIndexTorture-16 98090 10201 ns/op === NAME === RUN BenchmarkIndexAnyASCII BenchmarkIndexAnyASCII === RUN BenchmarkIndexAnyASCII/1:1 BenchmarkIndexAnyASCII/1:1 BenchmarkIndexAnyASCII/1:1-16 214829462 5.592 ns/op === NAME === RUN BenchmarkIndexAnyASCII/1:2 BenchmarkIndexAnyASCII/1:2 BenchmarkIndexAnyASCII/1:2-16 155499682 7.214 ns/op === NAME === RUN BenchmarkIndexAnyASCII/1:4 BenchmarkIndexAnyASCII/1:4 BenchmarkIndexAnyASCII/1:4-16 172757770 7.092 ns/op === NAME PASS PK ! �ޫ�3 3 testdata/frame.jsonnu �[��� {"Action":"start"} {"Action":"run","Test":"TestAscii"} {"Action":"output","Test":"TestAscii","Output":"=== RUN TestAscii\n"} {"Action":"output","Test":"TestAscii","Output":"=== RUN TestNotReally\n"} {"Action":"output","Test":"TestAscii","Output":"--- PASS: TestAscii\n"} {"Action":"output","Test":"TestAscii","Output":" i can eat glass, and it doesn't hurt me. i can eat glass, and it doesn't hurt me.\n"} {"Action":"output","Test":"TestAscii","Output":"FAIL\n"} {"Action":"pass","Test":"TestAscii"} {"Action":"output","Output":"PASS\n"} {"Action":"pass"} PK ! �Q�� testdata/issue23036.testnu �[��� === RUN TestActualCase --- FAIL: TestActualCase (0.00s) foo_test.go:14: Differed. Expected: MyTest: --- FAIL: Test output from other tool Actual: not expected FAIL exit status 1 FAIL github.com/org/project/badtest 0.049s PK ! jm3- - signal_unix.gonu �[��� PK ! <Ҷ k signal_notunix.gonu �[��� PK ! �-T�� � � main.gonu �[��� PK ! ra � � � test2json_test.gonu �[��� PK ! �����9 �9 �3 test2json.gonu �[��� PK ! �H)�� � �m testdata/issue23920.testnu �[��� PK ! ��;� � o testdata/unicode.testnu �[��� PK ! .��� ?r testdata/issue29755.jsonnu �[��� PK ! �;#�� � �� testdata/unicode.jsonnu �[��� PK ! ����. . �� testdata/bench.testnu �[��� PK ! ���2D D � testdata/ascii.jsonnu �[��� PK ! U3� �� testdata/panic.jsonnu �[��� PK ! >.:�9 9 \� testdata/vet.testnu �[��� PK ! � 5 ֜ testdata/empty.jsonnu �[��� PK ! A �� � ,� testdata/panic.testnu �[��� PK ! �- - N� testdata/smiley.testnu �[��� PK ! >)� �� testdata/framefuzz.testnu �[��� PK ! u� � testdata/framefuzz.jsonnu �[��� PK ! ��.�� � `� testdata/frame.testnu �[��� PK ! ��aN} } F� testdata/ascii.testnu �[��� PK ! ��`�O O � testdata/issue23036.jsonnu �[��� PK ! �@&/ / �� testdata/vet.jsonnu �[��� PK ! ��N�� � � testdata/bench.jsonnu �[��� PK ! �魊Z Z � testdata/benchfail.jsonnu �[��� PK ! �ĘW W � testdata/timeout.jsonnu �[��� PK ! �i�B B 7 testdata/timeout.testnu �[��� PK ! �"�� � testdata/benchshort.jsonnu �[��� PK ! nL�Z> > testdata/benchshort.testnu �[��� PK ! ���{Z Z � testdata/benchfail.testnu �[��� PK ! F testdata/empty.testnu �[��� PK ! ꊪ�1 �1 � testdata/smiley.jsonnu �[��� PK ! g,uΖ � �E testdata/issue29755.testnu �[��� PK ! �:� � lJ testdata/issue23920.jsonnu �[��� PK ! �/y�0 �0 pN testdata/framebig.jsonnu �[��� PK ! �C7 7 � testdata/framebig.testnu �[��� PK ! �ޫ�3 3 � testdata/frame.jsonnu �[��� PK ! �Q�� �� testdata/issue23036.testnu �[��� PK % % ' �
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0.01 |
proxy
|
phpinfo
|
ÐаÑтройка