Skip to content

Commit 383368d

Browse files
committed
Test scanning CronJobs
Signed-off-by: ZIV NEVO <[email protected]>
1 parent 499a33e commit 383368d

File tree

2 files changed

+1161
-10
lines changed

2 files changed

+1161
-10
lines changed

pkg/analyzer/info_to_resource_test.go

+26-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package analyzer
22

33
import (
4+
"fmt"
45
"os"
56
"path/filepath"
67
"strings"
@@ -36,7 +37,7 @@ func TestNetworkAddressValue(t *testing.T) {
3637
}
3738

3839
func TestScanningSvc(t *testing.T) {
39-
resourceInfo, err := loadResourceAsInfo([]string{"k8s_guestbook", "frontend-service.yaml"})
40+
resourceInfo, err := loadResourceAsInfo([]string{"k8s_guestbook", "frontend-service.yaml"}, 0)
4041
require.Nil(t, err)
4142
res, err := k8sServiceFromInfo(resourceInfo)
4243
require.Nil(t, err)
@@ -47,7 +48,7 @@ func TestScanningSvc(t *testing.T) {
4748
}
4849

4950
func TestScanningDeploymentWithArgs(t *testing.T) {
50-
resourceInfo, err := loadResourceAsInfo([]string{"sockshop", "manifests", "01-carts-dep.yaml"})
51+
resourceInfo, err := loadResourceAsInfo([]string{"sockshop", "manifests", "01-carts-dep.yaml"}, 0)
5152
require.Nil(t, err)
5253
res, err := k8sWorkloadObjectFromInfo(resourceInfo)
5354
require.Nil(t, err)
@@ -59,7 +60,7 @@ func TestScanningDeploymentWithArgs(t *testing.T) {
5960
}
6061

6162
func TestScanningDeploymentWithEnvs(t *testing.T) {
62-
resourceInfo, err := loadResourceAsInfo([]string{"k8s_guestbook", "frontend-deployment.yaml"})
63+
resourceInfo, err := loadResourceAsInfo([]string{"k8s_guestbook", "frontend-deployment.yaml"}, 0)
6364
require.Nil(t, err)
6465
res, err := k8sWorkloadObjectFromInfo(resourceInfo)
6566
require.Nil(t, err)
@@ -69,7 +70,7 @@ func TestScanningDeploymentWithEnvs(t *testing.T) {
6970
}
7071

7172
func TestScanningDeploymentWithConfigMapRef(t *testing.T) {
72-
resourceInfo, err := loadResourceAsInfo([]string{"acs-security-demos", "frontend", "webapp", "deployment.yaml"})
73+
resourceInfo, err := loadResourceAsInfo([]string{"acs-security-demos", "frontend", "webapp", "deployment.yaml"}, 0)
7374
require.Nil(t, err)
7475
res, err := k8sWorkloadObjectFromInfo(resourceInfo)
7576
require.Nil(t, err)
@@ -80,7 +81,7 @@ func TestScanningDeploymentWithConfigMapRef(t *testing.T) {
8081
}
8182

8283
func TestScanningReplicaSet(t *testing.T) {
83-
resourceInfo, err := loadResourceAsInfo([]string{"k8s_guestbook", "redis-leader-deployment.yaml"})
84+
resourceInfo, err := loadResourceAsInfo([]string{"k8s_guestbook", "redis-leader-deployment.yaml"}, 0)
8485
require.Nil(t, err)
8586
res, err := k8sWorkloadObjectFromInfo(resourceInfo)
8687
require.Nil(t, err)
@@ -90,7 +91,7 @@ func TestScanningReplicaSet(t *testing.T) {
9091
}
9192

9293
func TestScanningConfigMap(t *testing.T) {
93-
resourceInfo, err := loadResourceAsInfo([]string{"qotd", "qotd_usecase.yaml"})
94+
resourceInfo, err := loadResourceAsInfo([]string{"qotd", "qotd_usecase.yaml"}, 0)
9495
require.Nil(t, err)
9596
res, err := k8sConfigmapFromInfo(resourceInfo)
9697
require.Nil(t, err)
@@ -99,7 +100,7 @@ func TestScanningConfigMap(t *testing.T) {
99100
}
100101

101102
func TestScanningIngress(t *testing.T) {
102-
resourceInfo, err := loadResourceAsInfo([]string{"bookinfo", "bookinfo-ingress.yaml"})
103+
resourceInfo, err := loadResourceAsInfo([]string{"bookinfo", "bookinfo-ingress.yaml"}, 0)
103104
require.Nil(t, err)
104105
toExpose := servicesToExpose{}
105106
err = k8sIngressFromInfo(resourceInfo, toExpose)
@@ -108,15 +109,26 @@ func TestScanningIngress(t *testing.T) {
108109
}
109110

110111
func TestScanningRoute(t *testing.T) {
111-
resourceInfo, err := loadResourceAsInfo([]string{"acs-security-demos", "frontend", "webapp", "route.yaml"})
112+
resourceInfo, err := loadResourceAsInfo([]string{"acs-security-demos", "frontend", "webapp", "route.yaml"}, 0)
112113
require.Nil(t, err)
113114
toExpose := servicesToExpose{}
114115
err = ocRouteFromInfo(resourceInfo, toExpose)
115116
require.Nil(t, err)
116117
require.Len(t, toExpose, 1)
117118
}
118119

119-
func loadResourceAsInfo(resourceDirs []string) (*resource.Info, error) {
120+
func TestScanningCronJob(t *testing.T) {
121+
resourceInfo, err := loadResourceAsInfo([]string{"openshift", "openshift-operator-lifecycle-manager-resources.yaml"}, 7)
122+
require.Nil(t, err)
123+
res, err := k8sWorkloadObjectFromInfo(resourceInfo)
124+
require.Nil(t, err)
125+
require.Equal(t, "collect-profiles", res.Resource.Name)
126+
require.Equal(t, cronJob, res.Resource.Kind)
127+
require.Len(t, res.Resource.NetworkAddrs, 1)
128+
require.Len(t, res.Resource.Labels, 0)
129+
}
130+
131+
func loadResourceAsInfo(resourceDirs []string, infoIndex int) (*resource.Info, error) {
120132
currentDir, _ := os.Getwd()
121133
resourceRelPath := filepath.Join(resourceDirs...)
122134
resourcePath := filepath.Join(currentDir, "..", "..", "tests", resourceRelPath)
@@ -126,5 +138,9 @@ func loadResourceAsInfo(resourceDirs []string) (*resource.Info, error) {
126138
return nil, errs[0]
127139
}
128140

129-
return infos[0], nil
141+
if len(infos) <= infoIndex {
142+
return nil, fmt.Errorf("Info number %d was required, but only %d Infos were read", infoIndex, len(infos))
143+
}
144+
145+
return infos[infoIndex], nil
130146
}

0 commit comments

Comments
 (0)