Skip to content

Commit 4826b58

Browse files
committed
[SD] Add binary for offline
1 parent 1d43de2 commit 4826b58

File tree

3 files changed

+171
-9
lines changed

3 files changed

+171
-9
lines changed

tests/bin/offline/firmware.elf

21.1 MB
Binary file not shown.

tests/diagrams/offline.json

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
{
2+
"version": 1,
3+
"author": "Uri Shaked",
4+
"editor": "wokwi",
5+
"parts": [
6+
{ "type": "wokwi-breadboard", "id": "bb1", "top": -89.4, "left": -266, "attrs": {} },
7+
{
8+
"type": "wokwi-esp32-devkit-v1",
9+
"id": "esp",
10+
"top": -91.9,
11+
"left": -208.2,
12+
"rotate": 90,
13+
"attrs": {}
14+
},
15+
{
16+
"type": "wokwi-microsd-card",
17+
"id": "sd1",
18+
"top": -112.63,
19+
"left": -50.93,
20+
"rotate": 90,
21+
"attrs": {}
22+
},
23+
{
24+
"type": "wokwi-ds1307",
25+
"id": "rtc1",
26+
"top": -119.9,
27+
"left": 26,
28+
"rotate": 270,
29+
"attrs": {}
30+
},
31+
{ "type": "wokwi-potentiometer", "id": "pot1", "top": -87.7, "left": 143.8, "attrs": {} },
32+
{ "type": "wokwi-potentiometer", "id": "pot2", "top": -1.3, "left": 143.8, "attrs": {} },
33+
{
34+
"type": "wokwi-pushbutton",
35+
"id": "btn1",
36+
"top": 9.2,
37+
"left": 74,
38+
"rotate": 270,
39+
"attrs": { "bounce": "0", "color": "green" }
40+
},
41+
{ "type": "board-ds18b20", "id": "temp1", "top": -87.53, "left": 272.88, "attrs": {} },
42+
{
43+
"type": "wokwi-resistor",
44+
"id": "r1",
45+
"top": 4.8,
46+
"left": 277.85,
47+
"rotate": 90,
48+
"attrs": { "value": "7400" }
49+
},
50+
{ "type": "board-ds18b20", "id": "temp2", "top": -87.53, "left": 234.48, "attrs": {} },
51+
{
52+
"type": "wokwi-resistor",
53+
"id": "r2",
54+
"top": -6.2,
55+
"left": 239.15,
56+
"rotate": 270,
57+
"attrs": { "value": "7400" }
58+
}
59+
],
60+
"connections": [
61+
[ "esp:TX0", "$serialMonitor:RX", "", [] ],
62+
[ "esp:RX0", "$serialMonitor:TX", "", [] ],
63+
[ "sd1:CS", "esp:D15", "gold", [ "v144", "h-144.26" ] ],
64+
[ "sd1:DI", "esp:D23", "blue", [ "v0" ] ],
65+
[ "sd1:SCK", "esp:D18", "violet", [ "v153.6", "h-115.19" ] ],
66+
[ "sd1:DO", "esp:D19", "orange", [ "v124.8", "h-125.01" ] ],
67+
[ "rtc1:SDA", "esp:D21", "blue", [ "v115.2", "h-183.1" ] ],
68+
[ "rtc1:SCL", "esp:D22", "green", [ "v105.6", "h-163.7" ] ],
69+
[ "pot2:SIG", "esp:D27", "green", [ "h-0.4", "v76.8", "h-345.9" ] ],
70+
[ "esp:3V3", "bb1:bp.1", "red", [ "h-9.6", "v39" ] ],
71+
[ "sd1:VCC", "bb1:bp.18", "red", [ "v0" ] ],
72+
[ "rtc1:GND", "bb1:bn.25", "black", [ "v0" ] ],
73+
[ "esp:GND.1", "bb1:bn.3", "black", [ "v0" ] ],
74+
[ "bb1:33b.h", "bb1:33b.g", "green", [ "v0" ] ],
75+
[ "rtc1:5V", "esp:VIN", "red", [ "v-19.2", "h-269.2" ] ],
76+
[ "pot1:SIG", "esp:D14", "blue", [ "v9.6", "h-48.4", "v144", "h-316.8", "v-172.8" ] ],
77+
[ "btn1:1.l", "esp:D4", "orange", [ "v57.6", "h-268.7" ] ],
78+
[ "temp1:GND", "bb1:bn.48", "black", [ "v0" ] ],
79+
[ "temp1:DQ", "r1:1", "green", [ "v0" ] ],
80+
[ "temp1:VCC", "r1:2", "red", [ "v0" ] ],
81+
[ "r1:1", "esp:D12", "green", [ "v-124.8", "h-490.3" ] ],
82+
[ "temp2:GND", "bb1:bn.36", "black", [ "v0" ] ],
83+
[ "temp2:DQ", "r2:2", "violet", [ "v0" ] ],
84+
[ "temp2:VCC", "r2:1", "red", [ "v0" ] ],
85+
[ "esp:D25", "r2:2", "violet", [ "v-96", "h412.8" ] ],
86+
[ "sd1:GND", "bb1:bn.21", "black", [ "v0" ] ],
87+
[ "btn1:2.r", "bb1:tn.31", "black", [ "h9.8", "v-67.3" ] ],
88+
[ "pot1:GND", "bb1:tn.32", "black", [ "h-38.4", "v-47.9" ] ],
89+
[ "pot1:VCC", "bb1:bp.39", "red", [ "h18.4", "v116.1" ] ],
90+
[ "pot2:GND", "bb1:bn.35", "black", [ "v0" ] ],
91+
[ "pot2:VCC", "bb1:bp.37", "red", [ "v0" ] ],
92+
[ "r2:1", "bb1:bp.44", "red", [ "h0" ] ],
93+
[ "r1:2", "bb1:bp.47", "red", [ "h0" ] ],
94+
[ "esp:VIN", "bb1:4t.a", "", [ "$bb" ] ],
95+
[ "esp:GND.2", "bb1:5t.a", "", [ "$bb" ] ],
96+
[ "esp:D13", "bb1:6t.a", "", [ "$bb" ] ],
97+
[ "esp:D12", "bb1:7t.a", "", [ "$bb" ] ],
98+
[ "esp:D14", "bb1:8t.a", "", [ "$bb" ] ],
99+
[ "esp:D27", "bb1:9t.a", "", [ "$bb" ] ],
100+
[ "esp:D26", "bb1:10t.a", "", [ "$bb" ] ],
101+
[ "esp:D25", "bb1:11t.a", "", [ "$bb" ] ],
102+
[ "esp:D33", "bb1:12t.a", "", [ "$bb" ] ],
103+
[ "esp:D32", "bb1:13t.a", "", [ "$bb" ] ],
104+
[ "esp:D35", "bb1:14t.a", "", [ "$bb" ] ],
105+
[ "esp:D34", "bb1:15t.a", "", [ "$bb" ] ],
106+
[ "esp:VN", "bb1:16t.a", "", [ "$bb" ] ],
107+
[ "esp:VP", "bb1:17t.a", "", [ "$bb" ] ],
108+
[ "esp:EN", "bb1:18t.a", "", [ "$bb" ] ],
109+
[ "esp:3V3", "bb1:4b.i", "", [ "$bb" ] ],
110+
[ "esp:GND.1", "bb1:5b.i", "", [ "$bb" ] ],
111+
[ "esp:D15", "bb1:6b.i", "", [ "$bb" ] ],
112+
[ "esp:D2", "bb1:7b.i", "", [ "$bb" ] ],
113+
[ "esp:D4", "bb1:8b.i", "", [ "$bb" ] ],
114+
[ "esp:RX2", "bb1:9b.i", "", [ "$bb" ] ],
115+
[ "esp:TX2", "bb1:10b.i", "", [ "$bb" ] ],
116+
[ "esp:D5", "bb1:11b.i", "", [ "$bb" ] ],
117+
[ "esp:D18", "bb1:12b.i", "", [ "$bb" ] ],
118+
[ "esp:D19", "bb1:13b.i", "", [ "$bb" ] ],
119+
[ "esp:D21", "bb1:14b.i", "", [ "$bb" ] ],
120+
[ "esp:RX0", "bb1:15b.i", "", [ "$bb" ] ],
121+
[ "esp:TX0", "bb1:16b.i", "", [ "$bb" ] ],
122+
[ "esp:D22", "bb1:17b.i", "", [ "$bb" ] ],
123+
[ "esp:D23", "bb1:18b.i", "", [ "$bb" ] ],
124+
[ "sd1:CD", "bb1:28t.a", "", [ "$bb" ] ],
125+
[ "sd1:DO", "bb1:27t.a", "", [ "$bb" ] ],
126+
[ "sd1:GND", "bb1:26t.a", "", [ "$bb" ] ],
127+
[ "sd1:SCK", "bb1:25t.a", "", [ "$bb" ] ],
128+
[ "sd1:VCC", "bb1:24t.a", "", [ "$bb" ] ],
129+
[ "sd1:DI", "bb1:23t.a", "", [ "$bb" ] ],
130+
[ "sd1:CS", "bb1:22t.a", "", [ "$bb" ] ],
131+
[ "rtc1:GND", "bb1:31t.a", "", [ "$bb" ] ],
132+
[ "rtc1:5V", "bb1:32t.a", "", [ "$bb" ] ],
133+
[ "rtc1:SDA", "bb1:33t.a", "", [ "$bb" ] ],
134+
[ "rtc1:SCL", "bb1:34t.a", "", [ "$bb" ] ],
135+
[ "rtc1:SQW", "bb1:35t.a", "", [ "$bb" ] ],
136+
[ "pot1:GND", "bb1:44t.c", "", [ "$bb" ] ],
137+
[ "pot1:SIG", "bb1:45t.c", "", [ "$bb" ] ],
138+
[ "pot1:VCC", "bb1:46t.c", "", [ "$bb" ] ],
139+
[ "pot2:GND", "bb1:44b.j", "", [ "$bb" ] ],
140+
[ "pot2:SIG", "bb1:45b.j", "", [ "$bb" ] ],
141+
[ "pot2:VCC", "bb1:46b.j", "", [ "$bb" ] ],
142+
[ "btn1:1.l", "bb1:36b.j", "", [ "$bb" ] ],
143+
[ "btn1:2.l", "bb1:38b.j", "", [ "$bb" ] ],
144+
[ "btn1:1.r", "bb1:36t.e", "", [ "$bb" ] ],
145+
[ "btn1:2.r", "bb1:38t.e", "", [ "$bb" ] ],
146+
[ "r1:1", "bb1:58t.c", "", [ "$bb" ] ],
147+
[ "r1:2", "bb1:58b.g", "", [ "$bb" ] ],
148+
[ "r2:1", "bb1:54b.f", "", [ "$bb" ] ],
149+
[ "r2:2", "bb1:54t.b", "", [ "$bb" ] ],
150+
[ "temp1:GND", "bb1:55t.a", "", [ "$bb" ] ],
151+
[ "temp1:DQ", "bb1:56t.a", "", [ "$bb" ] ],
152+
[ "temp1:VCC", "bb1:57t.a", "", [ "$bb" ] ],
153+
[ "temp2:GND", "bb1:51t.a", "", [ "$bb" ] ],
154+
[ "temp2:DQ", "bb1:52t.a", "", [ "$bb" ] ],
155+
[ "temp2:VCC", "bb1:53t.a", "", [ "$bb" ] ],
156+
[ "esp:GND.2", "bb1:tn.3", "black", [ "v0" ] ]
157+
],
158+
"serialMonitor": { "display": "terminal", "newline": "lf" },
159+
"dependencies": {}
160+
}

tests/test_offline.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
1+
# SPDX-FileCopyrightText: 2024 Brent Rubell for Adafruit Industries
2+
# SPDX-License-Identifier: MIT
3+
# SPDX-FileDescription: Unit tests for WipperSnapper's offline mode
14
import pytest
25
import subprocess
36

4-
57
def test_invalid_json():
68
# Run the Wokwi CLI
79
result = subprocess.run(
810
[
911
"wokwi-cli",
1012
"--elf",
11-
f"../.pio/build/esp32dev/firmware.elf",
13+
f"bin/offline/firmware.elf",
1214
"--timeout",
1315
"120000",
1416
"--scenario",
1517
f"scenarios/offline/test-invalid-json.scenario.yaml",
1618
"--diagram-file",
17-
f"diagram.json",
19+
f"diagrams/offline.json",
1820
]
1921
)
2022
assert result.returncode == 0
@@ -26,13 +28,13 @@ def test_analog_input():
2628
[
2729
"wokwi-cli",
2830
"--elf",
29-
f"../.pio/build/esp32dev/firmware.elf",
31+
f"bin/offline/firmware.elf",
3032
"--timeout",
3133
"120000",
3234
"--scenario",
3335
f"scenarios/offline/test-log-analogin.scenario.yaml",
3436
"--diagram-file",
35-
f"diagram.json",
37+
f"diagrams/offline.json",
3638
]
3739
)
3840
assert result.returncode == 0
@@ -44,13 +46,13 @@ def test_digital_input():
4446
[
4547
"wokwi-cli",
4648
"--elf",
47-
f"../.pio/build/esp32dev/firmware.elf",
49+
f"bin/offline/firmware.elf",
4850
"--timeout",
4951
"120000",
5052
"--scenario",
5153
f"scenarios/offline/test-log-digital-in.scenario.yaml",
5254
"--diagram-file",
53-
f"diagram.json",
55+
f"diagrams/offline.json",
5456
]
5557
)
5658
assert result.returncode == 0
@@ -61,13 +63,13 @@ def test_ds18b20():
6163
[
6264
"wokwi-cli",
6365
"--elf",
64-
f"../.pio/build/esp32dev/firmware.elf",
66+
f"bin/offline/firmware.elf",
6567
"--timeout",
6668
"120000",
6769
"--scenario",
6870
f"scenarios/offline/test-log-ds18b20.scenario.yaml",
6971
"--diagram-file",
70-
f"diagram.json",
72+
f"diagrams/offline.json",
7173
]
7274
)
7375
assert result.returncode == 0

0 commit comments

Comments
 (0)