// Copyright 2023 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 main import ( "flag" "fmt" "io" "log" "os" "internal/trace/v2" "internal/trace/v2/testtrace" ) func init() { flag.Usage = func() { fmt.Fprintf(flag.CommandLine.Output(), "Usage: %s\n", os.Args[0]) fmt.Fprintf(flag.CommandLine.Output(), "\n") fmt.Fprintf(flag.CommandLine.Output(), "Accepts a trace at stdin and validates it.\n") flag.PrintDefaults() } log.SetFlags(0) } var logEvents = flag.Bool("log-events", false, "whether to log events") func main() { flag.Parse() r, err := trace.NewReader(os.Stdin) if err != nil { log.Fatal(err) } v := testtrace.NewValidator() for { ev, err := r.ReadEvent() if err == io.EOF { break } if err != nil { log.Fatal(err) } if *logEvents { log.Println(ev.String()) } if err := v.Event(ev); err != nil { log.Fatal(err) } } }