From fe545f55951c7cffd830784ffa6ac9b23d6b1c6a Mon Sep 17 00:00:00 2001 From: Alexandru Cojocaru Date: Sat, 21 Feb 2015 00:10:26 +0100 Subject: [PATCH] Add MustParse Closes #14 --- semver.go | 9 +++++++++ semver_test.go | 13 +++++++++++++ 2 files changed, 22 insertions(+) diff --git a/semver.go b/semver.go index 9df310b..7afe611 100644 --- a/semver.go +++ b/semver.go @@ -285,6 +285,15 @@ func Parse(s string) (Version, error) { return v, nil } +// MustParse is like Parse but panics if the version cannot be parsed. +func MustParse(s string) Version { + v, err := Parse(s) + if err != nil { + panic(`semver: Parse(` + s + `): ` + err.Error()) + } + return v +} + // PreRelease Version type PRVersion struct { VersionStr string diff --git a/semver_test.go b/semver_test.go index 90c4545..a6312b8 100644 --- a/semver_test.go +++ b/semver_test.go @@ -50,6 +50,19 @@ func TestParse(t *testing.T) { } } +func TestMustParse(t *testing.T) { + _ = MustParse("32.2.1-alpha") +} + +func TestMustParse_panic(t *testing.T) { + defer func() { + if recover() == nil { + t.Errorf("Should have panicked") + } + }() + _ = MustParse("invalid version") +} + func TestValidate(t *testing.T) { for _, test := range formatTests { if err := test.v.Validate(); err != nil {