Skip to content

Commit

Permalink
Enable traceflow e2e test on Windows
Browse files Browse the repository at this point in the history
Signed-off-by: gran <gran@vmware.com>
  • Loading branch information
gran-vmv committed Nov 17, 2021
1 parent 363f2d8 commit 629db20
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 15 deletions.
18 changes: 15 additions & 3 deletions test/e2e/fixtures.go
Expand Up @@ -415,6 +415,18 @@ func deletePodWrapper(tb testing.TB, data *TestData, namespace, name string) {
// created Pods. Pods are created in parallel to reduce the time required to run the tests.
func createTestBusyboxPods(tb testing.TB, data *TestData, num int, ns string, nodeName string) (
podNames []string, podIPs []*PodIPs, cleanupFn func(),
) {
return createTestPods(tb, data, num, ns, nodeName, data.createBusyboxPodOnNode)
}

func createTestAgnhostPods(tb testing.TB, data *TestData, num int, ns string, nodeName string) (
podNames []string, podIPs []*PodIPs, cleanupFn func(),
) {
return createTestPods(tb, data, num, ns, nodeName, data.createAgnhostPodOnNode)
}

func createTestPods(tb testing.TB, data *TestData, num int, ns string, nodeName string, createFunc func(string, string, string, bool) error) (
podNames []string, podIPs []*PodIPs, cleanupFn func(),
) {
cleanupFn = func() {
var wg sync.WaitGroup
Expand All @@ -436,9 +448,9 @@ func createTestBusyboxPods(tb testing.TB, data *TestData, num int, ns string, no

createPodAndGetIP := func() (string, *PodIPs, error) {
podName := randName("test-pod-")
tb.Logf("Creating a busybox test Pod '%s' and waiting for IP", podName)
if err := data.createBusyboxPodOnNode(podName, ns, nodeName, false); err != nil {
tb.Errorf("Error when creating busybox test Pod '%s': %v", podName, err)
tb.Logf("Creating a test Pod '%s' and waiting for IP", podName)
if err := createFunc(podName, ns, nodeName, false); err != nil {
tb.Errorf("Error when creating test Pod '%s': %v", podName, err)
return "", nil, err
}
podIP, err := data.podWaitForIPs(defaultTimeout, podName, ns)
Expand Down
41 changes: 29 additions & 12 deletions test/e2e/traceflow_test.go
Expand Up @@ -53,7 +53,6 @@ type testcase struct {
// TestTraceflow is the top-level test which contains all subtests for
// Traceflow related test cases so they can share setup, teardown.
func TestTraceflow(t *testing.T) {
skipIfHasWindowsNodes(t)
skipIfTraceflowDisabled(t)

data, err := setupTest(t)
Expand Down Expand Up @@ -97,8 +96,12 @@ func testTraceflowIntraNodeANP(t *testing.T, data *TestData) {
k8sUtils, err = NewKubernetesUtils(data)
failOnError(err, t)

node1 := nodeName(0)
node1Pods, _, node1CleanupFn := createTestBusyboxPods(t, data, 3, testNamespace, node1)
nodeIdx := 0
if len(clusterInfo.windowsNodes) != 0 {
nodeIdx = clusterInfo.windowsNodes[0]
}
node1 := nodeName(nodeIdx)
node1Pods, _, node1CleanupFn := createTestAgnhostPods(t, data, 3, testNamespace, node1)
defer node1CleanupFn()

var denyIngress *v1alpha1.NetworkPolicy
Expand Down Expand Up @@ -282,10 +285,14 @@ func testTraceflowIntraNodeANP(t *testing.T, data *TestData) {

// testTraceflowIntraNode verifies if traceflow can trace intra node traffic with some NetworkPolicies set.
func testTraceflowIntraNode(t *testing.T, data *TestData) {
node1 := nodeName(0)
nodeIdx := 0
if len(clusterInfo.windowsNodes) != 0 {
nodeIdx = clusterInfo.windowsNodes[0]
}
node1 := nodeName(nodeIdx)

agentPod, _ := data.getAntreaPodOnNode(node1)
node1Pods, node1IPs, node1CleanupFn := createTestBusyboxPods(t, data, 3, testNamespace, node1)
node1Pods, node1IPs, node1CleanupFn := createTestAgnhostPods(t, data, 3, testNamespace, node1)
defer node1CleanupFn()
var pod0IPv4Str, pod1IPv4Str, dstPodIPv4Str, dstPodIPv6Str string
if node1IPs[0].ipv4 != nil {
Expand Down Expand Up @@ -1097,11 +1104,17 @@ func testTraceflowInterNode(t *testing.T, data *TestData) {
skipIfProviderIs(t, "kind", "Skipping inter-Node Traceflow test for Kind because of #897")
}

node1 := nodeName(0)
node2 := nodeName(1)
nodeIdx0 := 0
nodeIdx1 := 1
if len(clusterInfo.windowsNodes) != 0 {
nodeIdx0 = clusterInfo.windowsNodes[0]
nodeIdx1 = clusterInfo.windowsNodes[1]
}
node1 := nodeName(nodeIdx0)
node2 := nodeName(nodeIdx1)

node1Pods, _, node1CleanupFn := createTestBusyboxPods(t, data, 1, testNamespace, node1)
node2Pods, node2IPs, node2CleanupFn := createTestBusyboxPods(t, data, 2, testNamespace, node2)
node1Pods, _, node1CleanupFn := createTestAgnhostPods(t, data, 1, testNamespace, node1)
node2Pods, node2IPs, node2CleanupFn := createTestAgnhostPods(t, data, 2, testNamespace, node2)
defer node1CleanupFn()
defer node2CleanupFn()
var dstPodIPv4Str, dstPodIPv6Str string
Expand Down Expand Up @@ -1943,9 +1956,13 @@ func testTraceflowInterNode(t *testing.T, data *TestData) {
}

func testTraceflowExternalIP(t *testing.T, data *TestData) {
node := nodeName(0)
nodeIP := nodeIP(0)
podNames, _, cleanupFn := createTestBusyboxPods(t, data, 1, testNamespace, node)
nodeIdx := 0
if len(clusterInfo.windowsNodes) != 0 {
nodeIdx = clusterInfo.windowsNodes[0]
}
node := nodeName(nodeIdx)
nodeIP := nodeIP(nodeIdx)
podNames, _, cleanupFn := createTestAgnhostPods(t, data, 1, testNamespace, node)
defer cleanupFn()

testcase := testcase{
Expand Down

0 comments on commit 629db20

Please sign in to comment.