doc/tutorial/kubernets: make more OS-independent
Change-Id: I4ba8a11a37a3e46360bda1039ace5fa60f3c293f
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/2286
Reviewed-by: Marcel van Lohuizen <mpvl@google.com>
diff --git a/doc/tutorial/kubernetes/quick/cue.mod b/doc/tutorial/kubernetes/quick/cue.mod
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/doc/tutorial/kubernetes/quick/cue.mod
diff --git a/doc/tutorial/kubernetes/tut_test.go b/doc/tutorial/kubernetes/tut_test.go
index 4866f20..4df54c8 100644
--- a/doc/tutorial/kubernetes/tut_test.go
+++ b/doc/tutorial/kubernetes/tut_test.go
@@ -117,6 +117,7 @@
cmd = cmd[:p]
}
+ logf(t, "$ %s", cmd)
switch cmd = strings.TrimSpace(cmd); {
case strings.HasPrefix(cmd, "cat"):
if input == "" {
@@ -146,8 +147,6 @@
}
case strings.HasPrefix(cmd, "cue "):
- logf(t, "$ %s", cmd)
-
if strings.HasPrefix(cmd, "cue create") {
// Don't execute the kubernetes dry run.
break
@@ -158,20 +157,32 @@
}
cuetest.Run(t, wd, cmd, &cuetest.Config{
- Stdin: strings.NewReader(input),
- Stdout: ioutil.Discard,
+ Stdin: strings.NewReader(input),
})
- case strings.HasPrefix(cmd, "sed "),
- strings.HasPrefix(cmd, "touch "):
- logf(t, "$ %s", cmd)
- args := cuetest.SplitArgs(t, cmd)
- cx := exec.Command(args[0], args[1:]...)
- if input != "" {
- cx.Stdin = strings.NewReader(input)
- cx.Stdout = ioutil.Discard
+ case strings.HasPrefix(cmd, "sed "):
+ c := cuetest.NewChunker(t, []byte(cmd))
+ c.Next("s/", "/")
+ re := regexp.MustCompile(c.Text())
+ c.Next("", "/'")
+ repl := c.Bytes()
+ c.Next(" ", ".cue")
+ file := c.Text() + ".cue"
+ b, err := ioutil.ReadFile(file)
+ if err != nil {
+ t.Fatal(err)
}
- if err := cx.Run(); err != nil {
+ b = re.ReplaceAll(b, repl)
+ err = ioutil.WriteFile(file, b, 0644)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ case strings.HasPrefix(cmd, "touch "):
+ logf(t, "$ %s", cmd)
+ file := strings.TrimSpace(cmd[len("touch "):])
+ err := ioutil.WriteFile(file, []byte(""), 0644)
+ if err != nil {
t.Fatal(err)
}
}
@@ -280,7 +291,8 @@
}
if got, want := string(got), string(b); got != want {
- t.Errorf("files differ:\n%s", diff.Diff(got, want))
+ t.Log(got)
+ t.Errorf("output differs for file %s in %s", testfile, cwd)
}
})
}
diff --git a/internal/cuetest/sim.go b/internal/cuetest/sim.go
index 87f0f99..ed105c7 100644
--- a/internal/cuetest/sim.go
+++ b/internal/cuetest/sim.go
@@ -66,11 +66,16 @@
cmd, err := cmd.New(args)
if cfg.Stdout != nil {
cmd.SetOutput(cfg.Stdout)
+ } else {
+ cmd.SetOutput(buf)
}
if cfg.Stdin != nil {
cmd.SetInput(cfg.Stdin)
}
if err = cmd.Run(context.Background()); err != nil {
+ if cfg.Stdout == nil {
+ logf(t, "Ouput:\n%s", buf.String())
+ }
logf(t, "Execution failed: %v", err)
}
@@ -93,6 +98,7 @@
}
func logf(t *testing.T, format string, args ...interface{}) {
+ t.Helper()
t.Logf(format, args...)
}