Jiri Simsa | 5293dcb | 2014-05-10 09:56:38 -0700 | [diff] [blame^] | 1 | package rt_test |
| 2 | |
| 3 | import ( |
| 4 | "fmt" |
| 5 | "os" |
| 6 | "regexp" |
| 7 | "testing" |
| 8 | |
| 9 | _ "veyron/lib/testutil" |
| 10 | "veyron/lib/testutil/blackbox" |
| 11 | |
| 12 | "veyron2/rt" |
| 13 | "veyron2/vlog" |
| 14 | ) |
| 15 | |
| 16 | func init() { |
| 17 | blackbox.CommandTable["child"] = child |
| 18 | } |
| 19 | |
| 20 | func TestHelperProcess(t *testing.T) { |
| 21 | blackbox.HelperProcess(t) |
| 22 | } |
| 23 | |
| 24 | func TestInit(t *testing.T) { |
| 25 | r, err := rt.New() |
| 26 | if err != nil { |
| 27 | t.Fatalf("error: %s", err) |
| 28 | } |
| 29 | l := r.Logger() |
| 30 | args := fmt.Sprintf("%s", l) |
| 31 | expected := regexp.MustCompile("name=veyron logdirs=\\[/tmp\\] logtostderr=true|false alsologtostderr=false|true max_stack_buf_size=4292608 v=[0-9] stderrthreshold=2 vmodule= log_backtrace_at=:0") |
| 32 | if !expected.MatchString(args) { |
| 33 | t.Errorf("unexpected default args: %q", args) |
| 34 | } |
| 35 | if id := r.Identity().PublicID(); id == nil || len(id.Names()) == 0 || len(id.Names()[0]) == 0 { |
| 36 | t.Errorf("New should have created an identity. Created %v", id) |
| 37 | } |
| 38 | } |
| 39 | |
| 40 | func child(argv []string) { |
| 41 | r := rt.Init() |
| 42 | vlog.Infof("%s\n", r.Logger()) |
| 43 | fmt.Printf("%s\n", r.Logger()) |
| 44 | _ = r |
| 45 | blackbox.WaitForEOFOnStdin() |
| 46 | fmt.Printf("done\n") |
| 47 | } |
| 48 | |
| 49 | func TestInitArgs(t *testing.T) { |
| 50 | c := blackbox.HelperCommand(t, "child", "--logtostderr=true", "--vv=3", "--", "foobar") |
| 51 | defer c.Cleanup() |
| 52 | c.Cmd.Start() |
| 53 | str, err := c.ReadLineFromChild() |
| 54 | if err != nil { |
| 55 | t.Fatalf("failed to read from child: %v", err) |
| 56 | } |
| 57 | expected := fmt.Sprintf("name=veyron "+ |
| 58 | "logdirs=[%s] "+ |
| 59 | "logtostderr=true "+ |
| 60 | "alsologtostderr=true "+ |
| 61 | "max_stack_buf_size=4292608 "+ |
| 62 | "v=3 "+ |
| 63 | "stderrthreshold=2 "+ |
| 64 | "vmodule= "+ |
| 65 | "log_backtrace_at=:0", |
| 66 | os.TempDir()) |
| 67 | |
| 68 | if str != expected { |
| 69 | t.Fatalf("unexpected output from child: %s", str) |
| 70 | } |
| 71 | c.CloseStdin() |
| 72 | c.Expect("done") |
| 73 | c.ExpectEOFAndWait() |
| 74 | } |