Skip to content

Commit de2259d

Browse files
gballetkaralabe
authored andcommitted
travis: enable test suite on ARM64 (ethereum#20219)
* travis: Enable ARM support * Include fixes from 20039 * Add a trace to debug the invalid lookup issue * Try increasing the timeout to see if the arm test passes * Investigate the resolver issue * Increase arm64 timeout for clique test * increase timeout in tests for arm64 * Only test the failing tests * Review feedback: don't export epsilon * Remove investigation tricks+include fjl's feeback * Revert the retry ahead of using the mock resolver * Fix rebase errors
1 parent adf007d commit de2259d

File tree

7 files changed

+74
-54
lines changed

7 files changed

+74
-54
lines changed

.travis.yml

+10
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,16 @@ jobs:
3434
# These are the latest Go versions.
3535
- stage: build
3636
os: linux
37+
arch: amd64
38+
dist: xenial
39+
go: 1.13.x
40+
script:
41+
- go run build/ci.go install
42+
- go run build/ci.go test -coverage $TEST_PACKAGES
43+
44+
- stage: build
45+
os: linux
46+
arch: arm64
3747
dist: xenial
3848
go: 1.13.x
3949
script:

consensus/ethash/ethash_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func TestTestMode(t *testing.T) {
4949
if err := ethash.VerifySeal(nil, header); err != nil {
5050
t.Fatalf("unexpected verification error: %v", err)
5151
}
52-
case <-time.NewTimer(time.Second).C:
52+
case <-time.NewTimer(2 * time.Second).C:
5353
t.Error("sealing result timeout")
5454
}
5555
}

eth/handler_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -608,7 +608,7 @@ func testBroadcastBlock(t *testing.T, totalPeers, broadcastExpected int) {
608608
}
609609
}(peer)
610610
}
611-
timeout := time.After(300 * time.Millisecond)
611+
timeout := time.After(time.Second)
612612
var receivedCount int
613613
outer:
614614
for {

metrics/doc.go

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package metrics
2+
3+
const epsilon = 0.0000000000000001
4+
const epsilonPercentile = .00000000001

metrics/ewma_test.go

+52-49
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package metrics
22

3-
import "testing"
3+
import (
4+
"math"
5+
"testing"
6+
)
47

58
func BenchmarkEWMA(b *testing.B) {
69
a := NewEWMA1()
@@ -15,67 +18,67 @@ func TestEWMA1(t *testing.T) {
1518
a := NewEWMA1()
1619
a.Update(3)
1720
a.Tick()
18-
if rate := a.Rate(); 0.6 != rate {
21+
if rate := a.Rate(); math.Abs(0.6-rate) > epsilon {
1922
t.Errorf("initial a.Rate(): 0.6 != %v\n", rate)
2023
}
2124
elapseMinute(a)
22-
if rate := a.Rate(); 0.22072766470286553 != rate {
25+
if rate := a.Rate(); math.Abs(0.22072766470286553-rate) > epsilon {
2326
t.Errorf("1 minute a.Rate(): 0.22072766470286553 != %v\n", rate)
2427
}
2528
elapseMinute(a)
26-
if rate := a.Rate(); 0.08120116994196772 != rate {
29+
if rate := a.Rate(); math.Abs(0.08120116994196772-rate) > epsilon {
2730
t.Errorf("2 minute a.Rate(): 0.08120116994196772 != %v\n", rate)
2831
}
2932
elapseMinute(a)
30-
if rate := a.Rate(); 0.029872241020718428 != rate {
33+
if rate := a.Rate(); math.Abs(0.029872241020718428-rate) > epsilon {
3134
t.Errorf("3 minute a.Rate(): 0.029872241020718428 != %v\n", rate)
3235
}
3336
elapseMinute(a)
34-
if rate := a.Rate(); 0.01098938333324054 != rate {
37+
if rate := a.Rate(); math.Abs(0.01098938333324054-rate) > epsilon {
3538
t.Errorf("4 minute a.Rate(): 0.01098938333324054 != %v\n", rate)
3639
}
3740
elapseMinute(a)
38-
if rate := a.Rate(); 0.004042768199451294 != rate {
41+
if rate := a.Rate(); math.Abs(0.004042768199451294-rate) > epsilon {
3942
t.Errorf("5 minute a.Rate(): 0.004042768199451294 != %v\n", rate)
4043
}
4144
elapseMinute(a)
42-
if rate := a.Rate(); 0.0014872513059998212 != rate {
45+
if rate := a.Rate(); math.Abs(0.0014872513059998212-rate) > epsilon {
4346
t.Errorf("6 minute a.Rate(): 0.0014872513059998212 != %v\n", rate)
4447
}
4548
elapseMinute(a)
46-
if rate := a.Rate(); 0.0005471291793327122 != rate {
49+
if rate := a.Rate(); math.Abs(0.0005471291793327122-rate) > epsilon {
4750
t.Errorf("7 minute a.Rate(): 0.0005471291793327122 != %v\n", rate)
4851
}
4952
elapseMinute(a)
50-
if rate := a.Rate(); 0.00020127757674150815 != rate {
53+
if rate := a.Rate(); math.Abs(0.00020127757674150815-rate) > epsilon {
5154
t.Errorf("8 minute a.Rate(): 0.00020127757674150815 != %v\n", rate)
5255
}
5356
elapseMinute(a)
54-
if rate := a.Rate(); 7.404588245200814e-05 != rate {
57+
if rate := a.Rate(); math.Abs(7.404588245200814e-05-rate) > epsilon {
5558
t.Errorf("9 minute a.Rate(): 7.404588245200814e-05 != %v\n", rate)
5659
}
5760
elapseMinute(a)
58-
if rate := a.Rate(); 2.7239957857491083e-05 != rate {
61+
if rate := a.Rate(); math.Abs(2.7239957857491083e-05-rate) > epsilon {
5962
t.Errorf("10 minute a.Rate(): 2.7239957857491083e-05 != %v\n", rate)
6063
}
6164
elapseMinute(a)
62-
if rate := a.Rate(); 1.0021020474147462e-05 != rate {
65+
if rate := a.Rate(); math.Abs(1.0021020474147462e-05-rate) > epsilon {
6366
t.Errorf("11 minute a.Rate(): 1.0021020474147462e-05 != %v\n", rate)
6467
}
6568
elapseMinute(a)
66-
if rate := a.Rate(); 3.6865274119969525e-06 != rate {
69+
if rate := a.Rate(); math.Abs(3.6865274119969525e-06-rate) > epsilon {
6770
t.Errorf("12 minute a.Rate(): 3.6865274119969525e-06 != %v\n", rate)
6871
}
6972
elapseMinute(a)
70-
if rate := a.Rate(); 1.3561976441886433e-06 != rate {
73+
if rate := a.Rate(); math.Abs(1.3561976441886433e-06-rate) > epsilon {
7174
t.Errorf("13 minute a.Rate(): 1.3561976441886433e-06 != %v\n", rate)
7275
}
7376
elapseMinute(a)
74-
if rate := a.Rate(); 4.989172314621449e-07 != rate {
77+
if rate := a.Rate(); math.Abs(4.989172314621449e-07-rate) > epsilon {
7578
t.Errorf("14 minute a.Rate(): 4.989172314621449e-07 != %v\n", rate)
7679
}
7780
elapseMinute(a)
78-
if rate := a.Rate(); 1.8354139230109722e-07 != rate {
81+
if rate := a.Rate(); math.Abs(1.8354139230109722e-07-rate) > epsilon {
7982
t.Errorf("15 minute a.Rate(): 1.8354139230109722e-07 != %v\n", rate)
8083
}
8184
}
@@ -84,67 +87,67 @@ func TestEWMA5(t *testing.T) {
8487
a := NewEWMA5()
8588
a.Update(3)
8689
a.Tick()
87-
if rate := a.Rate(); 0.6 != rate {
90+
if rate := a.Rate(); math.Abs(0.6-rate) > epsilon {
8891
t.Errorf("initial a.Rate(): 0.6 != %v\n", rate)
8992
}
9093
elapseMinute(a)
91-
if rate := a.Rate(); 0.49123845184678905 != rate {
94+
if rate := a.Rate(); math.Abs(0.49123845184678905-rate) > epsilon {
9295
t.Errorf("1 minute a.Rate(): 0.49123845184678905 != %v\n", rate)
9396
}
9497
elapseMinute(a)
95-
if rate := a.Rate(); 0.4021920276213837 != rate {
98+
if rate := a.Rate(); math.Abs(0.4021920276213837-rate) > epsilon {
9699
t.Errorf("2 minute a.Rate(): 0.4021920276213837 != %v\n", rate)
97100
}
98101
elapseMinute(a)
99-
if rate := a.Rate(); 0.32928698165641596 != rate {
102+
if rate := a.Rate(); math.Abs(0.32928698165641596-rate) > epsilon {
100103
t.Errorf("3 minute a.Rate(): 0.32928698165641596 != %v\n", rate)
101104
}
102105
elapseMinute(a)
103-
if rate := a.Rate(); 0.269597378470333 != rate {
106+
if rate := a.Rate(); math.Abs(0.269597378470333-rate) > epsilon {
104107
t.Errorf("4 minute a.Rate(): 0.269597378470333 != %v\n", rate)
105108
}
106109
elapseMinute(a)
107-
if rate := a.Rate(); 0.2207276647028654 != rate {
110+
if rate := a.Rate(); math.Abs(0.2207276647028654-rate) > epsilon {
108111
t.Errorf("5 minute a.Rate(): 0.2207276647028654 != %v\n", rate)
109112
}
110113
elapseMinute(a)
111-
if rate := a.Rate(); 0.18071652714732128 != rate {
114+
if rate := a.Rate(); math.Abs(0.18071652714732128-rate) > epsilon {
112115
t.Errorf("6 minute a.Rate(): 0.18071652714732128 != %v\n", rate)
113116
}
114117
elapseMinute(a)
115-
if rate := a.Rate(); 0.14795817836496392 != rate {
118+
if rate := a.Rate(); math.Abs(0.14795817836496392-rate) > epsilon {
116119
t.Errorf("7 minute a.Rate(): 0.14795817836496392 != %v\n", rate)
117120
}
118121
elapseMinute(a)
119-
if rate := a.Rate(); 0.12113791079679326 != rate {
122+
if rate := a.Rate(); math.Abs(0.12113791079679326-rate) > epsilon {
120123
t.Errorf("8 minute a.Rate(): 0.12113791079679326 != %v\n", rate)
121124
}
122125
elapseMinute(a)
123-
if rate := a.Rate(); 0.09917933293295193 != rate {
126+
if rate := a.Rate(); math.Abs(0.09917933293295193-rate) > epsilon {
124127
t.Errorf("9 minute a.Rate(): 0.09917933293295193 != %v\n", rate)
125128
}
126129
elapseMinute(a)
127-
if rate := a.Rate(); 0.08120116994196763 != rate {
130+
if rate := a.Rate(); math.Abs(0.08120116994196763-rate) > epsilon {
128131
t.Errorf("10 minute a.Rate(): 0.08120116994196763 != %v\n", rate)
129132
}
130133
elapseMinute(a)
131-
if rate := a.Rate(); 0.06648189501740036 != rate {
134+
if rate := a.Rate(); math.Abs(0.06648189501740036-rate) > epsilon {
132135
t.Errorf("11 minute a.Rate(): 0.06648189501740036 != %v\n", rate)
133136
}
134137
elapseMinute(a)
135-
if rate := a.Rate(); 0.05443077197364752 != rate {
138+
if rate := a.Rate(); math.Abs(0.05443077197364752-rate) > epsilon {
136139
t.Errorf("12 minute a.Rate(): 0.05443077197364752 != %v\n", rate)
137140
}
138141
elapseMinute(a)
139-
if rate := a.Rate(); 0.04456414692860035 != rate {
142+
if rate := a.Rate(); math.Abs(0.04456414692860035-rate) > epsilon {
140143
t.Errorf("13 minute a.Rate(): 0.04456414692860035 != %v\n", rate)
141144
}
142145
elapseMinute(a)
143-
if rate := a.Rate(); 0.03648603757513079 != rate {
146+
if rate := a.Rate(); math.Abs(0.03648603757513079-rate) > epsilon {
144147
t.Errorf("14 minute a.Rate(): 0.03648603757513079 != %v\n", rate)
145148
}
146149
elapseMinute(a)
147-
if rate := a.Rate(); 0.0298722410207183831020718428 != rate {
150+
if rate := a.Rate(); math.Abs(0.0298722410207183831020718428-rate) > epsilon {
148151
t.Errorf("15 minute a.Rate(): 0.0298722410207183831020718428 != %v\n", rate)
149152
}
150153
}
@@ -153,67 +156,67 @@ func TestEWMA15(t *testing.T) {
153156
a := NewEWMA15()
154157
a.Update(3)
155158
a.Tick()
156-
if rate := a.Rate(); 0.6 != rate {
159+
if rate := a.Rate(); math.Abs(0.6-rate) > epsilon {
157160
t.Errorf("initial a.Rate(): 0.6 != %v\n", rate)
158161
}
159162
elapseMinute(a)
160-
if rate := a.Rate(); 0.5613041910189706 != rate {
163+
if rate := a.Rate(); math.Abs(0.5613041910189706-rate) > epsilon {
161164
t.Errorf("1 minute a.Rate(): 0.5613041910189706 != %v\n", rate)
162165
}
163166
elapseMinute(a)
164-
if rate := a.Rate(); 0.5251039914257684 != rate {
167+
if rate := a.Rate(); math.Abs(0.5251039914257684-rate) > epsilon {
165168
t.Errorf("2 minute a.Rate(): 0.5251039914257684 != %v\n", rate)
166169
}
167170
elapseMinute(a)
168-
if rate := a.Rate(); 0.4912384518467888184678905 != rate {
171+
if rate := a.Rate(); math.Abs(0.4912384518467888184678905-rate) > epsilon {
169172
t.Errorf("3 minute a.Rate(): 0.4912384518467888184678905 != %v\n", rate)
170173
}
171174
elapseMinute(a)
172-
if rate := a.Rate(); 0.459557003018789 != rate {
175+
if rate := a.Rate(); math.Abs(0.459557003018789-rate) > epsilon {
173176
t.Errorf("4 minute a.Rate(): 0.459557003018789 != %v\n", rate)
174177
}
175178
elapseMinute(a)
176-
if rate := a.Rate(); 0.4299187863442732 != rate {
179+
if rate := a.Rate(); math.Abs(0.4299187863442732-rate) > epsilon {
177180
t.Errorf("5 minute a.Rate(): 0.4299187863442732 != %v\n", rate)
178181
}
179182
elapseMinute(a)
180-
if rate := a.Rate(); 0.4021920276213831 != rate {
183+
if rate := a.Rate(); math.Abs(0.4021920276213831-rate) > epsilon {
181184
t.Errorf("6 minute a.Rate(): 0.4021920276213831 != %v\n", rate)
182185
}
183186
elapseMinute(a)
184-
if rate := a.Rate(); 0.37625345116383313 != rate {
187+
if rate := a.Rate(); math.Abs(0.37625345116383313-rate) > epsilon {
185188
t.Errorf("7 minute a.Rate(): 0.37625345116383313 != %v\n", rate)
186189
}
187190
elapseMinute(a)
188-
if rate := a.Rate(); 0.3519877317060185 != rate {
191+
if rate := a.Rate(); math.Abs(0.3519877317060185-rate) > epsilon {
189192
t.Errorf("8 minute a.Rate(): 0.3519877317060185 != %v\n", rate)
190193
}
191194
elapseMinute(a)
192-
if rate := a.Rate(); 0.3292869816564153165641596 != rate {
195+
if rate := a.Rate(); math.Abs(0.3292869816564153165641596-rate) > epsilon {
193196
t.Errorf("9 minute a.Rate(): 0.3292869816564153165641596 != %v\n", rate)
194197
}
195198
elapseMinute(a)
196-
if rate := a.Rate(); 0.3080502714195546 != rate {
199+
if rate := a.Rate(); math.Abs(0.3080502714195546-rate) > epsilon {
197200
t.Errorf("10 minute a.Rate(): 0.3080502714195546 != %v\n", rate)
198201
}
199202
elapseMinute(a)
200-
if rate := a.Rate(); 0.2881831806538789 != rate {
203+
if rate := a.Rate(); math.Abs(0.2881831806538789-rate) > epsilon {
201204
t.Errorf("11 minute a.Rate(): 0.2881831806538789 != %v\n", rate)
202205
}
203206
elapseMinute(a)
204-
if rate := a.Rate(); 0.26959737847033216 != rate {
207+
if rate := a.Rate(); math.Abs(0.26959737847033216-rate) > epsilon {
205208
t.Errorf("12 minute a.Rate(): 0.26959737847033216 != %v\n", rate)
206209
}
207210
elapseMinute(a)
208-
if rate := a.Rate(); 0.2522102307052083 != rate {
211+
if rate := a.Rate(); math.Abs(0.2522102307052083-rate) > epsilon {
209212
t.Errorf("13 minute a.Rate(): 0.2522102307052083 != %v\n", rate)
210213
}
211214
elapseMinute(a)
212-
if rate := a.Rate(); 0.23594443252115815 != rate {
215+
if rate := a.Rate(); math.Abs(0.23594443252115815-rate) > epsilon {
213216
t.Errorf("14 minute a.Rate(): 0.23594443252115815 != %v\n", rate)
214217
}
215218
elapseMinute(a)
216-
if rate := a.Rate(); 0.2207276647028646247028654470286553 != rate {
219+
if rate := a.Rate(); math.Abs(0.2207276647028646247028654470286553-rate) > epsilon {
217220
t.Errorf("15 minute a.Rate(): 0.2207276647028646247028654470286553 != %v\n", rate)
218221
}
219222
}

metrics/sample_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package metrics
22

33
import (
4+
"math"
45
"math/rand"
56
"runtime"
67
"testing"
@@ -326,7 +327,7 @@ func testUniformSampleStatistics(t *testing.T, s Sample) {
326327
if 7380.5 != ps[1] {
327328
t.Errorf("75th percentile: 7380.5 != %v\n", ps[1])
328329
}
329-
if 9986.429999999998 != ps[2] {
330+
if math.Abs(9986.429999999998-ps[2]) > epsilonPercentile {
330331
t.Errorf("99th percentile: 9986.429999999998 != %v\n", ps[2])
331332
}
332333
}

miner/worker_test.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,9 @@ func testEmptyWork(t *testing.T, chainConfig *params.ChainConfig, engine consens
340340
}
341341
}
342342
w.fullTaskHook = func() {
343-
time.Sleep(100 * time.Millisecond)
343+
// Aarch64 unit tests are running in a VM on travis, they must
344+
// be given more time to execute.
345+
time.Sleep(time.Second)
344346
}
345347

346348
// Ensure worker has finished initialization
@@ -355,7 +357,7 @@ func testEmptyWork(t *testing.T, chainConfig *params.ChainConfig, engine consens
355357
for i := 0; i < 2; i += 1 {
356358
select {
357359
case <-taskCh:
358-
case <-time.NewTimer(2 * time.Second).C:
360+
case <-time.NewTimer(4 * time.Second).C:
359361
t.Error("new task timeout")
360362
}
361363
}

0 commit comments

Comments
 (0)