mirror of https://github.com/restic/restic.git
47 lines
965 B
Go
47 lines
965 B
Go
|
package cache
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
"path/filepath"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/restic/restic/internal/restic"
|
||
|
rtest "github.com/restic/restic/internal/test"
|
||
|
)
|
||
|
|
||
|
func TestNew(t *testing.T) {
|
||
|
parent := rtest.TempDir(t)
|
||
|
basedir := filepath.Join(parent, "cache")
|
||
|
id := restic.NewRandomID().String()
|
||
|
tagFile := filepath.Join(basedir, "CACHEDIR.TAG")
|
||
|
versionFile := filepath.Join(basedir, id, "version")
|
||
|
|
||
|
const (
|
||
|
stepCreate = iota
|
||
|
stepComplete
|
||
|
stepRmTag
|
||
|
stepRmVersion
|
||
|
stepEnd
|
||
|
)
|
||
|
|
||
|
for step := stepCreate; step < stepEnd; step++ {
|
||
|
switch step {
|
||
|
case stepRmTag:
|
||
|
rtest.OK(t, os.Remove(tagFile))
|
||
|
case stepRmVersion:
|
||
|
rtest.OK(t, os.Remove(versionFile))
|
||
|
}
|
||
|
|
||
|
c, err := New(id, basedir)
|
||
|
rtest.OK(t, err)
|
||
|
rtest.Equals(t, basedir, c.Base)
|
||
|
rtest.Equals(t, step == stepCreate, c.Created)
|
||
|
|
||
|
for _, name := range []string{tagFile, versionFile} {
|
||
|
info, err := os.Lstat(name)
|
||
|
rtest.OK(t, err)
|
||
|
rtest.Assert(t, info.Mode().IsRegular(), "")
|
||
|
}
|
||
|
}
|
||
|
}
|