19099: Update tests to new crunchrun.Gateway fields.
authorTom Clegg <tom@curii.com>
Fri, 13 May 2022 15:08:20 +0000 (11:08 -0400)
committerTom Clegg <tom@curii.com>
Fri, 13 May 2022 15:08:20 +0000 (11:08 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>

cmd/arvados-client/container_gateway_test.go
lib/controller/localdb/container_gateway_test.go
lib/crunchrun/container_gateway.go
lib/crunchrun/executor_test.go

index 89e926f59456c123493ac63c582da96ddda6e3f6..f4a140c4069a9f0daa01d2263acb350ff604854c 100644 (file)
@@ -49,16 +49,14 @@ func (s *ClientSuite) TestShellGateway(c *check.C) {
        h := hmac.New(sha256.New, []byte(arvadostest.SystemRootToken))
        fmt.Fprint(h, uuid)
        authSecret := fmt.Sprintf("%x", h.Sum(nil))
-       dcid := "theperthcountyconspiracy"
        gw := crunchrun.Gateway{
-               DockerContainerID: &dcid,
-               ContainerUUID:     uuid,
-               Address:           "0.0.0.0:0",
-               AuthSecret:        authSecret,
+               ContainerUUID: uuid,
+               Address:       "0.0.0.0:0",
+               AuthSecret:    authSecret,
                // Just forward connections to localhost instead of a
                // container, so we can test without running a
                // container.
-               ContainerIPAddress: func() (string, error) { return "0.0.0.0", nil },
+               Target: crunchrun.GatewayTargetStub{},
        }
        err := gw.Start()
        c.Assert(err, check.IsNil)
@@ -88,9 +86,8 @@ func (s *ClientSuite) TestShellGateway(c *check.C) {
        cmd.Env = append(cmd.Env, "ARVADOS_API_TOKEN="+arvadostest.ActiveTokenV2)
        cmd.Stdout = &stdout
        cmd.Stderr = &stderr
-       c.Check(cmd.Run(), check.NotNil)
-       c.Log(stderr.String())
-       c.Check(stderr.String(), check.Matches, `(?ms).*(No such container: theperthcountyconspiracy|exec: \"docker\": executable file not found in \$PATH).*`)
+       c.Check(cmd.Run(), check.IsNil)
+       c.Check(stdout.String(), check.Equals, "ok\n")
 
        // Set up an http server, and try using "arvados-client shell"
        // to forward traffic to it.
index 70037cc501401375ee107d8e243f21e8f15c3cb5..271760420153481daac1f0f129a63c684591b94b 100644 (file)
@@ -56,12 +56,11 @@ func (s *ContainerGatewaySuite) SetUpSuite(c *check.C) {
        authKey := fmt.Sprintf("%x", h.Sum(nil))
 
        s.gw = &crunchrun.Gateway{
-               DockerContainerID:  new(string),
-               ContainerUUID:      s.ctrUUID,
-               AuthSecret:         authKey,
-               Address:            "localhost:0",
-               Log:                ctxlog.TestLogger(c),
-               ContainerIPAddress: func() (string, error) { return "localhost", nil },
+               ContainerUUID: s.ctrUUID,
+               AuthSecret:    authKey,
+               Address:       "localhost:0",
+               Log:           ctxlog.TestLogger(c),
+               Target:        crunchrun.GatewayTargetStub{},
        }
        c.Assert(s.gw.Start(), check.IsNil)
        rootctx := auth.NewContext(context.Background(), &auth.Credentials{Tokens: []string{s.cluster.SystemRootToken}})
index 62979da21b38c69f3d83189b90988d71806d8dc5..01457015e16f1870bf4adf4785b8f9c08cec10d5 100644 (file)
@@ -36,6 +36,13 @@ type GatewayTarget interface {
        IPAddress() (string, error)
 }
 
+type GatewayTargetStub struct{}
+
+func (GatewayTargetStub) IPAddress() (string, error) { return "127.0.0.1", nil }
+func (GatewayTargetStub) InjectCommand(ctx context.Context, detachKeys, username string, usingTTY bool, cmd []string) (*exec.Cmd, error) {
+       return exec.CommandContext(ctx, cmd[0], cmd[1:]...), nil
+}
+
 type Gateway struct {
        ContainerUUID string
        Address       string // listen host:port; if port=0, Start() will change it to the selected port
index ea8eedaa1be2a3ccdda93759aacdeed55e3f23b7..c516a8b98443a7ce2ec1d6d644909ccf92f98c25 100644 (file)
@@ -183,7 +183,7 @@ func (s *executorSuite) TestIPAddress(c *C) {
        c.Assert(s.executor.Start(), IsNil)
        starttime := time.Now()
 
-       ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(2*time.Second))
+       ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(10*time.Second))
        defer cancel()
 
        for ctx.Err() == nil {