Skip to content

Commit 540dd83

Browse files
authored
Merge pull request #172 from knoxfighter/Feature/0.18-compatibility
added test for 0.18, no changes in save binary detected yet
2 parents 914cddd + a2149a5 commit 540dd83

File tree

2 files changed

+142
-93
lines changed

2 files changed

+142
-93
lines changed

src/factorio_save_test.go

Lines changed: 142 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,55 @@ import (
44
"testing"
55
)
66

7+
// 0.18 Binary seems equal to 0.17 binary, just the default values changed
8+
func Test0_18(t *testing.T) {
9+
file, err := OpenArchiveFile("factorio_save_testfiles/test_0_18.zip", "level.dat")
10+
if err != nil {
11+
t.Fatalf("Error opening level.dat: %s", err)
12+
}
13+
defer file.Close()
14+
15+
var header SaveHeader
16+
err = header.ReadFrom(file)
17+
if err != nil {
18+
t.Fatalf("Error reading header: %s", err)
19+
}
20+
21+
testHeader := SaveHeader{
22+
FactorioVersion: Version{0, 18, 2, 2},
23+
Campaign: "transport-belt-madness",
24+
Name: "level-01",
25+
BaseMod: "base",
26+
Difficulty: 1,
27+
Finished: false,
28+
PlayerWon: false,
29+
NextLevel: "",
30+
CanContinue: false,
31+
FinishedButContinuing: false,
32+
SavingReplay: false,
33+
AllowNonAdminDebugOptions: true,
34+
LoadedFrom: Version{0, 18, 2},
35+
LoadedFromBuild: 49204,
36+
AllowedCommands: 1,
37+
Mods: []Mod{
38+
{
39+
Version: Version{0, 18, 2},
40+
Name: "base",
41+
},
42+
{
43+
Version: Version{2, 0, 0},
44+
Name: "belt-balancer",
45+
},
46+
{
47+
Version: Version{2, 0, 1},
48+
Name: "train-station-overview",
49+
},
50+
},
51+
}
52+
53+
header.Equals(testHeader, t)
54+
}
55+
756
func Test0_17(t *testing.T) {
857
file, err := OpenArchiveFile("factorio_save_testfiles/test_0_17.zip", "level.dat")
958
if err != nil {
@@ -18,29 +67,29 @@ func Test0_17(t *testing.T) {
1867
}
1968

2069
testHeader := SaveHeader{
21-
FactorioVersion: Version{0,17,1,1},
22-
Campaign: "transport-belt-madness",
23-
Name: "level-01",
24-
BaseMod: "base",
25-
Difficulty: 0,
26-
Finished: false,
27-
PlayerWon: false,
28-
NextLevel: "",
29-
CanContinue: false,
30-
FinishedButContinuing: false,
31-
SavingReplay: true,
70+
FactorioVersion: Version{0, 17, 1, 1},
71+
Campaign: "transport-belt-madness",
72+
Name: "level-01",
73+
BaseMod: "base",
74+
Difficulty: 0,
75+
Finished: false,
76+
PlayerWon: false,
77+
NextLevel: "",
78+
CanContinue: false,
79+
FinishedButContinuing: false,
80+
SavingReplay: true,
3281
AllowNonAdminDebugOptions: true,
33-
LoadedFrom: Version{0,17,1},
34-
LoadedFromBuild: 43001,
35-
AllowedCommands: 1,
36-
Mods: []Mod {
82+
LoadedFrom: Version{0, 17, 1},
83+
LoadedFromBuild: 43001,
84+
AllowedCommands: 1,
85+
Mods: []Mod{
3786
{
38-
Version: Version{0,2,0},
39-
Name: "Warehousing",
87+
Version: Version{0, 2, 0},
88+
Name: "Warehousing",
4089
},
4190
{
42-
Version: Version{0,17,1},
43-
Name: "base",
91+
Version: Version{0, 17, 1},
92+
Name: "base",
4493
},
4594
},
4695
}
@@ -62,29 +111,29 @@ func Test0_16(t *testing.T) {
62111
}
63112

64113
testHeader := SaveHeader{
65-
FactorioVersion: Version{0,16,51,0},
66-
Campaign: "transport-belt-madness",
67-
Name: "level-01",
68-
BaseMod: "base",
69-
Difficulty: 0,
70-
Finished: false,
71-
PlayerWon: false,
72-
NextLevel: "",
73-
CanContinue: false,
74-
FinishedButContinuing: false,
75-
SavingReplay: true,
114+
FactorioVersion: Version{0, 16, 51, 0},
115+
Campaign: "transport-belt-madness",
116+
Name: "level-01",
117+
BaseMod: "base",
118+
Difficulty: 0,
119+
Finished: false,
120+
PlayerWon: false,
121+
NextLevel: "",
122+
CanContinue: false,
123+
FinishedButContinuing: false,
124+
SavingReplay: true,
76125
AllowNonAdminDebugOptions: true,
77-
LoadedFrom: Version{0,16,51},
78-
LoadedFromBuild: 36654,
79-
AllowedCommands: 1,
80-
Mods: []Mod {
126+
LoadedFrom: Version{0, 16, 51},
127+
LoadedFromBuild: 36654,
128+
AllowedCommands: 1,
129+
Mods: []Mod{
81130
{
82-
Version: Version{0,1,3},
83-
Name: "Warehousing",
131+
Version: Version{0, 1, 3},
132+
Name: "Warehousing",
84133
},
85134
{
86-
Version: Version{0,16,51},
87-
Name: "base",
135+
Version: Version{0, 16, 51},
136+
Name: "base",
88137
},
89138
},
90139
}
@@ -106,28 +155,28 @@ func Test0_15(t *testing.T) {
106155
}
107156

108157
testHeader := SaveHeader{
109-
FactorioVersion: Version{0,15,40,0},
110-
Campaign: "transport-belt-madness",
111-
Name: "level-01",
112-
BaseMod: "base",
113-
Difficulty: 0,
114-
Finished: false,
115-
PlayerWon: false,
116-
NextLevel: "",
117-
CanContinue: false,
158+
FactorioVersion: Version{0, 15, 40, 0},
159+
Campaign: "transport-belt-madness",
160+
Name: "level-01",
161+
BaseMod: "base",
162+
Difficulty: 0,
163+
Finished: false,
164+
PlayerWon: false,
165+
NextLevel: "",
166+
CanContinue: false,
118167
FinishedButContinuing: false,
119-
SavingReplay: true,
120-
LoadedFrom: Version{0,15,40},
121-
LoadedFromBuild: 30950,
122-
AllowedCommands: 1,
123-
Mods: []Mod {
168+
SavingReplay: true,
169+
LoadedFrom: Version{0, 15, 40},
170+
LoadedFromBuild: 30950,
171+
AllowedCommands: 1,
172+
Mods: []Mod{
124173
{
125-
Version: Version{0,0,13},
126-
Name: "Warehousing",
174+
Version: Version{0, 0, 13},
175+
Name: "Warehousing",
127176
},
128177
{
129-
Version: Version{0,15,40},
130-
Name: "base",
178+
Version: Version{0, 15, 40},
179+
Name: "base",
131180
},
132181
},
133182
}
@@ -149,28 +198,28 @@ func Test0_14(t *testing.T) {
149198
}
150199

151200
testHeader := SaveHeader{
152-
FactorioVersion: Version{0,14,23,0},
153-
Campaign: "transport-belt-madness",
154-
Name: "level-01",
155-
BaseMod: "base",
156-
Difficulty: 1,
157-
Finished: false,
158-
PlayerWon: false,
159-
NextLevel: "",
160-
CanContinue: false,
201+
FactorioVersion: Version{0, 14, 23, 0},
202+
Campaign: "transport-belt-madness",
203+
Name: "level-01",
204+
BaseMod: "base",
205+
Difficulty: 1,
206+
Finished: false,
207+
PlayerWon: false,
208+
NextLevel: "",
209+
CanContinue: false,
161210
FinishedButContinuing: false,
162-
SavingReplay: true,
163-
LoadedFrom: Version{0,14,23},
164-
LoadedFromBuild: 25374,
165-
AllowedCommands: 1,
166-
Mods: []Mod {
211+
SavingReplay: true,
212+
LoadedFrom: Version{0, 14, 23},
213+
LoadedFromBuild: 25374,
214+
AllowedCommands: 1,
215+
Mods: []Mod{
167216
{
168-
Version: Version{0,0,11},
169-
Name: "Warehousing",
217+
Version: Version{0, 0, 11},
218+
Name: "Warehousing",
170219
},
171220
{
172-
Version: Version{0,14,23},
173-
Name: "base",
221+
Version: Version{0, 14, 23},
222+
Name: "base",
174223
},
175224
},
176225
}
@@ -192,28 +241,28 @@ func Test0_13(t *testing.T) {
192241
}
193242

194243
testHeader := SaveHeader{
195-
FactorioVersion: Version{0,13,20,0},
196-
Campaign: "transport-belt-madness",
197-
Name: "level-01",
198-
BaseMod: "base",
199-
Difficulty: 1,
200-
Finished: false,
201-
PlayerWon: false,
202-
NextLevel: "",
203-
CanContinue: false,
244+
FactorioVersion: Version{0, 13, 20, 0},
245+
Campaign: "transport-belt-madness",
246+
Name: "level-01",
247+
BaseMod: "base",
248+
Difficulty: 1,
249+
Finished: false,
250+
PlayerWon: false,
251+
NextLevel: "",
252+
CanContinue: false,
204253
FinishedButContinuing: false,
205-
SavingReplay: true,
206-
LoadedFrom: Version{0,13,20},
207-
LoadedFromBuild: 24011,
208-
AllowedCommands: 1,
209-
Mods: []Mod {
254+
SavingReplay: true,
255+
LoadedFrom: Version{0, 13, 20},
256+
LoadedFromBuild: 24011,
257+
AllowedCommands: 1,
258+
Mods: []Mod{
210259
{
211-
Version: Version{1,1,0},
212-
Name: "Extra-Virtual-Signals",
260+
Version: Version{1, 1, 0},
261+
Name: "Extra-Virtual-Signals",
213262
},
214263
{
215-
Version: Version{0,13,20},
216-
Name: "base",
264+
Version: Version{0, 13, 20},
265+
Name: "base",
217266
},
218267
},
219268
}
@@ -234,7 +283,7 @@ func (h *SaveHeader) Equals(other SaveHeader, t *testing.T) {
234283
if h.BaseMod != other.BaseMod {
235284
t.Errorf("BaseMod not equal: %s --- %s", h.BaseMod, other.BaseMod)
236285
}
237-
if h.Difficulty != other.Difficulty {
286+
if h.Difficulty != other.Difficulty {
238287
t.Errorf("Difficulty not equal: %d --- %d", h.Difficulty, other.Difficulty)
239288
}
240289
if h.Finished != other.Finished {
545 KB
Binary file not shown.

0 commit comments

Comments
 (0)