Skip to content

Commit 7e6991b

Browse files
committed
Fixed more integration bugs.
1 parent 7637cc2 commit 7e6991b

File tree

6 files changed

+34
-140
lines changed

6 files changed

+34
-140
lines changed

distributor-commands_test.go

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,6 @@ var loginTests = []struct {
6767

6868
// Functions
6969

70-
// testAddr returns the addr to use in tests
71-
func testAddr() string {
72-
return fmt.Sprintf("%s:%s", testEnv.Config.Distributor.PublicIP, testEnv.Config.Distributor.Port)
73-
}
74-
7570
func TestMain(m *testing.M) {
7671

7772
var err error
@@ -100,7 +95,7 @@ func TestMain(m *testing.M) {
10095
func TestCapability(t *testing.T) {
10196

10297
// Connect to IMAP distributor.
103-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
98+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
10499
if err != nil {
105100
t.Fatalf("[imap.TestCapability] Error during connection attempt to IMAP distributor: %s\n", err.Error())
106101
}
@@ -164,7 +159,7 @@ func TestLogout(t *testing.T) {
164159
var answer string
165160

166161
// Connect to IMAP distributor.
167-
conn, err := tls.Dial("tcp", (testEnv.Config.Distributor.PublicIP + ":" + testEnv.Config.Distributor.Port), testEnv.TLSConfig)
162+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
168163
if err != nil {
169164
t.Fatalf("[imap.TestLogout] Error during connection attempt to IMAP distributor: %s\n", err.Error())
170165
}
@@ -223,7 +218,7 @@ func TestLogout(t *testing.T) {
223218
func TestStartTLS(t *testing.T) {
224219

225220
// Connect to IMAP server.
226-
conn, err := tls.Dial("tcp", (testEnv.Config.Distributor.PublicIP + ":" + testEnv.Config.Distributor.Port), testEnv.TLSConfig)
221+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
227222
if err != nil {
228223
t.Fatalf("[imap.TestStartTLS] Error during connection attempt to IMAP server: %s\n", err.Error())
229224
}
@@ -268,7 +263,7 @@ func TestStartTLS(t *testing.T) {
268263
func TestLogin(t *testing.T) {
269264

270265
// Connect to IMAP distributor.
271-
conn, err := tls.Dial("tcp", (testEnv.Config.Distributor.PublicIP + ":" + testEnv.Config.Distributor.Port), testEnv.TLSConfig)
266+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
272267
if err != nil {
273268
t.Fatalf("[imap.TestLogin] Error during connection attempt to IMAP distributor: %s\n", err.Error())
274269
}

distributor_test.go

Lines changed: 5 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package main
22

33
import (
4-
"log"
54
"testing"
65
"time"
76

@@ -18,71 +17,23 @@ func TestInitDistributor(t *testing.T) {
1817
// Read configuration from file.
1918
conf, err := config.LoadConfig("./test-config.toml")
2019
if err != nil {
21-
t.Fatalf("[imap.TestInitDistributor] Expected loading of configuration file not to fail but: '%s'\n", err.Error())
20+
t.Fatalf("[imap.TestInitDistributor] Expected loading of configuration file not to fail but: %v", err)
2221
}
2322

24-
workerConf := conf.Workers["worker-1"]
25-
26-
// Set different ports for this test to
23+
// Set different port for this test to
2724
// avoid conflicting binds.
2825
conf.Distributor.Port = "39933"
29-
workerConf.MailPort = "40001"
30-
workerConf.SyncPort = "50001"
31-
conf.Workers["worker-1"] = workerConf
32-
conf.Storage.MailPort = "41000"
33-
conf.Storage.SyncPort = "51000"
34-
35-
go func() {
36-
37-
// Correct storage initialization.
38-
storage, err := imap.InitStorage(conf)
39-
if err != nil {
40-
t.Fatalf("[imap.TestInitDistributor] Expected correct storage initialization but failed with: '%s'\n", err.Error())
41-
}
42-
43-
// Close the socket after 500ms.
44-
time.AfterFunc((1000 * time.Millisecond), func() {
45-
log.Printf("[imap.TestInitDistributor] Closing storage socket.\n")
46-
storage.MailSocket.Close()
47-
storage.SyncSocket.Close()
48-
})
49-
50-
// Run the storage node.
51-
_ = storage.Run()
52-
}()
53-
54-
time.Sleep(400 * time.Millisecond)
55-
56-
go func() {
57-
58-
// Correct worker initialization.
59-
worker, err := imap.InitWorker(conf, "worker-1")
60-
if err != nil {
61-
t.Fatalf("[imap.TestInitDistributor] Expected correct worker-1 initialization but failed with: '%s'\n", err.Error())
62-
}
63-
64-
// Close the socket after 500ms.
65-
time.AfterFunc((600 * time.Millisecond), func() {
66-
log.Printf("[imap.TestInitDistributor] Closing worker-1 socket.\n")
67-
worker.MailSocket.Close()
68-
worker.SyncSocket.Close()
69-
})
70-
71-
// Run the worker.
72-
_ = worker.Run()
73-
}()
74-
75-
time.Sleep(400 * time.Millisecond)
7626

27+
// Create an authenticator.
7728
authenticator, err := initAuthenticator(conf)
7829
if err != nil {
79-
log.Fatalf("[imap.TestInitDistributor] Failed to initialize authenticator: %v", err)
30+
t.Fatalf("[imap.TestInitDistributor] Failed to initialize authenticator: %v", err)
8031
}
8132

8233
// Correct distributor initialization.
8334
distr, err := imap.InitDistributor(conf, authenticator)
8435
if err != nil {
85-
t.Fatalf("[imap.TestInitDistributor] Expected correct distributor initialization but failed with: '%s'\n", err.Error())
36+
t.Fatalf("[imap.TestInitDistributor] Expected correct distributor initialization but failed with: %v", err)
8637
}
8738

8839
distr.Socket.Close()

imap-node_test.go

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ var proxiedExpungeTests = []struct {
307307
func TestSelect(t *testing.T) {
308308

309309
// Connect to IMAP server.
310-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
310+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
311311
if err != nil {
312312
t.Fatalf("[imap.TestSelect] Error during connection attempt to IMAP server: %s\n", err.Error())
313313
}
@@ -372,7 +372,7 @@ func TestSelect(t *testing.T) {
372372
func TestCreate(t *testing.T) {
373373

374374
// Connect to IMAP server.
375-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
375+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
376376
if err != nil {
377377
t.Fatalf("[imap.TestCreate] Error during connection attempt to IMAP server: %s\n", err.Error())
378378
}
@@ -437,7 +437,7 @@ func TestCreate(t *testing.T) {
437437
func TestDelete(t *testing.T) {
438438

439439
// Connect to IMAP server.
440-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
440+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
441441
if err != nil {
442442
t.Fatalf("[imap.TestDelete] Error during connection attempt to IMAP server: %s\n", err.Error())
443443
}
@@ -502,7 +502,7 @@ func TestDelete(t *testing.T) {
502502
func TestList(t *testing.T) {
503503

504504
// Connect to IMAP server.
505-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
505+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
506506
if err != nil {
507507
t.Fatalf("[imap.TestList] Error during connection attempt to IMAP server: %s\n", err.Error())
508508
}
@@ -567,7 +567,7 @@ func TestList(t *testing.T) {
567567
func TestAppend(t *testing.T) {
568568

569569
// Connect to IMAP server.
570-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
570+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
571571
if err != nil {
572572
t.Fatalf("[imap.TestAppend] Error during connection attempt to IMAP server: %s\n", err.Error())
573573
}
@@ -642,7 +642,7 @@ func TestAppend(t *testing.T) {
642642
func TestStore(t *testing.T) {
643643

644644
// Connect to IMAP server.
645-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
645+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
646646
if err != nil {
647647
t.Fatalf("[imap.TestStore] Error during connection attempt to IMAP server: %s\n", err.Error())
648648
}
@@ -670,7 +670,7 @@ func TestStore(t *testing.T) {
670670
// the used connection.
671671
c.Terminate()
672672

673-
conn, err = tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
673+
conn, err = tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
674674
if err != nil {
675675
t.Fatalf("[imap.TestStore] Error during connection attempt to IMAP server: %s\n", err.Error())
676676
}
@@ -748,7 +748,7 @@ func TestStore(t *testing.T) {
748748
func TestExpunge(t *testing.T) {
749749

750750
// Connect to IMAP server.
751-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
751+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
752752
if err != nil {
753753
t.Fatalf("[imap.TestExpunge] Error during connection attempt to IMAP server: %s\n", err.Error())
754754
}
@@ -823,7 +823,7 @@ func TestExpunge(t *testing.T) {
823823
func TestProxiedSelect(t *testing.T) {
824824

825825
// Connect to IMAP server.
826-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
826+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
827827
if err != nil {
828828
t.Fatalf("[imap.TestProxiedSelect] Error during connection attempt to IMAP server: %s\n", err.Error())
829829
}
@@ -888,7 +888,7 @@ func TestProxiedSelect(t *testing.T) {
888888
func TestProxiedCreate(t *testing.T) {
889889

890890
// Connect to IMAP server.
891-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
891+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
892892
if err != nil {
893893
t.Fatalf("[imap.TestProxiedCreate] Error during connection attempt to IMAP server: %s\n", err.Error())
894894
}
@@ -953,7 +953,7 @@ func TestProxiedCreate(t *testing.T) {
953953
func TestProxiedDelete(t *testing.T) {
954954

955955
// Connect to IMAP server.
956-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
956+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
957957
if err != nil {
958958
t.Fatalf("[imap.TestProxiedDelete] Error during connection attempt to IMAP server: %s\n", err.Error())
959959
}
@@ -1018,7 +1018,7 @@ func TestProxiedDelete(t *testing.T) {
10181018
func TestProxiedList(t *testing.T) {
10191019

10201020
// Connect to IMAP server.
1021-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
1021+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
10221022
if err != nil {
10231023
t.Fatalf("[imap.TestProxiedList] Error during connection attempt to IMAP server: %s\n", err.Error())
10241024
}
@@ -1083,7 +1083,7 @@ func TestProxiedList(t *testing.T) {
10831083
func TestProxiedAppend(t *testing.T) {
10841084

10851085
// Connect to IMAP server.
1086-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
1086+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
10871087
if err != nil {
10881088
t.Fatalf("[imap.TestProxiedAppend] Error during connection attempt to IMAP server: %s\n", err.Error())
10891089
}
@@ -1158,7 +1158,7 @@ func TestProxiedAppend(t *testing.T) {
11581158
func TestProxiedStore(t *testing.T) {
11591159

11601160
// Connect to IMAP server.
1161-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
1161+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
11621162
if err != nil {
11631163
t.Fatalf("[imap.TestProxiedStore] Error during connection attempt to IMAP server: %s\n", err.Error())
11641164
}
@@ -1186,7 +1186,7 @@ func TestProxiedStore(t *testing.T) {
11861186
// the used connection.
11871187
c.Terminate()
11881188

1189-
conn, err = tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
1189+
conn, err = tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
11901190
if err != nil {
11911191
t.Fatalf("[imap.TestProxiedStore] Error during connection attempt to IMAP server: %s\n", err.Error())
11921192
}
@@ -1264,7 +1264,7 @@ func TestProxiedStore(t *testing.T) {
12641264
func TestProxiedExpunge(t *testing.T) {
12651265

12661266
// Connect to IMAP server.
1267-
conn, err := tls.Dial("tcp", testAddr(), testEnv.TLSConfig)
1267+
conn, err := tls.Dial("tcp", testEnv.Addr, testEnv.TLSConfig)
12681268
if err != nil {
12691269
t.Fatalf("[imap.TestProxiedExpunge] Error during connection attempt to IMAP server: %s\n", err.Error())
12701270
}

storage_test.go

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package main
22

33
import (
4-
"log"
54
"testing"
65
"time"
76

@@ -18,45 +17,18 @@ func TestInitStorage(t *testing.T) {
1817
// Read configuration from file.
1918
conf, err := config.LoadConfig("./test-config.toml")
2019
if err != nil {
21-
t.Fatalf("[imap.TestInitStorage] Expected loading of configuration file not to fail but: '%s'\n", err.Error())
20+
t.Fatalf("[imap.TestInitStorage] Expected loading of configuration file not to fail but: %v\n", err)
2221
}
2322

24-
workerConf := conf.Workers["worker-1"]
25-
2623
// Set different ports for this test to
2724
// avoid conflicting binds.
28-
conf.Distributor.Port = "39933"
29-
workerConf.MailPort = "40001"
30-
workerConf.SyncPort = "50001"
31-
conf.Workers["worker-1"] = workerConf
3225
conf.Storage.MailPort = "41000"
3326
conf.Storage.SyncPort = "51000"
3427

35-
go func() {
36-
37-
// Correct worker initialization.
38-
worker, err := imap.InitWorker(conf, "worker-1")
39-
if err != nil {
40-
t.Fatalf("[imap.TestInitStorage] Expected correct worker-1 initialization but failed with: '%s'\n", err.Error())
41-
}
42-
43-
// Close the socket after 500ms.
44-
time.AfterFunc((600 * time.Millisecond), func() {
45-
log.Printf("[imap.TestInitStorage] Closing worker-1 socket.\n")
46-
worker.MailSocket.Close()
47-
worker.SyncSocket.Close()
48-
})
49-
50-
// Run the worker.
51-
_ = worker.Run()
52-
}()
53-
54-
time.Sleep(400 * time.Millisecond)
55-
5628
// Correct storage initialization.
5729
storage, err := imap.InitStorage(conf)
5830
if err != nil {
59-
t.Fatalf("[imap.TestInitStorage] Expected correct storage initialization but failed with: '%s'\n", err.Error())
31+
t.Fatalf("[imap.TestInitStorage] Expected correct storage initialization but failed with: %v\n", err)
6032
}
6133

6234
// Close the sockets.

utils/utils.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package utils
22

33
import (
4-
"crypto/tls"
4+
"fmt"
55

6+
"crypto/tls"
67
"crypto/x509"
7-
"fmt"
88
"io/ioutil"
99

1010
"github.com/numbleroot/pluto/config"
@@ -18,6 +18,7 @@ import (
1818
type TestEnv struct {
1919
Config *config.Config
2020
TLSConfig *tls.Config
21+
Addr string
2122
DownDistr chan struct{}
2223
DownWorker chan struct{}
2324
DownStorage chan struct{}
@@ -65,6 +66,7 @@ func CreateTestEnv(configFilePath string) (*TestEnv, error) {
6566
return &TestEnv{
6667
Config: config,
6768
TLSConfig: tlsConfig,
69+
Addr: fmt.Sprintf("%s:%s", config.Distributor.PublicIP, config.Distributor.Port),
6870
DownDistr: make(chan struct{}),
6971
DownWorker: make(chan struct{}),
7072
DownStorage: make(chan struct{}),

0 commit comments

Comments
 (0)