summaryrefslogtreecommitdiffstats
path: root/pkg/runner/action_cache_test.go
blob: e222cfb9c010ad9aa67dc1edde750776cdd63dc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package runner

import (
	"archive/tar"
	"bytes"
	"context"
	"io"
	"os"
	"testing"

	"github.com/stretchr/testify/assert"
)

//nolint:gosec
func TestActionCache(t *testing.T) {
	a := assert.New(t)
	cache := &GoGitActionCache{
		Path: os.TempDir(),
	}
	ctx := context.Background()
	sha, err := cache.Fetch(ctx, "christopherhx/script", "https://github.com/christopherhx/script", "main", "")
	a.NoError(err)
	a.NotEmpty(sha)
	atar, err := cache.GetTarArchive(ctx, "christopherhx/script", sha, "node_modules")
	a.NoError(err)
	a.NotEmpty(atar)
	mytar := tar.NewReader(atar)
	th, err := mytar.Next()
	a.NoError(err)
	a.NotEqual(0, th.Size)
	buf := &bytes.Buffer{}
	// G110: Potential DoS vulnerability via decompression bomb (gosec)
	_, err = io.Copy(buf, mytar)
	a.NoError(err)
	str := buf.String()
	a.NotEmpty(str)
}