48
48
componenta = "github.com/ServiceWeaver/weaver/internal/testdeployer/a"
49
49
componentb = "github.com/ServiceWeaver/weaver/internal/testdeployer/b"
50
50
componentc = "github.com/ServiceWeaver/weaver/internal/testdeployer/c"
51
+ componentd = "github.com/ServiceWeaver/weaver/internal/testdeployer/d"
51
52
colocated = map [string ][]string {"1" : {componenta , componentb , componentc }}
52
53
)
53
54
@@ -125,9 +126,10 @@ func spawn(ctx context.Context, info *protos.WeaveletArgs, handler envelope.Enve
125
126
// deployer is a simple testing deployer that spawns all weavelets in the
126
127
// current process.
127
128
type deployer struct {
128
- t * testing.T // underlying unit test
129
- ctx context.Context // context used to spawn weavelets
130
- cancel context.CancelFunc // shuts down the deployer and all weavelets
129
+ t * testing.T // underlying unit test
130
+ ctx context.Context // context used to spawn weavelets
131
+ cancel context.CancelFunc // shuts down the deployer and all weavelets
132
+ info * protos.WeaveletArgs
131
133
logger * logging.TestLogger // logger
132
134
threads * errgroup.Group // background threads
133
135
placement map [string ][]string // weavelet -> components
@@ -194,6 +196,7 @@ func deployWithInfo(t *testing.T, ctx context.Context, placement map[string][]st
194
196
threads , ctx := errgroup .WithContext (ctx )
195
197
d := & deployer {
196
198
t : t ,
199
+ info : protomsg .Clone (info ),
197
200
ctx : ctx ,
198
201
cancel : cancel ,
199
202
logger : logging .NewTestLogger (t , testing .Verbose ()),
@@ -209,7 +212,7 @@ func deployWithInfo(t *testing.T, ctx context.Context, placement map[string][]st
209
212
// Spawn the weavelets.
210
213
tmpDir := t .TempDir ()
211
214
for name := range placement {
212
- info := protomsg . Clone ( info )
215
+ info := d . info
213
216
info .Id = uuid .New ().String ()
214
217
weavelet , err := spawn (ctx , info , d , logger , tmpDir )
215
218
if err != nil {
@@ -324,20 +327,34 @@ func (d *deployer) VerifyServerCertificate(context.Context, *protos.VerifyServer
324
327
}
325
328
326
329
// testComponents tests that the components spawned by d are working properly.
327
- func testComponents (d * deployer ) {
328
- d .t .Helper ()
329
- const want = 42
330
- for _ , name := range d .placedAt [componenta ] {
331
- x , err := d .weavelets [name ].wlet .GetIntf (reflection .Type [a ]())
330
+ func testComponents (dep * deployer ) {
331
+ dep .t .Helper ()
332
+ for _ , name := range dep .placedAt [componenta ] {
333
+ x , err := dep .weavelets [name ].wlet .GetIntf (reflection .Type [a ]())
332
334
if err != nil {
333
- d .t .Fatal (err )
335
+ dep .t .Fatal (err )
334
336
}
335
- got , err := x .(a ).A (d .ctx , want )
337
+ const want = 42
338
+ got , err := x .(a ).A (dep .ctx , want )
336
339
if err != nil {
337
- d .t .Fatal (err )
340
+ dep .t .Fatal (err )
341
+ }
342
+ if got != want {
343
+ dep .t .Fatalf ("A(%d): got %d, want %d" , want , got , want )
344
+ }
345
+ }
346
+ for _ , name := range dep .placedAt [componentd ] {
347
+ x , err := dep .weavelets [name ].wlet .GetIntf (reflection .Type [d ]())
348
+ if err != nil {
349
+ dep .t .Fatal (err )
350
+ }
351
+ got , err := x .(d ).D (dep .ctx )
352
+ if err != nil {
353
+ dep .t .Fatal (err )
338
354
}
355
+ want := dep .info .DeploymentId
339
356
if got != want {
340
- d .t .Fatalf ("A(%d ): got %d , want %d" , want , got , want )
357
+ dep .t .Fatalf ("D( ): got %s , want %s" , got , want )
341
358
}
342
359
}
343
360
}
@@ -799,7 +816,7 @@ func TestMetrics(t *testing.T) {
799
816
t .Fatal (err )
800
817
}
801
818
if got != want {
802
- t .Fatalf ("A (%d): got %d, want %d" , want , got , want )
819
+ t .Fatalf ("C (%d): got %d, want %d" , want , got , want )
803
820
}
804
821
}
805
822
0 commit comments