upload android base code part3
This commit is contained in:
parent
71b83c22f1
commit
b9e30e05b1
15122 changed files with 2089659 additions and 0 deletions
108
android/build/kati/testcase/parse_benchcmp.go
Normal file
108
android/build/kati/testcase/parse_benchcmp.go
Normal file
|
@ -0,0 +1,108 @@
|
|||
// Copyright 2015 Google Inc. All rights reserved
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
/*
|
||||
Program parse_benchcmp runs testcase_parse_benchmark and displays
|
||||
performance changes.
|
||||
|
||||
*/
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func run(prog string, args ...string) {
|
||||
cmd := exec.Command(prog, args...)
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
err := cmd.Run()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func output(prog string, args ...string) string {
|
||||
cmd := exec.Command(prog, args...)
|
||||
out, err := cmd.CombinedOutput()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return strings.TrimSpace(string(out))
|
||||
}
|
||||
|
||||
func runBenchtest(fname string) {
|
||||
run("go", "generate")
|
||||
f, err := os.Create(fname)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer func() {
|
||||
err = f.Close()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}()
|
||||
cmd := exec.Command("go", "test", "-run", "NONE", "-bench", ".")
|
||||
cmd.Stdout = f
|
||||
err = cmd.Run()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
_, err := exec.LookPath("benchcmp")
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "benchcmp not found:", err)
|
||||
fmt.Fprintln(os.Stderr, "install it by:")
|
||||
fmt.Fprintln(os.Stderr, " export GOPATH=$HOME # if not set")
|
||||
fmt.Fprintln(os.Stderr, " PATH=$PATH:$GOPATH/bin")
|
||||
fmt.Fprintln(os.Stderr, " go get -u golang.org/x/tools/cmd/benchcmp")
|
||||
os.Exit(1)
|
||||
}
|
||||
status := output("git", "status", "-s")
|
||||
if status != "" {
|
||||
fmt.Fprintln(os.Stderr, "workspace is dirty. please commit.")
|
||||
fmt.Fprintln(os.Stderr, status)
|
||||
os.Exit(1)
|
||||
}
|
||||
curBranch := output("git", "symbolic-ref", "--short", "HEAD")
|
||||
if curBranch == "master" {
|
||||
fmt.Fprintln(os.Stderr, "current branch is master.")
|
||||
fmt.Fprintln(os.Stderr, "run in branch to compare with master.")
|
||||
os.Exit(1)
|
||||
}
|
||||
fmt.Println("Run benchmark on master and ", curBranch)
|
||||
fmt.Println("git checkout master")
|
||||
run("git", "checkout", "master")
|
||||
run("git", "clean", "-f")
|
||||
commit := output("git", "log", "--oneline", "-1")
|
||||
fmt.Println(commit)
|
||||
fmt.Println("running benchmark tests...")
|
||||
runBenchtest("bench-old.out")
|
||||
|
||||
fmt.Println("git checkout", curBranch)
|
||||
run("git", "checkout", curBranch)
|
||||
run("git", "clean", "-f")
|
||||
commit = output("git", "log", "--oneline", "-1")
|
||||
fmt.Println(commit)
|
||||
fmt.Println("running benchmark tests...")
|
||||
runBenchtest("bench-new.out")
|
||||
|
||||
run("benchcmp", "bench-old.out", "bench-new.out")
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue