open-nomad/client/allocrunner/taskrunner/getter/sandbox_test.go
2023-04-10 15:36:59 +00:00

54 lines
1.3 KiB
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package getter
import (
"os"
"path/filepath"
"testing"
"time"
"github.com/hashicorp/nomad/client/config"
"github.com/hashicorp/nomad/client/testutil"
"github.com/hashicorp/nomad/helper/testlog"
"github.com/hashicorp/nomad/nomad/structs"
"github.com/shoenig/test/must"
)
func artifactConfig(timeout time.Duration) *config.ArtifactConfig {
return &config.ArtifactConfig{
HTTPReadTimeout: timeout,
HTTPMaxBytes: 1e6,
GCSTimeout: timeout,
GitTimeout: timeout,
HgTimeout: timeout,
S3Timeout: timeout,
}
}
// comprehensive scenarios tested in e2e/artifact
func TestSandbox_Get_http(t *testing.T) {
testutil.RequireRoot(t)
logger := testlog.HCLogger(t)
ac := artifactConfig(10 * time.Second)
sbox := New(ac, logger)
_, taskDir := SetupDir(t)
env := noopTaskEnv(taskDir)
artifact := &structs.TaskArtifact{
GetterSource: "https://raw.githubusercontent.com/hashicorp/go-set/main/go.mod",
RelativeDest: "local/downloads",
}
err := sbox.Get(env, artifact)
must.NoError(t, err)
b, err := os.ReadFile(filepath.Join(taskDir, "local", "downloads", "go.mod"))
must.NoError(t, err)
must.StrContains(t, string(b), "module github.com/hashicorp/go-set")
}