e8c1f5c8d3
Merge in DNS/adguard-home from 2508-ip-conversion to master Updates #2508. Squashed commit of the following: commit 3f64709fbc73ef74c11b910997be1e9bc337193c Merge: 5ac7faaaa0d67aa251
Author: Eugene Burkov <e.burkov@adguard.com> Date: Wed Jan 13 16:21:34 2021 +0300 Merge branch 'master' into 2508-ip-conversion commit 5ac7faaaa9dda570fdb872acad5d13d078f46b64 Author: Eugene Burkov <e.burkov@adguard.com> Date: Wed Jan 13 12:00:11 2021 +0300 all: replace conditions with appropriate functions in tests commit 9e3fa9a115ed23024c57dd5192d5173477ddbf71 Merge: db992a42abba74859e
Author: Eugene Burkov <e.burkov@adguard.com> Date: Wed Jan 13 10:47:10 2021 +0300 Merge branch 'master' into 2508-ip-conversion commit db992a42a2c6f315421e78a6a0492e2bfb3ce89d Author: Eugene Burkov <e.burkov@adguard.com> Date: Tue Jan 12 18:55:53 2021 +0300 sysutil: fix linux tests commit f629b15d62349323ce2da05e68dc9cc0b5f6e194 Author: Eugene Burkov <e.burkov@adguard.com> Date: Tue Jan 12 18:41:20 2021 +0300 all: improve code quality commit 3bf03a75524040738562298bd1de6db536af130f Author: Eugene Burkov <e.burkov@adguard.com> Date: Tue Jan 12 17:33:26 2021 +0300 sysutil: fix linux net.IP conversion commit 5d5b6994916923636e635588631b63b7e7b74e5f Author: Eugene Burkov <e.burkov@adguard.com> Date: Tue Jan 12 14:57:26 2021 +0300 dnsforward: remove redundant net.IP <-> string conversion commit 0b955d99b7fad40942f21d1dd8734adb99126195 Author: Eugene Burkov <e.burkov@adguard.com> Date: Mon Jan 11 18:04:25 2021 +0300 dhcpd: remove net.IP <-> string conversion
111 lines
2.5 KiB
Go
111 lines
2.5 KiB
Go
// +build linux
|
|
|
|
package sysutil
|
|
|
|
import (
|
|
"bytes"
|
|
"net"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
const nl = "\n"
|
|
|
|
func TestDHCPCDStaticConfig(t *testing.T) {
|
|
testCases := []struct {
|
|
name string
|
|
data []byte
|
|
want bool
|
|
}{{
|
|
name: "has_not",
|
|
data: []byte(`#comment` + nl +
|
|
`# comment` + nl +
|
|
`interface eth0` + nl +
|
|
`static ip_address=192.168.0.1/24` + nl +
|
|
`# interface wlan0` + nl +
|
|
`static ip_address=192.168.1.1/24` + nl +
|
|
`# comment` + nl,
|
|
),
|
|
want: false,
|
|
}, {
|
|
name: "has",
|
|
data: []byte(`#comment` + nl +
|
|
`# comment` + nl +
|
|
`interface eth0` + nl +
|
|
`static ip_address=192.168.0.1/24` + nl +
|
|
`# interface wlan0` + nl +
|
|
`static ip_address=192.168.1.1/24` + nl +
|
|
`# comment` + nl +
|
|
`interface wlan0` + nl +
|
|
`# comment` + nl +
|
|
`static ip_address=192.168.2.1/24` + nl,
|
|
),
|
|
want: true,
|
|
}}
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
r := bytes.NewReader(tc.data)
|
|
has, err := dhcpcdStaticConfig(r, "wlan0")
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, tc.want, has)
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestIfacesStaticConfig(t *testing.T) {
|
|
testCases := []struct {
|
|
name string
|
|
data []byte
|
|
want bool
|
|
}{{
|
|
name: "has_not",
|
|
data: []byte(`allow-hotplug enp0s3` + nl +
|
|
`#iface enp0s3 inet static` + nl +
|
|
`# address 192.168.0.200` + nl +
|
|
`# netmask 255.255.255.0` + nl +
|
|
`# gateway 192.168.0.1` + nl +
|
|
`iface enp0s3 inet dhcp` + nl,
|
|
),
|
|
want: false,
|
|
}, {
|
|
name: "has",
|
|
data: []byte(`allow-hotplug enp0s3` + nl +
|
|
`iface enp0s3 inet static` + nl +
|
|
` address 192.168.0.200` + nl +
|
|
` netmask 255.255.255.0` + nl +
|
|
` gateway 192.168.0.1` + nl +
|
|
`#iface enp0s3 inet dhcp` + nl,
|
|
),
|
|
want: true,
|
|
}}
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
r := bytes.NewReader(tc.data)
|
|
has, err := ifacesStaticConfig(r, "enp0s3")
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, tc.want, has)
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestSetStaticIPdhcpcdConf(t *testing.T) {
|
|
dhcpcdConf := nl + `interface wlan0` + nl +
|
|
`static ip_address=192.168.0.2/24` + nl +
|
|
`static routers=192.168.0.1` + nl +
|
|
`static domain_name_servers=192.168.0.2` + nl + nl
|
|
|
|
s := updateStaticIPdhcpcdConf("wlan0", "192.168.0.2/24", net.IP{192, 168, 0, 1}, net.IP{192, 168, 0, 2})
|
|
assert.Equal(t, dhcpcdConf, s)
|
|
|
|
// without gateway
|
|
dhcpcdConf = nl + `interface wlan0` + nl +
|
|
`static ip_address=192.168.0.2/24` + nl +
|
|
`static domain_name_servers=192.168.0.2` + nl + nl
|
|
|
|
s = updateStaticIPdhcpcdConf("wlan0", "192.168.0.2/24", nil, net.IP{192, 168, 0, 2})
|
|
assert.Equal(t, dhcpcdConf, s)
|
|
}
|