Pretty print test compression map differences (#853)

* Pretty print test compression map differences

* Use compressionMapsDifference in TestPackDomainNameCompressionMap

This isn't strictly needed as it only contains a small number of
entries, but is consistent nonetheless.

* Fix map ordering in compressionMapsDifference
This commit is contained in:
Tom Thorogood 2018-12-01 19:00:40 +10:30 committed by Miek Gieben
parent 6b6e08b48c
commit 5c9c0e7818
2 changed files with 35 additions and 3 deletions

View File

@ -274,6 +274,38 @@ func compressionMapsEqual(a map[string]struct{}, b map[string]int) bool {
return true
}
func compressionMapsDifference(a map[string]struct{}, b map[string]int) string {
var s strings.Builder
var c int
fmt.Fprintf(&s, "length compression map (%d):", len(a))
for k := range b {
if _, ok := a[k]; !ok {
if c > 0 {
s.WriteString(",")
}
fmt.Fprintf(&s, " missing %q", k)
c++
}
}
c = 0
fmt.Fprintf(&s, "\npack compression map (%d):", len(b))
for k := range a {
if _, ok := b[k]; !ok {
if c > 0 {
s.WriteString(",")
}
fmt.Fprintf(&s, " missing %q", k)
c++
}
}
return s.String()
}
func TestCompareCompressionMapsForANY(t *testing.T) {
msg := new(Msg)
msg.Compress = true
@ -302,7 +334,7 @@ func TestCompareCompressionMapsForANY(t *testing.T) {
t.Fatalf("padding= %d ; Predicted len := %d != real:= %d", labelSize, lenFake, len(buf))
}
if !compressionMapsEqual(compressionFake, compressionReal) {
t.Fatalf("padding= %d ; Fake Compression Map != Real Compression Map\n*** Real:= %v\n\n***Fake:= %v", labelSize, compressionReal, compressionFake)
t.Fatalf("padding= %d ; Fake Compression Map != Real Compression Map\n%s", labelSize, compressionMapsDifference(compressionFake, compressionReal))
}
}
}
@ -335,7 +367,7 @@ func TestCompareCompressionMapsForSRV(t *testing.T) {
t.Fatalf("padding= %d ; Predicted len := %d != real:= %d", labelSize, lenFake, len(buf))
}
if !compressionMapsEqual(compressionFake, compressionReal) {
t.Fatalf("padding= %d ; Fake Compression Map != Real Compression Map\n*** Real:= %v\n\n***Fake:= %v", labelSize, compressionReal, compressionFake)
t.Fatalf("padding= %d ; Fake Compression Map != Real Compression Map\n%s", labelSize, compressionMapsDifference(compressionFake, compressionReal))
}
}
}

View File

@ -237,7 +237,7 @@ func TestPackDomainNameCompressionMap(t *testing.T) {
}
if !compressionMapsEqual(expected, compression) {
t.Errorf("expected compression maps to be equal; expected %v, got %v", expected, compression)
t.Errorf("expected compression maps to be equal\n%s", compressionMapsDifference(expected, compression))
}
}
}