...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package testcmp
16
17 import (
18 "strings"
19 "testing"
20 )
21
22 func UnorderedLineByLineComparisonIgnoreBlankLines(t *testing.T, expected, actual string) {
23 expectedLines := make(map[string]int)
24 for _, s := range strings.Split(expected, "\n") {
25 if s == "" {
26 continue
27 }
28 expectedLines[s] += 1
29 }
30 actualLines := strings.Split(actual, "\n")
31 for linenum, line := range actualLines {
32 if line == "" {
33 continue
34 }
35 v, ok := expectedLines[line]
36 if !ok {
37 t.Fatalf("actual value didn't match expected value: line %d, %q, not in expected.", linenum, line)
38 }
39 if v == 1 {
40 delete(expectedLines, line)
41 } else {
42 expectedLines[line] = v - 1
43 }
44 }
45 if len(expectedLines) != 0 {
46 t.Fatalf("actual value didn't match expected value: line '%v' not in actual value", expectedLines)
47 }
48 }
49
View as plain text