File: find_dangling_test.go

package info (click to toggle)
aptly 1.6.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 49,928 kB
  • sloc: python: 10,398; sh: 252; makefile: 184
file content (46 lines) | stat: -rw-r--r-- 1,064 bytes parent folder | download | duplicates (2)
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
38
39
40
41
42
43
44
45
46
package deb_test

import (
	"bytes"
	"testing"

	"github.com/aptly-dev/aptly/database/goleveldb"
	"github.com/aptly-dev/aptly/deb"
)

func TestFindDanglingReferences(t *testing.T) {
	reflist := deb.NewPackageRefList()
	reflist.Refs = [][]byte{[]byte("P existing 1.2.3"), []byte("P dangling 1.2.3")}

	db, _ := goleveldb.NewOpenDB(t.TempDir())
	packages := deb.NewPackageCollection(db)

	if err := packages.Update(&deb.Package{Name: "existing", Version: "1.2.3"}); err != nil {
		t.Fatal(err)
	}

	dangling, err := deb.FindDanglingReferences(reflist, packages)
	if err != nil {
		t.Fatal(err)
	}

	exp := &deb.PackageRefList{
		Refs: [][]byte{[]byte("P dangling 1.2.3")},
	}

	compareRefs(t, exp, dangling)
}

func compareRefs(t *testing.T, exp, got *deb.PackageRefList) {
	t.Helper()

	if len(exp.Refs) != len(got.Refs) {
		t.Fatalf("refs length mismatch: exp %d, got %d", len(exp.Refs), len(got.Refs))
	}

	for i := range exp.Refs {
		if !bytes.Equal(exp.Refs[i], got.Refs[i]) {
			t.Fatalf("refs do not match: exp %q, got %q", exp.Refs[i], got.Refs[i])
		}
	}
}