package distro
import (
"reflect"
"strings"
"testing"
)
func TestOSRelease(t *testing.T) {
var cases = []struct {
Input string
OSRelease map[string]string
}{
{
``,
map[string]string{},
},
{
`NAME=Fedora
VERSION="30 (Workstation Edition)"
ID=fedora
VERSION_ID=30
VERSION_CODENAME=""
PLATFORM_ID="platform:f30"
PRETTY_NAME="Fedora 30 (Workstation Edition)"
VARIANT="Workstation Edition"
VARIANT_ID=workstation`,
map[string]string{
"NAME": "Fedora",
"VERSION": "30 (Workstation Edition)",
"ID": "fedora",
"VERSION_ID": "30",
"VERSION_CODENAME": "",
"PLATFORM_ID": "platform:f30",
"PRETTY_NAME": "Fedora 30 (Workstation Edition)",
"VARIANT": "Workstation Edition",
"VARIANT_ID": "workstation",
},
},
}
for i, c := range cases {
r := strings.NewReader(c.Input)
osrelease, err := readOSRelease(r)
if err != nil {
t.Fatalf("%d: readOSRelease: %v", i, err)
}
if !reflect.DeepEqual(osrelease, c.OSRelease) {
t.Fatalf("%d: readOSRelease returned unexpected result: %#v", i, osrelease)
}
}
}