-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathosdetector_test.go
99 lines (88 loc) · 2.34 KB
/
osdetector_test.go
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
89
90
91
92
93
94
95
96
97
98
99
package osdetector
import (
"github.com/spf13/afero"
"github.com/stretchr/testify/suite"
"testing"
)
type OsDetectSuite struct {
suite.Suite
}
func (s *OsDetectSuite) TestAmazonLinux2() {
fs := afero.NewMemMapFs()
_ = fs.MkdirAll("/etc", 0755)
e := afero.WriteFile(fs, "/etc/os-release", []byte(`NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
`), 0644)
_ = e
osd := NewOsDetector(fs)
res, err := osd.GetOSDistro("linux")
s.Nil(err)
s.Equal("Linux", res.Os)
s.Equal("RedHat", res.BasedOn)
s.Equal("Amazon Linux", res.Dist)
s.Equal("2", res.Rev)
s.Equal("", res.PseudoName)
}
func (s *OsDetectSuite) TestCento610() {
fs := afero.NewMemMapFs()
_ = fs.MkdirAll("/etc", 0755)
_ = afero.WriteFile(fs, "/etc/redhat-release", []byte(`CentOS release 6.10 (Final)
`), 0644)
osd := NewOsDetector(fs)
res, err := osd.GetOSDistro("linux")
s.Nil(err)
s.Equal("Linux", res.Os)
s.Equal("RedHat", res.BasedOn)
s.Equal("CentOS", res.Dist)
s.Equal("6.10", res.Rev)
s.Equal("Final", res.PseudoName)
}
func (s *OsDetectSuite) TestUbuntu1804() {
fs := afero.NewMemMapFs()
_ = fs.MkdirAll("/etc", 0755)
_ = afero.WriteFile(fs, "/etc/lsb-release", []byte(`DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"
`), 0644)
osd := NewOsDetector(fs)
res, err := osd.GetOSDistro("linux")
s.Nil(err)
s.Equal("Linux", res.Os)
s.Equal("Debian", res.BasedOn)
s.Equal("Ubuntu", res.Dist)
s.Equal("18.04", res.Rev)
s.Equal("bionic", res.PseudoName)
}
func (s *OsDetectSuite) TestDebian10() {
fs := afero.NewMemMapFs()
_ = fs.MkdirAll("/etc", 0755)
_ = afero.WriteFile(fs, "/etc/os-release", []byte(`PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
`), 0644)
osd := NewOsDetector(fs)
res, err := osd.GetOSDistro("linux")
s.Nil(err)
s.Equal("Linux", res.Os)
s.Equal("Debian", res.BasedOn)
s.Equal("Debian", res.Dist)
s.Equal("10", res.Rev)
s.Equal("buster", res.PseudoName)
}
func TestUser(t *testing.T) {
suite.Run(t, new(OsDetectSuite))
}