func main()

in benchmark/benchclient/main.go [46:96]


func main() {
	flag.Parse()

	opts := []benchmark.Option{
		benchmark.WithServiceName(*serviceName),
		benchmark.WithTimeout(*timeout),
		benchmark.WithRequestSize(*requestSize),
		benchmark.WithNumClients(*numClients),
	}
	if *noLibrary {
		opts = append(opts, benchmark.WithNoLibrary())
	}

	client := benchmark.NewClient(flag.Args(), opts...)
	fmt.Println("bench-client started")

	rdr := bufio.NewScanner(os.Stdin)
	for rdr.Scan() {
		line := rdr.Text()
		parts := strings.Split(line, " ")
		var n int
		var err error
		if len(parts) >= 2 {
			n, err = strconv.Atoi(parts[1])
			if err != nil {
				log.Fatalf("unrecognized number %q: %v", parts[1], err)
			}
		}

		switch cmd := parts[0]; cmd {
		case "warmup":
			if err := client.Warmup(); err != nil {
				log.Fatalf("warmup failed: %v", err)
			}
			fmt.Println("success")
			continue
		case "rcall":
			makeCalls(n, client.RawCall)
		case "tcall":
			makeCalls(n, client.ThriftCall)
		case "quit":
			return
		default:
			log.Fatalf("unrecognized command: %v", line)
		}
	}

	if err := rdr.Err(); err != nil {
		log.Fatalf("Reader failed: %v", err)
	}
}