func expectCommon(p *gexpect.ExpectSubprocess, searchString string, timeout time.Duration) error { var err error p.Capture() if timeout == 0 { err = p.Expect(searchString) } else { err = p.ExpectTimeout(searchString, timeout) } if err != nil { return fmt.Errorf(string(p.Collect())) } return nil }
func waitOrFail(t *testing.T, child *gexpect.ExpectSubprocess, shouldSucceed bool) { err := child.Wait() switch { case !shouldSucceed && err == nil: t.Fatalf("Expected test to fail but it didn't\nOutput:\n%s", child.Collect()) case shouldSucceed && err != nil: t.Fatalf("rkt didn't terminate correctly: %v\nOutput:\n%s", err, child.Collect()) case err != nil && err.Error() != "exit status 1": t.Fatalf("rkt terminated with unexpected error: %v\nOutput:\n%s", err, child.Collect()) } }