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) } } }