blob: 84d7ec7bb801e891d1b5c5d35660f64c41da53fd [file] [log] [blame]
package testutil
import (
"io"
"sort"
"v.io/core/veyron2"
"v.io/core/veyron2/context"
"v.io/core/veyron2/ipc"
"v.io/core/veyron2/naming"
)
// GlobName calls __Glob on the given object with the given pattern and returns
// a sorted list of matching object names, or an error.
func GlobName(ctx *context.T, name, pattern string) ([]string, error) {
client := veyron2.GetClient(ctx)
call, err := client.StartCall(ctx, name, ipc.GlobMethod, []interface{}{pattern})
if err != nil {
return nil, err
}
results := []string{}
Loop:
for {
var me naming.VDLMountEntry
switch err := call.Recv(&me); err {
case nil:
results = append(results, me.Name)
case io.EOF:
break Loop
default:
return nil, err
}
}
sort.Strings(results)
if ferr := call.Finish(&err); ferr != nil {
err = ferr
}
return results, err
}