@@ -3,11 +3,9 @@ package test
33import (
44 "encoding/json"
55 "fmt"
6- "github.com/serverledge-faas/serverledge/internal/cache"
76 "github.com/serverledge-faas/serverledge/internal/workflow"
87 u "github.com/serverledge-faas/serverledge/utils"
98 "testing"
10- "time"
119)
1210
1311func TestPartialDataMarshaling (t * testing.T ) {
@@ -28,83 +26,3 @@ func TestPartialDataMarshaling(t *testing.T) {
2826
2927 u .AssertTrueMsg (t , retrieved .Equals (& partialData ), fmt .Sprintf ("retrieved partialData is not equal to initial partialData. Retrieved:\n %s,\n Expected:\n %s " , retrieved .String (), partialData .String ()))
3028}
31-
32- func TestPartialDataCache (t * testing.T ) {
33- // it's an integration test because it needs etcd
34- if testing .Short () {
35- t .Skip ()
36- }
37-
38- request1 := workflow .ReqId ("abc" )
39- request2 := workflow .ReqId ("zzz" )
40-
41- data := make (map [string ]interface {})
42- data ["num" ] = 1
43- partialData1 := initPartialData (request1 , "nodo1" , "start" , data )
44- data = make (map [string ]interface {})
45- data ["num" ] = 2
46- partialData2 := initPartialData (request1 , "nodo2" , "nodo1" , data )
47- data = make (map [string ]interface {})
48- data ["num" ] = 3
49- partialData3 := initPartialData (request2 , "start" , "" , data )
50- partialDatas := []* workflow.PartialData {partialData1 , partialData2 , partialData3 }
51-
52- // saving and retrieving partial datas one by one
53- for i := 0 ; i < len (partialDatas ); i ++ {
54- partialData := partialDatas [i ]
55- err := workflow .SavePartialData (partialData , cache .Persist )
56- u .AssertNilMsg (t , err , "failed to save partialData" )
57-
58- retrievedPartialData , err := workflow .RetrievePartialData (partialData .ReqId , partialData .ForTask , cache .Persist )
59- u .AssertNilMsg (t , err , "partialData not found" )
60- u .AssertTrueMsg (t , partialData .Equals (retrievedPartialData [0 ]), "progresses don't match" )
61-
62- _ , err = workflow .DeleteAllPartialData (partialData .ReqId , cache .Persist )
63- u .AssertNilMsg (t , err , "failed to delete partialData" )
64-
65- _ , err = workflow .RetrievePartialData (partialData .ReqId , partialData .ForTask , cache .Persist )
66- u .AssertNonNilMsg (t , err , "partialData should have been deleted" )
67- }
68-
69- requests := []workflow.ReqId {request1 , request2 }
70- partialDataMap := make (map [workflow.ReqId ][]* workflow.PartialData )
71- partialDataMap [request1 ] = make ([]* workflow.PartialData , 0 , 2 )
72- partialDataMap [request1 ] = append (partialDataMap [request1 ], partialData1 , partialData2 )
73- partialDataMap [request2 ] = make ([]* workflow.PartialData , 0 , 1 )
74- partialDataMap [request2 ] = append (partialDataMap [request2 ], partialData3 )
75-
76- // saving, retrieving and deleting partial data request by request
77- for i := 0 ; i < len (requests ); i ++ {
78- request := requests [i ]
79- partialDataList := partialDataMap [request ]
80- for _ , partialData := range partialDataList {
81- err := workflow .SavePartialData (partialData , cache .Persist )
82- u .AssertNilMsg (t , err , "failed to save partialData" )
83- }
84-
85- retrievedPartialData , err := workflow .RetrieveAllPartialData (request , cache .Persist )
86- u .AssertNil (t , err )
87- count := 0
88- retrievedPartialData .Range (func (key , value any ) bool {
89- count ++
90- return true
91- })
92- u .AssertEqualsMsg (t , len (partialDataList ), count , "number of partial data for request differs" )
93-
94- _ , err = workflow .DeleteAllPartialData (request , cache .Persist )
95- u .AssertNilMsg (t , err , "failed to delete all partialData" )
96-
97- time .Sleep (200 * time .Millisecond )
98-
99- numPartialData := workflow .NumberOfPartialDataFor (request , cache .Persist )
100- u .AssertEqualsMsg (t , 0 , numPartialData , "retrieved partialData should have been 0" )
101- }
102- }
103-
104- func initPartialData (reqId workflow.ReqId , to , from workflow.TaskId , data map [string ]interface {}) * workflow.PartialData {
105- return & workflow.PartialData {
106- ReqId : reqId ,
107- ForTask : to ,
108- Data : data ,
109- }
110- }
0 commit comments