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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
//go:build !windows
package main
import (
"bytes"
"reflect"
"strings"
"testing"
)
func TestParseDependencies(t *testing.T) {
const input = `main.go: /foo/bar baz
frob: /gobble \
gubble
nothing:
`
have, err := parseDependencies("/foo", strings.NewReader(input))
if err != nil {
t.Fatal("Can't parse dependencies:", err)
}
want := []dependency{
{"/foo/main.go", []string{"/foo/bar", "/foo/baz"}},
{"/foo/frob", []string{"/gobble", "/foo/gubble"}},
{"/foo/nothing", nil},
}
if !reflect.DeepEqual(have, want) {
t.Logf("Have: %#v", have)
t.Logf("Want: %#v", want)
t.Error("Result doesn't match")
}
var output bytes.Buffer
err = adjustDependencies(&output, "/foo", want)
if err != nil {
t.Error("Can't adjust dependencies")
}
const wantOutput = `main.go: \
bar \
baz
frob: \
../gobble \
gubble
nothing:
`
if have := output.String(); have != wantOutput {
t.Logf("Have:\n%s", have)
t.Logf("Want:\n%s", wantOutput)
t.Error("Output doesn't match")
}
}
|