1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
package osarch
import (
"fmt"
"testing"
"github.com/stretchr/testify/suite"
)
type releaseTestSuite struct {
suite.Suite
}
func TestReleaseTestSuite(t *testing.T) {
suite.Run(t, new(releaseTestSuite))
}
func (s *releaseTestSuite) TestGetOSRelease() {
content := `NAME="Ubuntu"
ID="ubuntu"
VERSION_ID="16.04"
`
filename, cleanup := WriteTempFile(&s.Suite, "", "os-release", content)
defer cleanup()
lsbRelease, err := getOSRelease(filename)
s.Nil(err)
s.Equal(
map[string]string{
"NAME": "Ubuntu",
"ID": "ubuntu",
"VERSION_ID": "16.04",
}, lsbRelease)
}
func (s *releaseTestSuite) TestGetOSReleaseSingleQuotes() {
content := `NAME='Ubuntu'`
filename, cleanup := WriteTempFile(&s.Suite, "", "os-release", content)
defer cleanup()
lsbRelease, err := getOSRelease(filename)
s.Nil(err)
s.Equal(map[string]string{"NAME": "Ubuntu"}, lsbRelease)
}
func (s *releaseTestSuite) TestGetOSReleaseNoQuotes() {
content := `NAME=Ubuntu`
filename, cleanup := WriteTempFile(&s.Suite, "", "os-release", content)
defer cleanup()
lsbRelease, err := getOSRelease(filename)
s.Nil(err)
s.Equal(map[string]string{"NAME": "Ubuntu"}, lsbRelease)
}
func (s *releaseTestSuite) TestGetOSReleaseSkipCommentsEmpty() {
content := `
NAME="Ubuntu"
ID="ubuntu"
# skip this line
VERSION_ID="16.04"
`
filename, cleanup := WriteTempFile(&s.Suite, "", "os-release", content)
defer cleanup()
lsbRelease, err := getOSRelease(filename)
s.Nil(err)
s.Equal(
map[string]string{
"NAME": "Ubuntu",
"ID": "ubuntu",
"VERSION_ID": "16.04",
}, lsbRelease)
}
func (s *releaseTestSuite) TestGetOSReleaseInvalidLine() {
content := `
NAME="Ubuntu"
this is invalid
ID="ubuntu"
`
filename, cleanup := WriteTempFile(&s.Suite, "", "os-release", content)
defer cleanup()
_, err := getOSRelease(filename)
s.EqualError(err, fmt.Sprintf("%s: invalid format on line 3", filename))
}
|