@@ -3,12 +3,16 @@ package cmd
3
3
import (
4
4
"bytes"
5
5
"errors"
6
+ "net"
6
7
"net/http"
7
8
"net/url"
8
9
"os"
10
+ "regexp"
9
11
"testing"
10
12
13
+ "github.com/containers/gvisor-tap-vsock/pkg/types"
11
14
"github.com/crc-org/crc/v2/pkg/crc/api/client"
15
+ crcConfig "github.com/crc-org/crc/v2/pkg/crc/config"
12
16
13
17
"github.com/sirupsen/logrus"
14
18
"github.com/stretchr/testify/assert"
@@ -84,3 +88,69 @@ func TestCheckDaemonVersion_WhenErrorReturnedWhileFetchingVersion_ThenReturnFals
84
88
assert .NoError (t , err )
85
89
assert .Equal (t , false , result )
86
90
}
91
+
92
+ func TestCreateNewVirtualNetworkConfig (t * testing.T ) {
93
+ // Given
94
+ oldPcapFileEnvVal := os .Getenv ("CRC_DAEMON_PCAP_FILE" )
95
+ err := os .Setenv ("CRC_DAEMON_PCAP_FILE" , "/tmp/pcapfile" )
96
+ assert .NoError (t , err )
97
+ defer func (key , value string ) {
98
+ err := os .Setenv (key , value )
99
+ assert .NoError (t , err )
100
+ }("CRC_DAEMON_PCAP_FILE" , oldPcapFileEnvVal )
101
+ testCrcConfig := crcConfig .New (crcConfig .NewEmptyInMemoryStorage (), crcConfig .NewEmptyInMemorySecretStorage ())
102
+
103
+ // When
104
+ virtualNetworkConfig := createNewVirtualNetworkConfig (testCrcConfig )
105
+
106
+ // Then
107
+ assert .Equal (t , false , virtualNetworkConfig .Debug )
108
+ assert .Equal (t , "/tmp/pcapfile" , virtualNetworkConfig .CaptureFile )
109
+ assert .Equal (t , 4000 , virtualNetworkConfig .MTU )
110
+ assert .Equal (t , "192.168.127.0/24" , virtualNetworkConfig .Subnet )
111
+ assert .Equal (t , "192.168.127.1" , virtualNetworkConfig .GatewayIP )
112
+ assert .ElementsMatch (t , []string {"192.168.127.254" }, virtualNetworkConfig .GatewayVirtualIPs )
113
+ assert .Equal (t , "5a:94:ef:e4:0c:dd" , virtualNetworkConfig .GatewayMacAddress )
114
+ assert .Equal (t , types .Protocol ("hyperkit" ), virtualNetworkConfig .Protocol )
115
+
116
+ assert .Len (t , virtualNetworkConfig .DHCPStaticLeases , 1 )
117
+ assert .Equal (t , "5a:94:ef:e4:0c:ee" , virtualNetworkConfig .DHCPStaticLeases ["192.168.127.2" ])
118
+
119
+ assert .Len (t , virtualNetworkConfig .DNS , 4 )
120
+ assert .Equal (t , "apps-crc.testing." , virtualNetworkConfig .DNS [0 ].Name )
121
+ assert .Equal (t , net .ParseIP ("192.168.127.2" ), virtualNetworkConfig .DNS [0 ].DefaultIP )
122
+ assert .Equal (t , "crc.testing." , virtualNetworkConfig .DNS [1 ].Name )
123
+ assert .Equal (t , "host" , virtualNetworkConfig .DNS [1 ].Records [0 ].Name )
124
+ assert .Equal (t , net .ParseIP ("192.168.127.254" ), virtualNetworkConfig .DNS [1 ].Records [0 ].IP )
125
+ assert .Equal (t , "gateway" , virtualNetworkConfig .DNS [1 ].Records [1 ].Name )
126
+ assert .Equal (t , net .ParseIP ("192.168.127.1" ), virtualNetworkConfig .DNS [1 ].Records [1 ].IP )
127
+ assert .Equal (t , "api" , virtualNetworkConfig .DNS [1 ].Records [2 ].Name )
128
+ assert .Equal (t , net .ParseIP ("192.168.127.2" ), virtualNetworkConfig .DNS [1 ].Records [2 ].IP )
129
+ assert .Equal (t , "api-int" , virtualNetworkConfig .DNS [1 ].Records [3 ].Name )
130
+ assert .Equal (t , net .ParseIP ("192.168.127.2" ), virtualNetworkConfig .DNS [1 ].Records [3 ].IP )
131
+ assert .Equal (t , regexp .MustCompile ("crc-(.*?)-master-0" ), virtualNetworkConfig .DNS [1 ].Records [4 ].Regexp )
132
+ assert .Equal (t , net .ParseIP ("192.168.126.11" ), virtualNetworkConfig .DNS [1 ].Records [4 ].IP )
133
+
134
+ assert .Equal (t , "containers.internal." , virtualNetworkConfig .DNS [2 ].Name )
135
+ assert .Len (t , virtualNetworkConfig .DNS [2 ].Records , 1 )
136
+ assert .Equal (t , "gateway" , virtualNetworkConfig .DNS [2 ].Records [0 ].Name )
137
+ assert .Equal (t , net .ParseIP ("192.168.127.254" ), virtualNetworkConfig .DNS [2 ].Records [0 ].IP )
138
+ assert .Equal (t , "docker.internal." , virtualNetworkConfig .DNS [3 ].Name )
139
+ assert .Len (t , virtualNetworkConfig .DNS [3 ].Records , 1 )
140
+ assert .Equal (t , "gateway" , virtualNetworkConfig .DNS [3 ].Records [0 ].Name )
141
+ assert .Equal (t , net .ParseIP ("192.168.127.254" ), virtualNetworkConfig .DNS [3 ].Records [0 ].IP )
142
+ }
143
+
144
+ func TestCreateNewVirtualNetworkConfig_WhenHostNetworkConfigSet_ThenSetNAT (t * testing.T ) {
145
+ // Given
146
+ testCrcConfig := crcConfig .New (crcConfig .NewEmptyInMemoryStorage (), crcConfig .NewEmptyInMemorySecretStorage ())
147
+ testCrcConfig .AddSetting ("host-network-access" , false , crcConfig .ValidateBool , crcConfig .SuccessfullyApplied , "test message" )
148
+ _ , err := testCrcConfig .Set (crcConfig .HostNetworkAccess , true )
149
+ assert .NoError (t , err )
150
+
151
+ // When
152
+ virtualNetworkConfig := createNewVirtualNetworkConfig (testCrcConfig )
153
+
154
+ // Then
155
+ assert .Equal (t , "127.0.0.1" , virtualNetworkConfig .NAT ["192.168.127.254" ])
156
+ }
0 commit comments