117 lines
2.5 KiB
Go
117 lines
2.5 KiB
Go
package alpine_builder
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func init() {
|
|
networkConfig = "test_interfaces"
|
|
}
|
|
|
|
func TestGetNetworkInfo(t *testing.T) {
|
|
ass := assert.New(t)
|
|
|
|
// file does not exist
|
|
_, err := GetNetworkInfo()
|
|
ass.EqualError(err, "failed to open network config: open test_interfaces: no such file or directory")
|
|
|
|
// invalid config file
|
|
ass.NoError(ioutil.WriteFile(networkConfig, []byte(""), os.ModePerm))
|
|
_, err = GetNetworkInfo()
|
|
ass.EqualError(err, "invalid network config")
|
|
|
|
// dynamic config
|
|
ass.NoError(ioutil.WriteFile(networkConfig, []byte(`auto lo
|
|
iface lo inet loopback
|
|
|
|
auto eth0
|
|
iface eth0 inet dhcp`), os.ModePerm))
|
|
info, err := GetNetworkInfo()
|
|
ass.NoError(err)
|
|
ass.False(info.IsStatic)
|
|
|
|
// static config
|
|
ass.NoError(ioutil.WriteFile(networkConfig, []byte(`auto lo
|
|
iface lo inet loopback
|
|
|
|
auto eth0
|
|
iface eth0 inet static
|
|
address 1.2.3.4
|
|
netmask 255.255.255.0
|
|
gateway 4.3.2.1`), os.ModePerm))
|
|
info, err = GetNetworkInfo()
|
|
ass.NoError(err)
|
|
ass.True(info.IsStatic)
|
|
ass.Equal("1.2.3.4", info.Address)
|
|
ass.Equal("255.255.255.0", info.Netmask)
|
|
ass.Equal("4.3.2.1", info.Gateway)
|
|
|
|
_ = os.Remove(networkConfig)
|
|
}
|
|
|
|
func TestNetworkEnableDHCP(t *testing.T) {
|
|
ass := assert.New(t)
|
|
|
|
// file does not exist
|
|
_, err := GetNetworkInfo()
|
|
ass.EqualError(err, "failed to open network config: open test_interfaces: no such file or directory")
|
|
|
|
ass.NoError(ioutil.WriteFile(networkConfig, []byte(`auto lo
|
|
iface lo inet loopback
|
|
|
|
auto eth0
|
|
iface eth0 inet static
|
|
address 1.2.3.4
|
|
netmask 255.255.255.0
|
|
gateway 4.3.2.1`), os.ModePerm))
|
|
|
|
ass.NoError(NetworkEnableDHCP())
|
|
|
|
data, err := ioutil.ReadFile(networkConfig)
|
|
ass.NoError(err)
|
|
|
|
ass.Equal(`auto lo
|
|
iface lo inet loopback
|
|
|
|
auto eth0
|
|
iface eth0 inet dhcp
|
|
`, string(data))
|
|
|
|
_ = os.Remove(networkConfig)
|
|
}
|
|
|
|
func TestNetworkSetStatic(t *testing.T) {
|
|
ass := assert.New(t)
|
|
|
|
// file does not exist
|
|
_, err := GetNetworkInfo()
|
|
ass.EqualError(err, "failed to open network config: open test_interfaces: no such file or directory")
|
|
|
|
ass.NoError(ioutil.WriteFile(networkConfig, []byte(`auto lo
|
|
iface lo inet loopback
|
|
|
|
auto eth0
|
|
iface eth0 inet dhcp`), os.ModePerm))
|
|
|
|
ass.NoError(NetworkSetStatic("1.2.3.4", "255.255.255.0", "4.3.2.1"))
|
|
|
|
data, err := ioutil.ReadFile(networkConfig)
|
|
ass.NoError(err)
|
|
|
|
ass.Equal(`auto lo
|
|
iface lo inet loopback
|
|
|
|
auto eth0
|
|
iface eth0 inet static
|
|
address 1.2.3.4
|
|
netmask 255.255.255.0
|
|
gateway 4.3.2.1
|
|
`, string(data))
|
|
|
|
_ = os.Remove(networkConfig)
|
|
}
|