mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
metrics: Fix divide by zero error
Under certain conditions, `howSimilarString` could reach a divide-by- zero situation which causes bogus values to print in the cache potential column of the template hints output. This situation essentially causes a `int(math.NaN())` value to be returned and hilarity ensues thereafter.
This commit is contained in:
parent
805b21555e
commit
6a5acd753a
2 changed files with 5 additions and 0 deletions
|
@ -281,6 +281,10 @@ func howSimilarStrings(a, b string) int {
|
|||
}
|
||||
}
|
||||
|
||||
if common == 0 && common == len(af) {
|
||||
return 100
|
||||
}
|
||||
|
||||
return int(math.Floor((float64(common) / float64(len(af)) * 100)))
|
||||
}
|
||||
|
||||
|
|
|
@ -43,6 +43,7 @@ func TestSimilarPercentage(t *testing.T) {
|
|||
c.Assert(howSimilar(template.HTML("Hugo Rules"), template.HTML("Hugo Rules")), qt.Equals, 100)
|
||||
c.Assert(howSimilar(map[string]any{"a": 32, "b": 33}, map[string]any{"a": 32, "b": 33}), qt.Equals, 100)
|
||||
c.Assert(howSimilar(map[string]any{"a": 32, "b": 33}, map[string]any{"a": 32, "b": 34}), qt.Equals, 0)
|
||||
c.Assert(howSimilar("\n", ""), qt.Equals, 100)
|
||||
}
|
||||
|
||||
type testStruct struct {
|
||||
|
|
Loading…
Reference in a new issue