70 lines
1.6 KiB
Go
70 lines
1.6 KiB
Go
package lfs_test // avoid import cycle
|
|
|
|
import (
|
|
"fmt"
|
|
"sort"
|
|
"testing"
|
|
|
|
"github.com/github/git-lfs/lfs"
|
|
"github.com/github/git-lfs/test"
|
|
"github.com/github/git-lfs/vendor/_nuts/github.com/technoweenie/assert"
|
|
)
|
|
|
|
func TestAllCurrentObjectsNone(t *testing.T) {
|
|
repo := test.NewRepo(t)
|
|
repo.Pushd()
|
|
defer func() {
|
|
repo.Popd()
|
|
repo.Cleanup()
|
|
}()
|
|
|
|
actual := lfs.AllObjects()
|
|
if len(actual) > 0 {
|
|
for _, file := range actual {
|
|
t.Logf("Found: %v", file)
|
|
}
|
|
t.Error("Should be no objects")
|
|
}
|
|
}
|
|
|
|
func TestAllCurrentObjectsSome(t *testing.T) {
|
|
repo := test.NewRepo(t)
|
|
repo.Pushd()
|
|
defer func() {
|
|
repo.Popd()
|
|
repo.Cleanup()
|
|
}()
|
|
|
|
// We're not testing commits here, just storage, so just create a single
|
|
// commit input with lots of files to generate many oids
|
|
numFiles := 20
|
|
files := make([]*test.FileInput, 0, numFiles)
|
|
for i := 0; i < numFiles; i++ {
|
|
// Must be >=16 bytes for each file to be unique
|
|
files = append(files, &test.FileInput{Filename: fmt.Sprintf("file%d.txt", i), Size: 30})
|
|
}
|
|
|
|
inputs := []*test.CommitInput{
|
|
{Files: files},
|
|
}
|
|
|
|
outputs := repo.AddCommits(inputs)
|
|
|
|
expected := make([]*lfs.Pointer, 0, numFiles)
|
|
for _, f := range outputs[0].Files {
|
|
expected = append(expected, f)
|
|
}
|
|
|
|
actualObjects := lfs.AllObjects()
|
|
actual := make([]*lfs.Pointer, len(actualObjects))
|
|
for idx, f := range actualObjects {
|
|
actual[idx] = lfs.NewPointer(f.Oid, f.Size, nil)
|
|
}
|
|
|
|
// sort to ensure comparison is equal
|
|
sort.Sort(test.PointersByOid(expected))
|
|
sort.Sort(test.PointersByOid(actual))
|
|
assert.Equal(t, expected, actual, "Oids from disk should be the same as in commits")
|
|
|
|
}
|