sensorlog: Port tests to v23shell.
Change-Id: I3bccbebf0e4314ef2e11ed853719200a92591f92
diff --git a/go/src/v.io/x/sensorlog/internal/client/device_v23_test.go b/go/src/v.io/x/sensorlog/internal/client/device_v23_test.go
index 8db81a6..dfb98fa 100644
--- a/go/src/v.io/x/sensorlog/internal/client/device_v23_test.go
+++ b/go/src/v.io/x/sensorlog/internal/client/device_v23_test.go
@@ -2,28 +2,21 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// TODO(ivanpi): Port to v23test and reenable.
-// +build ignore
-
package client_test
import (
- "bytes"
"fmt"
+ "os"
"reflect"
"sort"
- "syscall"
+ "testing"
"time"
"v.io/v23"
"v.io/v23/context"
"v.io/v23/naming"
- "v.io/x/ref/lib/signals"
- _ "v.io/x/ref/runtime/factories/generic"
- sbtu "v.io/x/ref/services/syncbase/testutil"
- "v.io/x/ref/test/modules"
- "v.io/x/ref/test/v23tests"
- slltu "v.io/x/sensorlog/internal/client/testutil"
+ "v.io/x/ref/lib/v23test"
+ sltu "v.io/x/sensorlog/internal/client/testutil"
"v.io/x/sensorlog/internal/measure"
"v.io/x/sensorlog/internal/sbmodel"
"v.io/x/sensorlog/internal/sbutil"
@@ -32,29 +25,30 @@
const (
dummyScript = "echo 42;"
- dummyInterval = "1s"
+ dummyInterval = 1 * time.Second
)
-func V23TestDeviceAddAndStreamCreate(t *v23tests.T) {
+func TestV23DeviceAddAndStreamCreate(t *testing.T) {
+ v23test.SkipUnlessRunningIntegrationTests(t)
+ sh := v23test.NewShell(t, v23test.Opts{})
+ defer sh.Cleanup()
// Start a 'global' mounttable.
- globalMT, globalMTHandle := startAdditionalMT(t, "--v23.tcp.address=127.0.0.1:0")
+ globalMT, globalMTShutdown := startAdditionalMT(sh, "--v23.tcp.address=127.0.0.1:0")
// Mount the local mounttable in the global one.
localMT := naming.Join(globalMT, "localmt")
- v23tests.RunRootMT(t, "--v23.tcp.address=127.0.0.1:0", "--name="+localMT)
+ sh.StartRootMountTable("--name=" + localMT)
clientSb := "sb/client"
- clientCreds, _ := t.Shell().NewChildCredentials("client")
- clientSbCreds, _ := t.Shell().NewChildCredentials("client:sb")
- cleanup := sbtu.StartSyncbased(t, clientSbCreds, clientSb, "",
- `{"Read": {"In":["root:client"]}, "Write": {"In":["root:client"]}, "Admin": {"In":["root:client"]}, "Resolve": {"In":["..."]}}`)
- defer cleanup()
+ clientCtx := sh.ForkContext("u:client")
+ clientSbCreds := sh.ForkCredentials("u:client:sb")
+ sh.StartSyncbase(clientSbCreds, clientSb, "",
+ `{"Read": {"In":["root:u:client"]}, "Write": {"In":["root:u:client"]}, "Admin": {"In":["root:u:client"]}, "Resolve": {"In":["..."]}}`)
measuredSb := "sb/measured"
- measuredCreds, _ := t.Shell().NewChildCredentials("measured")
- measuredSbCreds, _ := t.Shell().NewChildCredentials("measured:sb")
- cleanup = sbtu.StartSyncbased(t, measuredSbCreds, measuredSb, "",
- `{"Read": {"In":["root:measured"]}, "Write": {"In":["root:measured"]}, "Admin": {"In":["root:measured"]}, "Resolve": {"In":["..."]}}`)
- defer cleanup()
+ measuredCtx := sh.ForkContext("u:measured")
+ measuredSbCreds := sh.ForkCredentials("u:measured:sb")
+ sh.StartSyncbase(measuredSbCreds, measuredSb, "",
+ `{"Read": {"In":["root:u:measured"]}, "Write": {"In":["root:u:measured"]}, "Admin": {"In":["root:u:measured"]}, "Resolve": {"In":["..."]}}`)
time.Sleep(1 * time.Second)
@@ -62,65 +56,62 @@
// of measured Syncbase for publishing.
devId := "measured1"
publishSb := naming.Join(localMT, measuredSb)
- sbtu.RunClient(t, measuredCreds, runInitSyncgroup, measuredSb, devId, "root:client", publishSb, globalMT)
+ if err := initSyncgroup(measuredCtx, measuredSb, devId, "root:u:client", publishSb, globalMT); err != nil {
+ t.Fatalf("failed initializing syncgroup for device %s: %v", devId, err)
+ }
// Add measuring device to client, joining its syncgroup.
- sbtu.RunClient(t, clientCreds, slltu.RunAddDevice, clientSb, devId, publishSb)
+ if err := sltu.AddTestDevice(clientCtx, clientSb, devId, publishSb); err != nil {
+ t.Errorf("failed adding device %s: %v", devId, err)
+ }
// Allow time for syncgroup metadata sync.
time.Sleep(3 * time.Second)
// After syncgroup has been joined, sync can use local mounttable. Kill the
// global one.
- if err := globalMTHandle.Kill(syscall.SIGINT); err != nil {
- t.Fatalf("failed to kill global mounttable: %v", err)
- }
- if err := globalMTHandle.Shutdown(nil, nil); err != nil {
- t.Fatalf("failed to shutdown global mounttable: %v", err)
- }
+ globalMTShutdown(os.Interrupt)
streamIds := []string{"str1", "str2", "str3"}
// Create stream before starting measured watcher.
- sbtu.RunClient(t, clientCreds, slltu.RunCreateStream, clientSb, devId, streamIds[0], dummyScript, dummyInterval)
-
- time.Sleep(1 * time.Second)
-
- measureWatcher, err := t.Shell().StartWithOpts(
- t.Shell().DefaultStartOpts().WithCustomCredentials(measuredCreds).WithSessions(t, 60*time.Second), nil,
- runWatchForStreams, append([]string{measuredSb, devId}, streamIds...)...)
- if err != nil {
- t.Fatalf("failed to start measureWatcher: %v", err)
+ if err := sltu.CreateTestStream(clientCtx, clientSb, devId, streamIds[0], dummyScript, dummyInterval); err != nil {
+ t.Errorf("failed creating stream %s: %v", streamIds[0], err)
}
+ time.Sleep(1 * time.Second)
+
+ stopWatch := watchForStreams(measuredCtx, measuredSb, devId)
+
// Create more streams.
- sbtu.RunClient(t, clientCreds, slltu.RunCreateStream, clientSb, devId, streamIds[1], dummyScript, dummyInterval)
+ if err := sltu.CreateTestStream(clientCtx, clientSb, devId, streamIds[1], dummyScript, dummyInterval); err != nil {
+ t.Errorf("failed creating stream %s: %v", streamIds[1], err)
+ }
time.Sleep(1 * time.Second)
- sbtu.RunClient(t, clientCreds, slltu.RunCreateStream, clientSb, devId, streamIds[2], dummyScript, dummyInterval)
+ if err := sltu.CreateTestStream(clientCtx, clientSb, devId, streamIds[2], dummyScript, dummyInterval); err != nil {
+ t.Errorf("failed creating stream %s: %v", streamIds[2], err)
+ }
// Allow time for sync.
time.Sleep(3 * time.Second)
- // Kill will stop the watcher and cause it to verify that seen streams match
- // expectations.
- if err := syscall.Kill(measureWatcher.Pid(), syscall.SIGINT); err != nil {
- t.Fatalf("failed to kill measureWatcher: %v", err)
+ // Stop the watcher.
+ gotStreams, err := stopWatch()
+ if err != nil {
+ t.Fatalf("measureWatcher failed: %v", err)
}
- var stdout, stderr bytes.Buffer
- if err := measureWatcher.Shutdown(&stdout, &stderr); err != nil {
- t.Errorf("failed to shutdown measureWatcher: %v")
+
+ // Compare streams seen by watcher to expectations.
+ sort.Strings(gotStreams)
+ sort.Strings(streamIds)
+ if got, want := gotStreams, streamIds; !reflect.DeepEqual(got, want) {
+ t.Errorf("watch returned streams do not match: got %v, want %v", got, want)
}
- t.Logf("measureWatcher stdout:\n%s", stdout.String())
- t.Logf("measureWatcher stderr:\n%s", stderr.String())
}
-var runInitSyncgroup = modules.Register(func(env *modules.Env, args ...string) error {
- sbService, devId, admin, publishSb, sgMT := args[0], args[1], args[2], args[3], args[4]
-
- ctx, cleanup := v23.Init()
- defer cleanup()
+func initSyncgroup(ctx *context.T, sbService, devId, admin, publishSb, sgMT string) error {
db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MeasuredTables)
if err != nil {
return fmt.Errorf("failed initializing measured database: %v", err)
@@ -135,22 +126,19 @@
}
return nil
-}, "runInitSyncgroup")
+}
-var runWatchForStreams = modules.Register(func(env *modules.Env, args ...string) error {
- sbService, devId, expectStreams := args[0], args[1], args[2:]
-
- ctx, cleanup := v23.Init()
- defer cleanup()
-
+func watchForStreams(ctx *context.T, sbService, devId string) (stop func() (gotStreams []string, err error)) {
db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MeasuredTables)
if err != nil {
- return fmt.Errorf("failed opening measured database: %v", err)
+ return func() ([]string, error) {
+ return nil, fmt.Errorf("failed opening measured database: %v", err)
+ }
}
- gotStreams := make([]string, 0, len(expectStreams))
+ var gotStreams []string
- ctx, stop := context.WithCancel(ctx)
+ ctx, cancel := context.WithCancel(ctx)
wait := util.AsyncRun(func() error {
return measure.WatchForStreams(ctx, db, devId, func(key *sbmodel.KStreamDef, _ *sbmodel.VStreamDef) error {
if got, want := key.DevId, devId; got != want {
@@ -160,29 +148,21 @@
return nil
})
}, func(err error) {
- stop()
+ cancel()
})
- // Wait for kill, then stop watcher.
- <-signals.ShutdownOnSignals(nil)
- stop()
-
- if err := wait(); err != nil {
- return err
+ return func() ([]string, error) {
+ cancel()
+ if err := wait(); err != nil {
+ return nil, err
+ }
+ return gotStreams, nil
}
+}
- // Compare streams seen by watcher to expectations.
- sort.Strings(gotStreams)
- sort.Strings(expectStreams)
- if got, want := gotStreams, expectStreams; !reflect.DeepEqual(got, want) {
- return fmt.Errorf("watch returned streams do not match: got %v, want %v", got, want)
- }
-
- return nil
-}, "runWatchForStreams")
-
-func startAdditionalMT(t *v23tests.T, args ...string) (string, *v23tests.Invocation) {
- bin := t.BuildV23Pkg("v.io/x/ref/services/mounttable/mounttabled")
- inv := bin.Start(args...)
- return inv.ExpectVar("NAME"), inv
+func startAdditionalMT(sh *v23test.Shell, args ...string) (string, func(sig os.Signal)) {
+ mounttabledPath := sh.BuildGoPkg("v.io/x/ref/services/mounttable/mounttabled")
+ inv := sh.Cmd(mounttabledPath, args...)
+ inv.Start()
+ return inv.S.ExpectVar("NAME"), inv.Shutdown
}
diff --git a/go/src/v.io/x/sensorlog/internal/client/measured_v23_test.go b/go/src/v.io/x/sensorlog/internal/client/measured_v23_test.go
index c1ae430..3fc0410 100644
--- a/go/src/v.io/x/sensorlog/internal/client/measured_v23_test.go
+++ b/go/src/v.io/x/sensorlog/internal/client/measured_v23_test.go
@@ -2,117 +2,108 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// TODO(ivanpi): Port to v23test and reenable.
-// +build ignore
-
package client_test
import (
- "bytes"
"fmt"
- "strconv"
- "syscall"
+ "os"
+ "testing"
"time"
"v.io/v23"
+ "v.io/v23/context"
"v.io/v23/naming"
- "v.io/x/ref"
- _ "v.io/x/ref/runtime/factories/generic"
- sbtu "v.io/x/ref/services/syncbase/testutil"
- "v.io/x/ref/test/modules"
- "v.io/x/ref/test/v23tests"
+ "v.io/x/ref/lib/v23test"
"v.io/x/sensorlog/internal/client"
- slltu "v.io/x/sensorlog/internal/client/testutil"
+ sltu "v.io/x/sensorlog/internal/client/testutil"
"v.io/x/sensorlog/internal/sbmodel"
"v.io/x/sensorlog/internal/sbutil"
)
-func V23TestStreamConfigAndList(t *v23tests.T) {
- v23tests.RunRootMT(t, "--v23.tcp.address=127.0.0.1:0")
- mtName, _ := t.Shell().GetVar(ref.EnvNamespacePrefix)
+func TestV23StreamConfigAndList(t *testing.T) {
+ v23test.SkipUnlessRunningIntegrationTests(t)
+ sh := v23test.NewShell(t, v23test.Opts{})
+ defer sh.Cleanup()
+ sh.StartRootMountTable()
+ mtName := v23.GetNamespace(sh.Ctx).Roots()[0]
clientSb := "sb/client"
- clientCreds, _ := t.Shell().NewChildCredentials("client")
- clientSbCreds, _ := t.Shell().NewChildCredentials("client:sb")
- cleanup := sbtu.StartSyncbased(t, clientSbCreds, clientSb, "",
- `{"Read": {"In":["root:client"]}, "Write": {"In":["root:client"]}, "Admin": {"In":["root:client"]}, "Resolve": {"In":["..."]}}`)
- defer cleanup()
+ clientCtx := sh.ForkContext("u:client")
+ clientSbCreds := sh.ForkCredentials("u:client:sb")
+ sh.StartSyncbase(clientSbCreds, clientSb, "",
+ `{"Read": {"In":["root:u:client"]}, "Write": {"In":["root:u:client"]}, "Admin": {"In":["root:u:client"]}, "Resolve": {"In":["..."]}}`)
measuredSb := "sb/measured"
- measuredCreds, _ := t.Shell().NewChildCredentials("measured")
- measuredSbCreds, _ := t.Shell().NewChildCredentials("measured:sb")
- cleanup = sbtu.StartSyncbased(t, measuredSbCreds, measuredSb, "",
- `{"Read": {"In":["root:measured"]}, "Write": {"In":["root:measured"]}, "Admin": {"In":["root:measured"]}, "Resolve": {"In":["..."]}}`)
- defer cleanup()
+ measuredCreds := sh.ForkCredentials("u:measured")
+ measuredSbCreds := sh.ForkCredentials("u:measured:sb")
+ sh.StartSyncbase(measuredSbCreds, measuredSb, "",
+ `{"Read": {"In":["root:u:measured"]}, "Write": {"In":["root:u:measured"]}, "Admin": {"In":["root:u:measured"]}, "Resolve": {"In":["..."]}}`)
time.Sleep(1 * time.Second)
// Start measured.
- measuredBin := t.BuildV23Pkg("v.io/x/sensorlog/measured")
+ measuredPath := sh.BuildGoPkg("v.io/x/sensorlog/measured")
devId := "measured1"
publishSb := naming.Join(mtName, measuredSb)
- measuredOpts := measuredBin.StartOpts().WithCustomCredentials(measuredCreds).WithSessions(t, 180*time.Second)
- measured := measuredBin.WithStartOpts(measuredOpts).Start(
- "-alsologtostderr", "-service="+measuredSb, "-devid="+devId, "-admin=root:client",
- "-publish-sb="+publishSb)
+ measured := sh.Cmd(measuredPath, "-alsologtostderr", "-service="+measuredSb,
+ "-devid="+devId, "-admin=root:u:client", "-publish-sb="+publishSb)
+ measured = measured.WithCredentials(measuredCreds)
+ measured.PropagateOutput = true
+ measured.Start()
time.Sleep(3 * time.Second)
// Add measuring device to client, joining its syncgroup.
- sbtu.RunClient(t, clientCreds, slltu.RunAddDevice, clientSb, devId, publishSb)
+ if err := sltu.AddTestDevice(clientCtx, clientSb, devId, publishSb); err != nil {
+ t.Errorf("failed adding device %s: %v", devId, err)
+ }
// Create streams.
- streamId1, result1, interval1 := "str1", "42", "2s"
- sbtu.RunClient(t, clientCreds, slltu.RunCreateStream, clientSb, devId,
- streamId1, fmt.Sprintf("echo %s;", result1), interval1, "")
+ streamId1, result1, interval1 := "str1", 42.0, 2*time.Second
+ if err := sltu.CreateTestStream(clientCtx, clientSb, devId,
+ streamId1, fmt.Sprintf("echo %f;", result1), interval1); err != nil {
+ t.Errorf("failed creating stream %s: %v", streamId1, err)
+ }
time.Sleep(1 * time.Second)
- streamId2, result2, interval2 := "str2", "47", "1s"
- sbtu.RunClient(t, clientCreds, slltu.RunCreateStream, clientSb, devId,
- streamId2, fmt.Sprintf("echo %s;", result2), interval2, "")
+ streamId2, result2, interval2 := "str2", 47.0, 1*time.Second
+ if err := sltu.CreateTestStream(clientCtx, clientSb, devId,
+ streamId2, fmt.Sprintf("echo %f;", result2), interval2); err != nil {
+ t.Errorf("failed creating stream %s: %v", streamId2, err)
+ }
// streamId has another streamId as prefix to verify ListDataStreams prefix
// handling.
- streamId3, result3, interval3 := "str12", "3.14159", "0.5s"
- sbtu.RunClient(t, clientCreds, slltu.RunCreateStream, clientSb, devId,
- streamId3, fmt.Sprintf("echo %s;", result3), interval3, "")
+ streamId3, result3, interval3 := "str12", 3.14159, 500*time.Millisecond
+ if err := sltu.CreateTestStream(clientCtx, clientSb, devId,
+ streamId3, fmt.Sprintf("echo %f;", result3), interval3); err != nil {
+ t.Errorf("failed creating stream %s: %v", streamId3, err)
+ }
// Allow time for sync and at least 3 measurements.
time.Sleep(10 * time.Second)
- // Kill will gracefully stop measured.
- if err := syscall.Kill(measured.Pid(), syscall.SIGINT); err != nil {
- t.Fatalf("failed to kill measured: %v", err)
- }
- var stdout, stderr bytes.Buffer
- if err := measured.Shutdown(&stdout, &stderr); err != nil {
- t.Errorf("failed to shutdown measured: %v")
- }
- t.Logf("measured stdout:\n%s", stdout.String())
- t.Logf("measured stderr:\n%s", stderr.String())
+ // SIGINT will gracefully stop measured.
+ measured.Shutdown(os.Interrupt)
// Check that both streams have at least 3 measurements synced back to
// client device Syncbase.
- sbtu.RunClient(t, clientCreds, runListStreamData, clientSb, devId, streamId1, result1)
- sbtu.RunClient(t, clientCreds, runListStreamData, clientSb, devId, streamId2, result2)
- sbtu.RunClient(t, clientCreds, runListStreamData, clientSb, devId, streamId3, result3)
+ if err := listStreamData(clientCtx, clientSb, devId, streamId1, result1); err != nil {
+ t.Errorf("failed listing stream %s data: %v", streamId1, err)
+ }
+ if err := listStreamData(clientCtx, clientSb, devId, streamId2, result2); err != nil {
+ t.Errorf("failed listing stream %s data: %v", streamId2, err)
+ }
+ if err := listStreamData(clientCtx, clientSb, devId, streamId3, result3); err != nil {
+ t.Errorf("failed listing stream %s data: %v", streamId3, err)
+ }
}
-var runListStreamData = modules.Register(func(env *modules.Env, args ...string) error {
- sbService, devId, streamId, expectValStr := args[0], args[1], args[2], args[3]
-
- expectVal, err := strconv.ParseFloat(expectValStr, 64)
+func listStreamData(ctx *context.T, sbService, devId, streamId string, expectVal float64) error {
+ db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MasterTables)
if err != nil {
- return err
- }
-
- ctx, cleanup := v23.Init()
- defer cleanup()
-
- db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MeasuredTables)
- if err != nil {
- return fmt.Errorf("failed opening measured database: %v", err)
+ return fmt.Errorf("failed opening master database: %v", err)
}
count := 0
@@ -143,4 +134,4 @@
}
return nil
-}, "runListStreamData")
+}
diff --git a/go/src/v.io/x/sensorlog/internal/client/testutil/testutil.go b/go/src/v.io/x/sensorlog/internal/client/testutil/testutil.go
index b31a6c5..de36070 100644
--- a/go/src/v.io/x/sensorlog/internal/client/testutil/testutil.go
+++ b/go/src/v.io/x/sensorlog/internal/client/testutil/testutil.go
@@ -9,23 +9,17 @@
"fmt"
"time"
- "v.io/v23"
+ "v.io/v23/context"
"v.io/v23/verror"
- "v.io/x/ref/test/modules"
"v.io/x/sensorlog/internal/client"
"v.io/x/sensorlog/internal/sbmodel"
"v.io/x/sensorlog/internal/sbutil"
)
-// Required parameters: sbService, devId, publishSb
-var RunAddDevice = modules.Register(func(env *modules.Env, args ...string) error {
- sbService, devId, publishSb := args[0], args[1], args[2]
-
- ctx, cleanup := v23.Init()
- defer cleanup()
+func AddTestDevice(ctx *context.T, sbService, devId, publishSb string) error {
db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MasterTables)
if err != nil {
- return fmt.Errorf("failed initializing master database: %v", err)
+ return fmt.Errorf("failed opening master database: %v", err)
}
if _, err := client.AddDevice(ctx, db, devId, publishSb, ""); err != nil {
@@ -36,19 +30,9 @@
}
return nil
-}, "runAddDevice")
+}
-// Required parameters: sbService, devId, streamId, script, interval
-var RunCreateStream = modules.Register(func(env *modules.Env, args ...string) error {
- sbService, devId, streamId, script, intervalStr := args[0], args[1], args[2], args[3], args[4]
-
- interval, err := time.ParseDuration(intervalStr)
- if err != nil {
- return err
- }
-
- ctx, cleanup := v23.Init()
- defer cleanup()
+func CreateTestStream(ctx *context.T, sbService, devId, streamId, script string, interval time.Duration) error {
db, err := sbutil.CreateOrOpenDB(ctx, sbService, sbmodel.MasterTables)
if err != nil {
return fmt.Errorf("failed opening master database: %v", err)
@@ -68,4 +52,4 @@
}
return nil
-}, "runCreateStream")
+}
diff --git a/go/src/v.io/x/sensorlog/internal/client/v23_main_test.go b/go/src/v.io/x/sensorlog/internal/client/v23_main_test.go
new file mode 100644
index 0000000..7a84ee5
--- /dev/null
+++ b/go/src/v.io/x/sensorlog/internal/client/v23_main_test.go
@@ -0,0 +1,17 @@
+// 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.
+
+package client_test
+
+import (
+ "os"
+ "testing"
+
+ "v.io/x/ref/lib/v23test"
+ _ "v.io/x/ref/runtime/factories/generic"
+)
+
+func TestMain(m *testing.M) {
+ os.Exit(v23test.Run(m.Run))
+}
diff --git a/go/src/v.io/x/sensorlog/internal/client/v23_test.go b/go/src/v.io/x/sensorlog/internal/client/v23_test.go
deleted file mode 100644
index de4a73b..0000000
--- a/go/src/v.io/x/sensorlog/internal/client/v23_test.go
+++ /dev/null
@@ -1,32 +0,0 @@
-// 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.
-
-// TODO(ivanpi): Port to v23test and reenable.
-// +build ignore
-
-package client_test
-
-import (
- "os"
- "testing"
-
- "v.io/x/ref/test/modules"
- "v.io/x/ref/test/v23tests"
-)
-
-func TestMain(m *testing.M) {
- modules.DispatchAndExitIfChild()
- cleanup := v23tests.UseSharedBinDir()
- r := m.Run()
- cleanup()
- os.Exit(r)
-}
-
-func TestV23DeviceAddAndStreamCreate(t *testing.T) {
- v23tests.RunTest(t, V23TestDeviceAddAndStreamCreate)
-}
-
-func TestV23StreamConfigAndList(t *testing.T) {
- v23tests.RunTest(t, V23TestStreamConfigAndList)
-}