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)
 		}
 	}
 }