Merge pull request #19280 from erictune/fix-munge-1

Auto commit by PR queue bot
This commit is contained in:
k8s-merge-robot 2016-01-19 17:20:01 -08:00
commit 064356775d
3 changed files with 25 additions and 4 deletions

View File

@ -119,8 +119,12 @@ func (f fileProcessor) visit(path string) error {
} }
fmt.Printf("%s:\n", munge.name) fmt.Printf("%s:\n", munge.name)
if *verbose { if *verbose {
fmt.Printf("INPUT: <<<%v>>>\n", mungeLines) if len(mungeLines) <= 20 {
fmt.Printf("MUNGED: <<<%v>>>\n", after) fmt.Printf("INPUT: <<<%v>>>\n", mungeLines)
fmt.Printf("MUNGED: <<<%v>>>\n", after)
} else {
fmt.Printf("not printing failed chunk: too many lines\n")
}
} }
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)

View File

@ -45,7 +45,7 @@ func updatePreformatted(filePath string, mlines mungeLines) (mungeLines, error)
// If the file ends on a preformatted line, there must have been an imbalance. // If the file ends on a preformatted line, there must have been an imbalance.
func checkPreformatBalance(filePath string, mlines mungeLines) (mungeLines, error) { func checkPreformatBalance(filePath string, mlines mungeLines) (mungeLines, error) {
if len(mlines) > 0 && mlines[len(mlines)-1].preformatted { if len(mlines) > 0 && mlines[len(mlines)-1].preformatted {
return nil, fmt.Errorf("file ends in preformatted block") return mlines, fmt.Errorf("unbalanced triple backtick delimiters")
} }
return mlines, nil return mlines, nil
} }

View File

@ -69,12 +69,29 @@ func TestPreformattedImbalance(t *testing.T) {
} }
for i, c := range cases { for i, c := range cases {
in := getMungeLines(c.in) in := getMungeLines(c.in)
_, err := checkPreformatBalance("filename.md", in) out, err := checkPreformatBalance("filename.md", in)
if err != nil && c.ok { if err != nil && c.ok {
t.Errorf("case[%d]: expected success", i) t.Errorf("case[%d]: expected success", i)
} }
if err == nil && !c.ok { if err == nil && !c.ok {
t.Errorf("case[%d]: expected failure", i) t.Errorf("case[%d]: expected failure", i)
} }
// Even in case of misformat, return all the text,
// so that the user's work is not lost.
if !equalMungeLines(out, in) {
t.Errorf("case[%d]: expected munged text to be identical to input text", i)
}
} }
} }
func equalMungeLines(a, b mungeLines) bool {
if len(a) != len(b) {
return false
}
for i := range a {
if a[i] != b[i] {
return false
}
}
return true
}