| Index: infra/bots/gen_tasks.go
|
| diff --git a/infra/bots/gen_tasks.go b/infra/bots/gen_tasks.go
|
| index 50af1b9444cb43aeb18b5c7266c48c95e41e798f..0751124368c73f4cda8ac29e18ee8c5eebb402f3 100644
|
| --- a/infra/bots/gen_tasks.go
|
| +++ b/infra/bots/gen_tasks.go
|
| @@ -11,6 +11,7 @@ package main
|
| import (
|
| "bytes"
|
| "encoding/json"
|
| + "flag"
|
| "fmt"
|
| "io/ioutil"
|
| "os"
|
| @@ -62,6 +63,9 @@ var (
|
|
|
| // Path to the infra/bots directory.
|
| infrabotsDir = ""
|
| +
|
| + // Flags.
|
| + testing = flag.Bool("test", false, "Run in test mode: verify that the output hasn't changed.")
|
| )
|
|
|
| // deriveCompileTaskName returns the name of a compile task based on the given
|
| @@ -492,7 +496,6 @@ func main() {
|
| }
|
|
|
| // Write the tasks.json file.
|
| - outFile := path.Join(root, specs.TASKS_CFG_FILE)
|
| b, err := json.MarshalIndent(cfg, "", " ")
|
| if err != nil {
|
| glog.Fatal(err)
|
| @@ -501,8 +504,21 @@ func main() {
|
| // much less readable. Replace the escape characters with the real
|
| // character.
|
| b = bytes.Replace(b, []byte("\\u003c"), []byte("<"), -1)
|
| - if err := ioutil.WriteFile(outFile, b, os.ModePerm); err != nil {
|
| - glog.Fatal(err)
|
| +
|
| + outFile := path.Join(root, specs.TASKS_CFG_FILE)
|
| + if *testing {
|
| + // Don't write the file; read it and compare.
|
| + expect, err := ioutil.ReadFile(outFile)
|
| + if err != nil {
|
| + glog.Fatal(err)
|
| + }
|
| + if !bytes.Equal(expect, b) {
|
| + glog.Fatalf("Expected no changes, but changes were found!")
|
| + }
|
| + } else {
|
| + if err := ioutil.WriteFile(outFile, b, os.ModePerm); err != nil {
|
| + glog.Fatal(err)
|
| + }
|
| }
|
| }
|
|
|
|
|