本文整理汇总了Golang中github.com/coreos/gexpect.Command函数的典型用法代码示例。如果您正苦于以下问题:Golang Command函数的具体用法?Golang Command怎么用?Golang Command使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Command函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: importImageAndFetchHashAsGid
func importImageAndFetchHashAsGid(t *testing.T, ctx *testutils.RktRunCtx, img string, fetchArgs string, gid int) string {
// Import the test image into store manually.
cmd := fmt.Sprintf("%s --insecure-options=image,tls fetch %s %s", ctx.Cmd(), fetchArgs, img)
// TODO(jonboulle): non-root user breaks trying to read root-written
// config directories. Should be a better way to approach this. Should
// config directories be readable by the rkt group too?
if gid != 0 {
cmd = fmt.Sprintf("%s --insecure-options=image,tls fetch %s %s", ctx.CmdNoConfig(), fetchArgs, img)
}
child, err := gexpect.Command(cmd)
if err != nil {
t.Fatalf("cannot create rkt command: %v", err)
}
if gid != 0 {
child.Cmd.SysProcAttr = &syscall.SysProcAttr{}
child.Cmd.SysProcAttr.Credential = &syscall.Credential{Uid: uint32(nobodyUid), Gid: uint32(gid)}
}
err = child.Start()
if err != nil {
t.Fatalf("cannot exec rkt: %v", err)
}
// Read out the image hash.
result, out, err := expectRegexWithOutput(child, "sha512-[0-9a-f]{32,64}")
if err != nil || len(result) != 1 {
t.Fatalf("Error: %v\nOutput: %v", err, out)
}
waitOrFail(t, child, 0)
return result[0]
}
示例2: runRktAsUidGidAndCheckOutput
func runRktAsUidGidAndCheckOutput(t *testing.T, rktCmd, expectedLine string, expectError bool, uid, gid int) {
child, err := gexpect.Command(rktCmd)
if err != nil {
t.Fatalf("cannot exec rkt: %v", err)
}
if gid != 0 {
child.Cmd.SysProcAttr = &syscall.SysProcAttr{}
child.Cmd.SysProcAttr.Credential = &syscall.Credential{Uid: uint32(uid), Gid: uint32(gid)}
}
err = child.Start()
if err != nil {
t.Fatalf("cannot start rkt: %v", err)
}
expectedStatus := 0
if expectError {
expectedStatus = 1
}
defer waitOrFail(t, child, expectedStatus)
if expectedLine != "" {
if err := expectWithOutput(child, expectedLine); err != nil {
t.Fatalf("didn't receive expected output %q: %v", expectedLine, err)
}
}
}
示例3: runRkt
func runRkt(t *testing.T, rktCmd string, uid, gid int) (string, int) {
child, err := gexpect.Command(rktCmd)
if err != nil {
t.Fatalf("cannot exec rkt: %v", err)
}
if gid != 0 {
child.Cmd.SysProcAttr = &syscall.SysProcAttr{}
child.Cmd.SysProcAttr.Credential = &syscall.Credential{Uid: uint32(uid), Gid: uint32(gid)}
}
err = child.Start()
if err != nil {
t.Fatalf("cannot start rkt: %v", err)
}
_, linesChan := child.AsyncInteractChannels()
var buf bytes.Buffer
for line := range linesChan {
buf.WriteString(line + "\n") // reappend newline
}
status, _ := common.GetExitStatus(child.Wait())
return buf.String(), status
}
示例4: startRktAsGidAndCheckOutput
func startRktAsGidAndCheckOutput(t *testing.T, rktCmd, expectedLine string, gid int) *gexpect.ExpectSubprocess {
child, err := gexpect.Command(rktCmd)
if err != nil {
t.Fatalf("cannot exec rkt: %v", err)
}
if gid != 0 {
child.Cmd.SysProcAttr = &syscall.SysProcAttr{}
child.Cmd.SysProcAttr.Credential = &syscall.Credential{Uid: uint32(nobodyUid), Gid: uint32(gid)}
}
if err := child.Start(); err != nil {
t.Fatalf("cannot exec rkt: %v", err)
}
if expectedLine != "" {
if err := expectWithOutput(child, expectedLine); err != nil {
t.Fatalf("didn't receive expected output %q: %v", expectedLine, err)
}
}
return child
}