veyron/services/mgmt/device/impl: minor clean up to ping args handling in test
Follow-up to go/vcl/1403.
Extract user name out of json-encoded suid helper args, and make PingArgs
comparable with DeepEqual.
Change-Id: Ie0e7f84a81314310f721b763126dba5b422f6a0b
diff --git a/services/mgmt/device/impl/impl_test.go b/services/mgmt/device/impl/impl_test.go
index abe03eb..3abef07 100644
--- a/services/mgmt/device/impl/impl_test.go
+++ b/services/mgmt/device/impl/impl_test.go
@@ -230,12 +230,20 @@
}
type pingArgs struct {
- HelperEnv, FlagValue, EnvValue string
+ Username, FlagValue, EnvValue string
}
func ping() {
+ helperEnv := os.Getenv(suidhelper.SavedArgs)
+ d := json.NewDecoder(strings.NewReader(helperEnv))
+ var savedArgs suidhelper.ArgsSavedForTest
+ if err := d.Decode(&savedArgs); err != nil {
+ vlog.Fatalf("Failed to decode preserved argument %v: %v", helperEnv, err)
+ }
args := &pingArgs{
- HelperEnv: os.Getenv(suidhelper.SavedArgs),
+ // TODO(rjkroege): Consider validating additional parameters
+ // from helper.
+ Username: savedArgs.Uname,
FlagValue: *flagValue,
EnvValue: os.Getenv(testEnvVarName),
}
@@ -534,7 +542,6 @@
// END HACK
}
-// TODO(rjkroege): Consider validating additional parameters.
func verifyPingArgs(t *testing.T, pingCh <-chan pingArgs, username, flagValue, envValue string) {
var args pingArgs
select {
@@ -542,21 +549,13 @@
case <-time.After(pingTimeout):
t.Fatalf(testutil.FormatLogLine(2, "failed to get ping"))
}
- d := json.NewDecoder(strings.NewReader(args.HelperEnv))
- var savedArgs suidhelper.ArgsSavedForTest
-
- if err := d.Decode(&savedArgs); err != nil {
- t.Fatalf("failed to decode preserved argument %v: %v", args.HelperEnv, err)
+ wantArgs := pingArgs{
+ Username: username,
+ FlagValue: flagValue,
+ EnvValue: envValue,
}
-
- if got, want := savedArgs.Uname, username; got != want {
- t.Fatalf(testutil.FormatLogLine(2, "got username %q, expected %q", got, want))
- }
- if got, want := args.FlagValue, flagValue; got != want {
- t.Fatalf(testutil.FormatLogLine(2, "got flag value %q, expected %q", got, want))
- }
- if got, want := args.EnvValue, envValue; got != want {
- t.Fatalf(testutil.FormatLogLine(2, "got env value %q, expected %q", got, want))
+ if !reflect.DeepEqual(args, wantArgs) {
+ t.Fatalf(testutil.FormatLogLine(2, "got ping args %q, expected %q", args, wantArgs))
}
}