Cosmos Nicolaou | 234642b | 2015-02-04 18:30:52 -0800 | [diff] [blame] | 1 | package main_test |
| 2 | |
Cosmos Nicolaou | a866f26 | 2015-02-10 14:56:06 -0800 | [diff] [blame] | 3 | //go:generate v23 test generate . |
Cosmos Nicolaou | 234642b | 2015-02-04 18:30:52 -0800 | [diff] [blame] | 4 | |
| 5 | import ( |
| 6 | "bytes" |
| 7 | "fmt" |
| 8 | "io/ioutil" |
| 9 | "os" |
| 10 | "regexp" |
| 11 | "testing" |
| 12 | |
| 13 | "v.io/core/veyron/lib/modules" |
Cosmos Nicolaou | 4a77c19 | 2015-02-08 15:29:18 -0800 | [diff] [blame] | 14 | "v.io/core/veyron/lib/testutil/v23tests" |
Cosmos Nicolaou | 234642b | 2015-02-04 18:30:52 -0800 | [diff] [blame] | 15 | ) |
| 16 | |
| 17 | func TestHelperProcess(t *testing.T) { |
| 18 | modules.DispatchInTest() |
| 19 | } |
Cosmos Nicolaou | 4a77c19 | 2015-02-08 15:29:18 -0800 | [diff] [blame] | 20 | |
Cosmos Nicolaou | 01007a0 | 2015-02-11 15:38:38 -0800 | [diff] [blame] | 21 | func V23TestSimulator(t *v23tests.T) { |
Cosmos Nicolaou | 234642b | 2015-02-04 18:30:52 -0800 | [diff] [blame] | 22 | binary := t.BuildGoPkg("v.io/core/veyron/tools/naming/simulator") |
| 23 | files, err := ioutil.ReadDir("./testdata") |
| 24 | if err != nil { |
| 25 | t.Fatal(err) |
| 26 | } |
| 27 | scripts := []string{} |
| 28 | re := regexp.MustCompile(`.*\.scr`) |
| 29 | for _, f := range files { |
| 30 | if !f.IsDir() && re.MatchString(f.Name()) { |
| 31 | scripts = append(scripts, "./testdata/"+f.Name()) |
| 32 | } |
| 33 | } |
| 34 | for _, script := range scripts { |
| 35 | if testing.Verbose() { |
| 36 | fmt.Fprintf(os.Stderr, "Script %v\n", script) |
| 37 | } |
James Ring | 79a9ceb | 2015-02-09 13:25:54 -0800 | [diff] [blame] | 38 | scriptFile, err := os.Open(script) |
| 39 | if err != nil { |
| 40 | t.Fatalf("Open(%q) failed: %v", script, err) |
| 41 | } |
| 42 | invocation := binary.WithStdin(scriptFile).Start() |
Cosmos Nicolaou | 234642b | 2015-02-04 18:30:52 -0800 | [diff] [blame] | 43 | var stdout, stderr bytes.Buffer |
| 44 | if err := invocation.Wait(&stdout, &stderr); err != nil { |
| 45 | fmt.Fprintf(os.Stderr, "Script %v failed\n", script) |
Cosmos Nicolaou | a17b9b3 | 2015-02-04 20:32:12 -0800 | [diff] [blame] | 46 | fmt.Fprintln(os.Stderr, stdout.String()) |
| 47 | fmt.Fprintln(os.Stderr, stderr.String()) |
Cosmos Nicolaou | 234642b | 2015-02-04 18:30:52 -0800 | [diff] [blame] | 48 | t.Error(err) |
| 49 | } |
| 50 | } |
| 51 | } |