veyron/lib/modules: Fix test so that environment variables can contain newlines.
Change-Id: I59f5b5d101f1d9d48e04c25167ac6440c5829071
diff --git a/lib/modules/modules_test.go b/lib/modules/modules_test.go
index 278edab..43133d5 100644
--- a/lib/modules/modules_test.go
+++ b/lib/modules/modules_test.go
@@ -5,6 +5,7 @@
"bytes"
"fmt"
"io"
+ "net/url"
"os"
"strings"
"testing"
@@ -51,7 +52,7 @@
fmt.Fprintf(stdout, "%s%s\n", printEnvArgPrefix, a)
}
for k, v := range env {
- fmt.Fprintf(stdout, k+"="+v+"\n")
+ fmt.Fprintf(stdout, "%s\n", url.QueryEscape(k+"="+v))
}
return nil
}
@@ -226,6 +227,10 @@
if strings.HasPrefix(o, printEnvArgPrefix) {
childArgs = append(childArgs, strings.TrimPrefix(o, printEnvArgPrefix))
} else {
+ o, err := url.QueryUnescape(o)
+ if err != nil {
+ t.Fatalf("unexpected error: %s", err)
+ }
childEnv = append(childEnv, o)
}
}
@@ -241,7 +246,7 @@
for _, want := range shEnv {
if !find(want, childEnv) {
- t.Errorf("failed to find %q in %s", want, shEnv)
+ t.Errorf("failed to find %q in %#v", want, childEnv)
}
}
for _, want := range childEnv {
@@ -249,7 +254,7 @@
continue
}
if !find(want, shEnv) {
- t.Errorf("failed to find %q in %s", want, childEnv)
+ t.Errorf("failed to find %q in %#v", want, shEnv)
}
}
}