Skip to content

Commit d24c029

Browse files
committed
itest: merge server harness and UniverseRPCHarness
The original server harness was meant to be the actual universe RPC server from the beginning. So we can merge the two into a single one and start/use that by default.
1 parent 5b38a57 commit d24c029

File tree

7 files changed

+85
-199
lines changed

7 files changed

+85
-199
lines changed

itest/aperture_harness.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ type ApertureHarness struct {
2727

2828
// NewApertureHarness creates a new instance of the aperture service. It returns
2929
// a harness which includes useful values for testing.
30-
func NewApertureHarness(t *testing.T, port int) ApertureHarness {
30+
func NewApertureHarness(t *testing.T, port int) *ApertureHarness {
3131
// Create a temporary directory for the aperture service to use.
3232
baseDir := filepath.Join(t.TempDir(), "aperture")
3333
err := os.MkdirAll(baseDir, os.ModePerm)
@@ -55,7 +55,7 @@ func NewApertureHarness(t *testing.T, port int) ApertureHarness {
5555
}
5656
service := aperture.NewAperture(cfg)
5757

58-
return ApertureHarness{
58+
return &ApertureHarness{
5959
ListenAddr: listenAddr,
6060
Service: service,
6161
}

itest/integration_test.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,10 @@ func TestTaprootAssetsDaemon(t *testing.T) {
5959
// The universe server and tapd client are both freshly
6060
// created and later discarded for each test run to
6161
// assure no state is taken over between runs.
62-
tapdHarness, universeServer, proofCourier :=
63-
setupHarnesses(
64-
t1, ht, lndHarness,
65-
testCase.proofCourierType,
66-
)
62+
tapdHarness, uniHarness, proofCourier := setupHarnesses(
63+
t1, ht, lndHarness,
64+
testCase.proofCourierType,
65+
)
6766
lndHarness.EnsureConnected(
6867
lndHarness.Alice, lndHarness.Bob,
6968
)
@@ -72,8 +71,8 @@ func TestTaprootAssetsDaemon(t *testing.T) {
7271
lndHarness.Bob.AddToLogf(logLine)
7372

7473
ht := ht.newHarnessTest(
75-
t1, lndHarness, universeServer,
76-
tapdHarness, proofCourier,
74+
t1, lndHarness, uniHarness, tapdHarness,
75+
proofCourier,
7776
)
7877

7978
// Now we have everything to run the test case.

itest/server_harness.go

Lines changed: 0 additions & 108 deletions
This file was deleted.

itest/tapd_harness.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ func newTapdHarness(t *testing.T, ht *harnessTest, cfg tapdConfig,
213213
typedProofCourier.ListenAddr,
214214
)
215215

216-
case *UniverseRPCHarness:
216+
case *universeServerHarness:
217217
finalCfg.DefaultProofCourierAddr = fmt.Sprintf(
218218
"%s://%s", proof.UniverseRpcCourierType,
219219
typedProofCourier.ListenAddr,

itest/test_harness.go

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ type harnessTest struct {
9595
// nil if not yet set up.
9696
lndHarness *lntest.HarnessTest
9797

98-
universeServer *serverHarness
98+
universeServer *universeServerHarness
9999

100100
tapd *tapdHarness
101101

@@ -107,7 +107,7 @@ type harnessTest struct {
107107
// newHarnessTest creates a new instance of a harnessTest from a regular
108108
// testing.T instance.
109109
func (h *harnessTest) newHarnessTest(t *testing.T, net *lntest.HarnessTest,
110-
universeServer *serverHarness, tapd *tapdHarness,
110+
universeServer *universeServerHarness, tapd *tapdHarness,
111111
proofCourier proof.CourierHarness) *harnessTest {
112112

113113
return &harnessTest{
@@ -174,7 +174,11 @@ func (h *harnessTest) LogfTimestamped(format string, args ...interface{}) {
174174

175175
// shutdown stops both the mock universe and tapd server.
176176
func (h *harnessTest) shutdown(_ *testing.T) error {
177-
h.universeServer.stop()
177+
err := h.universeServer.Stop()
178+
if err != nil {
179+
return fmt.Errorf("unable to stop universe server harness: "+
180+
"%w", err)
181+
}
178182

179183
if h.proofCourier != nil {
180184
err := h.proofCourier.Stop()
@@ -184,7 +188,7 @@ func (h *harnessTest) shutdown(_ *testing.T) error {
184188
}
185189
}
186190

187-
err := h.tapd.stop(!*noDelete)
191+
err = h.tapd.stop(!*noDelete)
188192
if err != nil {
189193
return fmt.Errorf("unable to stop tapd: %v", err)
190194
}
@@ -269,36 +273,34 @@ func nextAvailablePort() int {
269273
func setupHarnesses(t *testing.T, ht *harnessTest,
270274
lndHarness *lntest.HarnessTest,
271275
proofCourierType proof.CourierType) (*tapdHarness,
272-
*serverHarness, proof.CourierHarness) {
276+
*universeServerHarness, proof.CourierHarness) {
277+
278+
universeServer := newUniverseServerHarness(t, ht, lndHarness.Bob)
279+
280+
t.Logf("Starting universe server harness, listening on %v",
281+
universeServer.ListenAddr)
282+
283+
err := universeServer.Start(nil)
284+
require.NoError(t, err, "universe server harness")
273285

274286
// If a proof courier type is specified, start test specific proof
275287
// courier service and attach to test harness.
276288
var proofCourier proof.CourierHarness
277289
switch proofCourierType {
278290
case proof.HashmailCourierType:
279291
port := nextAvailablePort()
280-
apHarness := NewApertureHarness(ht.t, port)
281-
proofCourier = &apHarness
292+
apertureHarness := NewApertureHarness(ht.t, port)
293+
err := apertureHarness.Start(nil)
294+
require.NoError(t, err, "aperture proof courier harness")
295+
296+
proofCourier = apertureHarness
282297

283298
// If nothing is specified, we use the universe RPC proof courier by
284299
// default.
285300
default:
286-
proofCourier = NewUniverseRPCHarness(t, ht, lndHarness.Bob)
301+
proofCourier = universeServer
287302
}
288303

289-
// Start the proof courier harness if specified.
290-
if proofCourier != nil {
291-
err := proofCourier.Start(nil)
292-
require.NoError(t, err, "unable to start proof courier harness")
293-
}
294-
295-
mockServerAddr := fmt.Sprintf(
296-
node.ListenerFormat, node.NextAvailablePort(),
297-
)
298-
universeServer := newServerHarness(mockServerAddr)
299-
err := universeServer.start()
300-
require.NoError(t, err)
301-
302304
// Create a tapd that uses Bob and connect it to the universe server.
303305
tapdHarness := setupTapdHarness(
304306
t, ht, lndHarness.Alice, universeServer,
@@ -351,7 +353,7 @@ type Option func(*tapdHarnessParams)
351353
// setupTapdHarness creates a new tapd that connects to the given lnd node
352354
// and to the given universe server.
353355
func setupTapdHarness(t *testing.T, ht *harnessTest,
354-
node *node.HarnessNode, universe *serverHarness,
356+
node *node.HarnessNode, universe *universeServerHarness,
355357
opts ...Option) *tapdHarness {
356358

357359
// Set parameters by executing option functions.
@@ -379,12 +381,10 @@ func setupTapdHarness(t *testing.T, ht *harnessTest,
379381
ho.addrAssetSyncerDisable = params.addrAssetSyncerDisable
380382
}
381383

382-
tapdHarness, err := newTapdHarness(
383-
t, ht, tapdConfig{
384-
NetParams: harnessNetParams,
385-
LndNode: node,
386-
}, harnessOpts,
387-
)
384+
tapdHarness, err := newTapdHarness(t, ht, tapdConfig{
385+
NetParams: harnessNetParams,
386+
LndNode: node,
387+
}, harnessOpts)
388388
require.NoError(t, err)
389389

390390
// Start the tapd harness now.

itest/universe_server_harness.go

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package itest
2+
3+
import (
4+
"testing"
5+
6+
"github.com/lightninglabs/taproot-assets/proof"
7+
"github.com/lightningnetwork/lnd/lntest/node"
8+
"github.com/stretchr/testify/require"
9+
)
10+
11+
type universeServerHarness struct {
12+
// service is the instance of the universe tap service.
13+
service *tapdHarness
14+
15+
// ListenAddr is the address that the service is listening on.
16+
ListenAddr string
17+
}
18+
19+
func newUniverseServerHarness(t *testing.T, ht *harnessTest,
20+
lndHarness *node.HarnessNode) *universeServerHarness {
21+
22+
service, err := newTapdHarness(t, ht, tapdConfig{
23+
NetParams: harnessNetParams,
24+
LndNode: lndHarness,
25+
})
26+
require.NoError(t, err)
27+
28+
return &universeServerHarness{
29+
service: service,
30+
ListenAddr: service.rpcHost(),
31+
}
32+
}
33+
34+
// Start starts the service.
35+
func (h *universeServerHarness) Start(_ chan error) error {
36+
return h.service.start(false)
37+
}
38+
39+
// Stop stops the service.
40+
func (h *universeServerHarness) Stop() error {
41+
// Don't delete temporary data on stop. This will allow us to cleanly
42+
// restart the service mid-test.
43+
return h.service.stop(false)
44+
}
45+
46+
// Ensure that universeServerHarness implements the proof.CourierHarness
47+
// interface.
48+
var _ proof.CourierHarness = (*universeServerHarness)(nil)

itest/universerpc_harness.go

Lines changed: 0 additions & 53 deletions
This file was deleted.

0 commit comments

Comments
 (0)