1
1
package e2e
2
2
3
3
import (
4
- "context"
5
- "fmt"
6
4
"os"
7
5
"testing"
8
6
"time"
9
7
10
8
"github.com/packethost/rover/client"
11
9
"github.com/packethost/rover/protos/workflow"
12
10
"github.com/packethost/rover/test/framework"
13
- "github.com/stretchr/testify/assert "
11
+ "github.com/sirupsen/logrus "
14
12
)
15
13
14
+ var log * logrus.Logger = framework .Log
15
+
16
16
func TestMain (m * testing.M ) {
17
- fmt . Println ("########Creating Setup########" )
17
+ log . Infoln ("########Creating Setup########" )
18
18
err := framework .StartStack ()
19
19
time .Sleep (10 * time .Second )
20
20
if err != nil {
@@ -23,120 +23,50 @@ func TestMain(m *testing.M) {
23
23
os .Setenv ("ROVER_GRPC_AUTHORITY" , "127.0.0.1:42113" )
24
24
os .Setenv ("ROVER_CERT_URL" , "http://127.0.0.1:42114/cert" )
25
25
client .Setup ()
26
- fmt . Println ("########Setup Created########" )
26
+ log . Infoln ("########Setup Created########" )
27
27
28
- fmt . Println ("Creating hardware inventory" )
28
+ log . Infoln ("Creating hardware inventory" )
29
29
//push hardware data into hardware table
30
30
hwData := []string {"hardware_1.json" , "hardware_2.json" }
31
31
err = framework .PushHardwareData (hwData )
32
32
if err != nil {
33
- fmt . Println ("Failed to push hardware inventory : " , err )
33
+ log . Errorln ("Failed to push hardware inventory : " , err )
34
34
os .Exit (2 )
35
35
}
36
- fmt . Println ("Hardware inventory created" )
36
+ log . Infoln ("Hardware inventory created" )
37
37
38
- fmt . Println ("########Starting Tests########" )
38
+ log . Infoln ("########Starting Tests########" )
39
39
status := m .Run ()
40
- fmt . Println ("########Finished Tests########" )
41
- fmt . Println ("########Removing setup########" )
40
+ log . Infoln ("########Finished Tests########" )
41
+ log . Infoln ("########Removing setup########" )
42
42
//err = framework.TearDown()
43
43
if err != nil {
44
44
os .Exit (3 )
45
45
}
46
- fmt . Println ("########Setup removed########" )
46
+ log . Infoln ("########Setup removed########" )
47
47
os .Exit (status )
48
48
}
49
49
50
- var testCases = []struct {
51
- //name string
50
+ var testCases = map [string ]struct {
52
51
target string
53
52
template string
54
53
workers int64
55
54
expected workflow.ActionState
56
55
ephData string
57
56
}{
58
- {"target_1.json" , "sample_1" , 1 , workflow .ActionState_ACTION_SUCCESS , `{"action_02": "data_02}` },
59
- {"target_1.json" , "sample_2" , 1 , workflow .ActionState_ACTION_TIMEOUT , `{"action_01": "data_01}` },
57
+ "testWfWithWorker" : {"target_1.json" , "sample_1" , 1 , workflow .ActionState_ACTION_SUCCESS , `{"action_02": "data_02"}` },
58
+ "testWfTimeout" : {"target_1.json" , "sample_2" , 1 , workflow .ActionState_ACTION_TIMEOUT , `{"action_01": "data_01"}` },
59
+ "testWfWithMultiWorkers" : {"target_1.json" , "sample_3" , 2 , workflow .ActionState_ACTION_SUCCESS , `{"action_01": "data_01"}` },
60
60
}
61
61
62
- func TestOneWorker (t * testing.T ) {
63
-
64
- // Start test
65
- if len (testCases ) > 0 {
66
- test := testCases [0 ]
67
- wfID , err := framework .SetupWorkflow (test .target , test .template )
68
-
69
- if err != nil {
70
- t .Error (err )
71
- }
72
- assert .NoError (t , err , "Create Workflow" )
73
-
74
- // Start the Worker
75
- workerStatus := make (chan int64 , test .workers )
76
- wfStatus , err := framework .StartWorkers (test .workers , workerStatus , wfID )
77
- if err != nil {
78
- fmt .Printf ("Test Failed\n " )
79
- t .Error (err )
80
- }
81
- assert .Equal (t , test .expected , wfStatus )
82
- assert .NoError (t , err , "Workers Failed" )
83
-
84
- for i := int64 (0 ); i < test .workers ; i ++ {
85
- if len (workerStatus ) > 0 {
86
- //Check for worker exit status
87
- status := <- workerStatus
88
- expected := 0
89
- if test .expected != workflow .ActionState_ACTION_SUCCESS {
90
- expected = 1
91
- }
92
- assert .Equal (t , int64 (expected ), status )
93
- //checking for ephemeral data validation
94
- resp , err := client .WorkflowClient .GetWorkflowData (context .Background (), & workflow.GetWorkflowDataRequest {WorkflowID : wfID , Version : 0 })
95
- if err != nil {
96
- assert .Equal (t , test .ephData , string (resp .GetData ()))
97
- }
98
- }
99
- }
100
- }
62
+ var runTestMap = map [string ]func (t * testing.T ){
63
+ "testWfWithWorker" : TestWfWithWorker ,
64
+ "testWfTimeout" : TestWfTimeout ,
65
+ "testWfWithMultiWorkers" : TestWfWithMultiWorkers ,
101
66
}
102
67
103
- func TestTimeout (t * testing.T ) {
104
- // Start test
105
- if len (testCases ) > 1 {
106
- test := testCases [1 ]
107
- wfID , err := framework .SetupWorkflow (test .target , test .template )
108
-
109
- if err != nil {
110
- t .Error (err )
111
- }
112
- assert .NoError (t , err , "Create Workflow" )
113
-
114
- // Start the Worker
115
- workerStatus := make (chan int64 , test .workers )
116
- wfStatus , err := framework .StartWorkers (test .workers , workerStatus , wfID )
117
- if err != nil {
118
- fmt .Printf ("Test Failed\n " )
119
- t .Error (err )
120
- }
121
- assert .Equal (t , test .expected , wfStatus )
122
- assert .NoError (t , err , "Workers Failed" )
123
-
124
- for i := int64 (0 ); i < test .workers ; i ++ {
125
- if len (workerStatus ) > 0 {
126
- // Check for worker exit status
127
- status := <- workerStatus
128
- expected := 0
129
- if test .expected != workflow .ActionState_ACTION_SUCCESS {
130
- expected = 1
131
- }
132
- assert .Equal (t , int64 (expected ), status )
133
-
134
- //checking for ephemeral data validation
135
- resp , err := client .WorkflowClient .GetWorkflowData (context .Background (), & workflow.GetWorkflowDataRequest {WorkflowID : wfID , Version : 0 })
136
- if err != nil {
137
- assert .Equal (t , test .ephData , string (resp .GetData ()))
138
- }
139
- }
140
- }
68
+ func TestE2E (t * testing.T ) {
69
+ for key , val := range runTestMap {
70
+ t .Run (key , val )
141
71
}
142
72
}
0 commit comments