blob: eb0614b65dd48e0181dfd6624733e6b658b84b7c [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// The following enables go generate to generate the doc.go file.
//go:generate go run $JIRI_ROOT/release/go/src/v.io/x/lib/cmdline/testdata/gendoc.go . -help
package main
import (
"errors"
"fmt"
"time"
"v.io/v23"
"v.io/v23/context"
"v.io/v23/verror"
"v.io/x/lib/cmdline"
"v.io/x/ref/lib/v23cmd"
_ "v.io/x/ref/runtime/factories/generic"
)
var name string
func main() {
cmdHelloClient.Flags.StringVar(&name, "name", "", "Name of the hello server.")
cmdline.HideGlobalFlagsExcept()
cmdline.Main(cmdHelloClient)
}
var cmdHelloClient = &cmdline.Command{
Runner: v23cmd.RunnerFunc(runHelloClient),
Name: "helloclient",
Short: "Simple client mainly used in regression tests.",
Long: `
Command helloclient is a simple client mainly used in regression tests.
`,
}
func runHelloClient(ctx *context.T, env *cmdline.Env, args []string) error {
ctx, cancel := context.WithTimeout(ctx, 10*time.Second)
defer cancel()
var result string
err := v23.GetClient(ctx).Call(ctx, name, "Hello", nil, []interface{}{&result})
if err != nil {
return errors.New(verror.DebugString(err))
}
if got, want := result, "hello"; got != want {
return fmt.Errorf("Unexpected result, got %q, want %q", got, want)
}
return nil
}