Skip to content

Commit 610532d

Browse files
committed
Document smoke test progress and current blocker
Progress: ~90% complete, blocked on map texture loading Successfully fixed: - Audio crashes (Sound = 0 config) - SpringBoard archive structure (modinfo at root) - Version variable handling - spring-headless discovery with --isolation flag - Map generation options (MAPOPTIONS + MODOPTIONS) Current blocker: - Spring segfaults at "Loading Square Textures" - Minimal SMF map lacks proper DXT1-compressed .smt texture files - Need image processing tools or pre-existing minimal map SpringBoard Core loads successfully up to texture stage. LuaUI (and RmlUi) load AFTER textures, so can't verify RmlUi yet. See .github/workflows/SMOKE_TEST_STATUS.md for full details.
1 parent 9cde7ea commit 610532d

File tree

1 file changed

+109
-0
lines changed

1 file changed

+109
-0
lines changed
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# Smoke Test Status
2+
3+
## Current Progress: ~90% Complete
4+
5+
### ✅ Successfully Fixed:
6+
1. **Audio Crashes**: `Sound = 0` in springsettings.cfg completely disables OpenAL
7+
2. **SpringBoard Archive**: Fixed modinfo.lua structure (must be at archive root)
8+
3. **Version Variable**: Changed from `$VERSION` to `test` for CI
9+
4. **Game Name Matching**: Spring concatenates name + version = "SpringBoard Core test"
10+
5. **Spring-Headless Discovery**: Using `spring-headless --isolation` (from BAR testing)
11+
6. **Map Generation Options**: Added MAPOPTIONS (new_map_x, new_map_y) and MODOPTIONS (MapSeed)
12+
13+
### ❌ Current Blocker: Map Texture Loading
14+
15+
**Issue**: Spring segfaults at "Loading Square Textures" stage
16+
17+
**Root Cause**: The minimal SMF map created doesn't have proper DXT1-compressed .smt texture tile files
18+
19+
**Why This Blocks Everything**:
20+
- Spring requires valid map WITH textures to load
21+
- LuaUI (which contains RmlUi) only loads AFTER map textures
22+
- Map generation happens in SpringBoard's Lua code AFTER LuaUI loads
23+
- Can't verify RmlUi initialization without getting past texture loading
24+
25+
**What We Tried**:
26+
1. ✗ Mapinfo.lua-only map (Spring requires .smf file)
27+
2. ✗ Minimal .smf with header only (crashes on texture loading)
28+
3. ✗ Using test_blank.sdd with empty mapfile (Spring requires actual file)
29+
4. ✗ Map downloads (403 Forbidden in CI)
30+
5. ✓ Spring-headless (works better but still crashes on textures)
31+
32+
**What We Need**:
33+
- Valid .smt texture files with DXT1 compression, OR
34+
- Access to pre-existing minimal Spring map with working textures, OR
35+
- Way to make Spring skip texture loading entirely (doesn't exist)
36+
37+
**Creating proper .smt files requires**:
38+
- Image processing libraries (PIL/Pillow) - not available
39+
- DXT1 compression tools (libsquish/nvdxt) - not available
40+
- Or: MapConv tool from Spring ecosystem
41+
42+
## Test Configuration
43+
44+
**Script.txt** (in test-engine/, gitignored):
45+
```
46+
[GAME]
47+
{
48+
GameType=SpringBoard Core test;
49+
MapName=TestMinimal2x2 v1.0;
50+
IsHost=1;
51+
MyPlayerName=TestPlayer;
52+
[MAPOPTIONS]
53+
{
54+
new_map_x=10;
55+
new_map_y=8;
56+
}
57+
[MODOPTIONS]
58+
{
59+
MapSeed=42;
60+
}
61+
[PLAYER0]
62+
{
63+
Name=TestPlayer;
64+
Team=0;
65+
IsFromDemo=0;
66+
Spectator=1;
67+
}
68+
[TEAM0]
69+
{
70+
TeamLeader=0;
71+
AllyTeam=0;
72+
}
73+
[ALLYTEAM0]
74+
{
75+
}
76+
}
77+
```
78+
79+
**Command**:
80+
```bash
81+
spring-headless --isolation --write-dir /absolute/path/to/test-data script.txt
82+
```
83+
84+
**What Works**:
85+
- SpringBoard Core loads successfully
86+
- All archives scan properly (285ms vs hanging with symlinks)
87+
- Game initialization completes through "Loading Models"
88+
- Gets to texture loading stage consistently
89+
90+
**Crash Point**:
91+
```
92+
[t=00:00:02.277888] [LoadScreen::SetLoadMessage] text="Loading Square Textures"
93+
Segmentation fault
94+
```
95+
96+
## Next Steps
97+
98+
1. Find/create valid minimal Spring map with proper texture files
99+
2. Or: Package existing small map (if licensing allows)
100+
3. Or: Use Spring map creation tools in CI to generate valid map
101+
4. Once map loads: Verify LuaUI initializes
102+
5. Once LuaUI loads: Verify RmlUi messages in infolog
103+
6. Update CI workflow to use spring-headless with --isolation flag
104+
105+
## References
106+
107+
- BAR headless testing: https://github.com/beyond-all-reason/Beyond-All-Reason/tree/master/tools/headless_testing
108+
- Spring SMF format: https://springrts.com/wiki/Mapdev:SMF_format
109+
- Spring config vars: `./spring --list-config-vars | grep Sound`

0 commit comments

Comments
 (0)