diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/recordline/recordline.go | 10 | ||||
| -rw-r--r-- | internal/recordline/recordline_test.go | 17 |
2 files changed, 14 insertions, 13 deletions
diff --git a/internal/recordline/recordline.go b/internal/recordline/recordline.go index 940f235..077fa35 100644 --- a/internal/recordline/recordline.go +++ b/internal/recordline/recordline.go @@ -22,8 +22,14 @@ func Parse(line string) (Fields, bool) { if len(parts) != 3 { return Fields{}, false } - uptime, _ := strconv.ParseUint(parts[0], 10, 64) - bootTime, _ := strconv.ParseUint(parts[1], 10, 64) + uptime, err := strconv.ParseUint(parts[0], 10, 64) + if err != nil { + return Fields{}, false + } + bootTime, err := strconv.ParseUint(parts[1], 10, 64) + if err != nil { + return Fields{}, false + } osStr := parts[2] kernelName := osStr if i := strings.Index(osStr, " "); i > 0 { diff --git a/internal/recordline/recordline_test.go b/internal/recordline/recordline_test.go index 4fcc152..80eb955 100644 --- a/internal/recordline/recordline_test.go +++ b/internal/recordline/recordline_test.go @@ -54,17 +54,12 @@ func TestParse(t *testing.T) { }, true, }, - { - "abc:def:Linux 6.5.0", - Fields{ - Uptime: 0, - BootTime: 0, - OS: "Linux 6.5.0", - KernelName: "Linux", - KernelMajor: "Linux 6...", - }, - true, - }, + {"abc:def:Linux 6.5.0", Fields{}, false}, + {"abc:1700000000:Linux 6.5.0", Fields{}, false}, + {"12345:def:Linux 6.5.0", Fields{}, false}, + {":1:Linux", Fields{}, false}, + {"1::Linux", Fields{}, false}, + {" 0x10:1:Linux", Fields{}, false}, {"", Fields{}, false}, {" ", Fields{}, false}, {"only:two", Fields{}, false}, |
