Skip to content

Commit 01702d7

Browse files
authored
Merge pull request #591 from kyleklaussconn/filestore-test-server
Adds filestore option to acceptance test server
2 parents efa0bdd + 3a6e84c commit 01702d7

File tree

5 files changed

+38
-12
lines changed

5 files changed

+38
-12
lines changed

.github/workflows/ci.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ jobs:
3737
strategy:
3838
matrix:
3939
go: [1.21]
40+
store-type:
41+
- memory
42+
- file
4043
fix-version:
4144
-
4245
- fix40
@@ -67,4 +70,5 @@ jobs:
6770
GO111MODULE: on
6871
MONGODB_TEST_CXN: mongodb://localhost:27017
6972
FIX_TEST: ${{ matrix.fix-version }}
73+
STORE_TYPE: ${{ matrix.store-type }}
7074
run: if [ -z $FIX_TEST ]; then make build-src && make test-ci; else make generate-ci && make build && make $FIX_TEST; fi

Makefile

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,21 +31,21 @@ lint: linters-install
3131
build-test-srv:
3232
cd _test; go build -o echo_server ./test-server/
3333
fix40:
34-
cd _test; ./runat.sh $@.cfg 5001 "definitions/server/$@/*.def"
34+
cd _test; ./runat.sh $@.cfg 5001 $(STORE_TYPE) "definitions/server/$@/*.def"
3535
fix41:
36-
cd _test; ./runat.sh $@.cfg 5002 "definitions/server/$@/*.def"
36+
cd _test; ./runat.sh $@.cfg 5002 $(STORE_TYPE) "definitions/server/$@/*.def"
3737
fix42:
38-
cd _test; ./runat.sh $@.cfg 5003 "definitions/server/$@/*.def"
38+
cd _test; ./runat.sh $@.cfg 5003 $(STORE_TYPE) "definitions/server/$@/*.def"
3939
fix43:
40-
cd _test; ./runat.sh $@.cfg 5004 "definitions/server/$@/*.def"
40+
cd _test; ./runat.sh $@.cfg 5004 $(STORE_TYPE) "definitions/server/$@/*.def"
4141
fix44:
42-
cd _test; ./runat.sh $@.cfg 5005 "definitions/server/$@/*.def"
42+
cd _test; ./runat.sh $@.cfg 5005 $(STORE_TYPE) "definitions/server/$@/*.def"
4343
fix50:
44-
cd _test; ./runat.sh $@.cfg 5006 "definitions/server/$@/*.def"
44+
cd _test; ./runat.sh $@.cfg 5006 $(STORE_TYPE) "definitions/server/$@/*.def"
4545
fix50sp1:
46-
cd _test; ./runat.sh $@.cfg 5007 "definitions/server/$@/*.def"
46+
cd _test; ./runat.sh $@.cfg 5007 $(STORE_TYPE) "definitions/server/$@/*.def"
4747
fix50sp2:
48-
cd _test; ./runat.sh $@.cfg 5008 "definitions/server/$@/*.def"
48+
cd _test; ./runat.sh $@.cfg 5008 $(STORE_TYPE) "definitions/server/$@/*.def"
4949

5050
ACCEPT_SUITE=fix40 fix41 fix42 fix43 fix44 fix50 fix50sp1 fix50sp2
5151
accept: $(ACCEPT_SUITE)

_test/runat.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
CFG=$1
44
PORT=$2
5-
TESTS=$3
5+
STORETYPE=$3
6+
TESTS=$4
67

7-
./echo_server $CFG &
8+
./echo_server $CFG $STORETYPE &
89
pid=$!
910

1011
ruby -I. Runner.rb 127.0.0.1 $PORT $TESTS

_test/test-server/main.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,12 @@ import (
77
"log"
88
"os"
99
"os/signal"
10+
"path"
11+
"strings"
12+
"time"
1013

1114
"github.com/quickfixgo/quickfix"
15+
"github.com/quickfixgo/quickfix/config"
1216
field "github.com/quickfixgo/quickfix/gen/field"
1317
tag "github.com/quickfixgo/quickfix/gen/tag"
1418
)
@@ -131,7 +135,21 @@ func main() {
131135
return
132136
}
133137

134-
acceptor, err := quickfix.NewAcceptor(app, quickfix.NewMemoryStoreFactory(), appSettings, fileLogFactory)
138+
storeType := os.Args[2]
139+
140+
var acceptor *quickfix.Acceptor
141+
switch strings.ToUpper(storeType) {
142+
case "FILE":
143+
fileStoreRootPath := path.Join(os.TempDir(), fmt.Sprintf("FileStoreTestSuite-%d", os.Getpid()))
144+
fileStorePath := path.Join(fileStoreRootPath, fmt.Sprintf("%d", time.Now().UnixNano()))
145+
appSettings.GlobalSettings().Set(config.FileStorePath, fileStorePath)
146+
acceptor, err = quickfix.NewAcceptor(app, quickfix.NewFileStoreFactory(appSettings), appSettings, fileLogFactory)
147+
case "MEMORY":
148+
acceptor, err = quickfix.NewAcceptor(app, quickfix.NewMemoryStoreFactory(), appSettings, fileLogFactory)
149+
default:
150+
acceptor, err = quickfix.NewAcceptor(app, quickfix.NewMemoryStoreFactory(), appSettings, fileLogFactory)
151+
}
152+
135153
if err != nil {
136154
fmt.Println("Unable to create Acceptor: ", err)
137155
return

filestore.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,10 @@ func (f fileStoreFactory) Create(sessionID SessionID) (msgStore MessageStore, er
7676

7777
dirname, err := sessionSettings.Setting(config.FileStorePath)
7878
if err != nil {
79-
return nil, err
79+
dirname, err = globalSettings.Setting(config.FileStorePath)
80+
if err != nil {
81+
return nil, err
82+
}
8083
}
8184
var fsync bool
8285
if sessionSettings.HasSetting(config.FileStoreSync) {

0 commit comments

Comments
 (0)