Where we make sure everything works the way it should do.
This is a list of tests that DSCEngine should pass.
✅ - ok, seems to work, but wouldn't hurt to double check it
🍦 - other things may break if this doesn't work. Assume it's correct, although it has not been thoroughly tested
❌ - successfully fails
🔵 - not a concern
🔸 - to be implemented
No. | Target | Description | Passing |
---|---|---|---|
1 | _logv() |
Check for incorrect parsings, index-out-of-bounds etc | ✅ |
2 | Event::trigger() |
Missed case: what if the EventHandler is null? | ✅ |
3 | ReadOnlyData::extract() |
Possible "8-bit write to VRAM" error source | |
4 | ReadOnlyData::extract() |
Extracting resources from file | |
5 | ReadOnlyData::extract(v*,i,i) |
Check requested data alignment | ✅ |
6 | AssetData::* |
It is assumed that provided AssetData sources are correctly created | |
7 | AssetData::* |
Data access with compression enabled | 🔸 |
8 | AssetData::get_color_depth() |
Detect incorrect color depth flag | |
9 | Scene::run() |
Key events working | ✅ |
10 | SceneCom::next() |
Calling close->next() from within an event |
|
11 | GenericScene256::solve_map_requirements_main() |
Assert encounter: Map base exceeded |
|
12 | GenericScene256::solve_map_requirements_main() |
Assert encounter: Backgrounds 0,1 cannot be bitmaps |
|
13 | GenericScene256::solve_map_requirements_main() |
Assert encounter: Main backgrounds data does not fit in allocated VRAM |
|
14 | GenericScene256::solve_map_requirements_main() |
Check if tile & map bases are computed correctly | |
15 | GenericScene256::solve_map_requirements_sub() |
Same observations for the sub engine | 🔸 |
16 | GenericScene256::load_assets() |
Assert encounter: Palette allocation failed |
|
17 | GenericScene256::require_tiledmap_4bpp() |
Checks for invalid data | |
18 | GenericScene256::require_tiledmap_8bpp() |
Checks for invalid data | |
19 | GenericScene256::require_tiledmap() |
Checks for invalid data | |
20 | GenericScene256::require_bitmap(i,i,i) |
Checks for invalid data | |
21 | GenericScene256::require_bitmap(i,cAD*) |
Checks for invalid data | |
22 | GenericScene256::require_bitmap_16bpp(i,i,i) |
Checks for invalid data | |
23 | GenericScene256::require_bitmap_16bpp(i,cAD*) |
Checks for invalid data | |
24 | GenericScene256::validate_bg_size() |
Allowing individual map sizes: 128, 256, 512, 1024 | 🍦 |
25 | GenericScene256::validate_bg_size() |
Allowing right map size combination | |
26 | Allocator::reserve() |
Reserving memory zone | |
27 | Allocator::reserve() |
Prevent overwriting | |
28 | Allocator::reserve() |
Desired-offset allocation | |
29 | Allocator::reserve() |
Returning null on fail | |
30 | Allocator::reserve() |
Allocate + Deallocate + Reallocate | |
31 | Allocator::release() |
Freeing occupied segment | |
32 | Allocator::release() |
Adjacent segments merging | |
33 | Allocator::release() |
Freeing what resides at the start of the memory zone | |
34 | Allocator::release() |
Ignoring invalid addresses | |
35 | Measure::* , MeasureValue::* |
Check the math, should be straight forward | ✅ |
36 | validate_palette_manager_constructor_input() |
Maybe also allow shadow-palettes in WRAM? | 🔸 |
37 | free_bit_pos() |
Check the math, should be straight forward | 🍦 |
38 | PaletteManager::reserve1() |
Reserve a new color index | 🍦 |
39 | PaletteManager::reserve1() |
Prevents color duplicates | 🍦 |
40 | PaletteManager::reserve1() |
Returns -1 on fail | 🍦 |
41 | PaletteManager::unload1() |
Removes colors allocated one | 🍦 |
42 | PaletteManager::unload1() |
Keeps colors still in use | 🍦 |
43 | PaletteManager::unload1() |
Ignores inexistent colors | 🍦 |
44 | PaletteManager::reserve16() |
Reserves a new slot | 🍦 |
45 | PaletteManager::reserve16() |
Prevents duplicates | 🍦 |
46 | PaletteManager::reserve16() |
Returns -1 on fail | 🍦 |
47 | PaletteManager::unload() |
Removes palettes allocated once | 🍦 |
48 | PaletteManager::unload() |
Keeps palettes still in use | 🍦 |
49 | PaletteManager::unload() |
Ignores inexistent palettes | 🍦 |
50 | PaletteManager::try_load() |
Error on 16-bit asset | |
51 | PaletteManager::try_load() |
Loads 4-bit asset | |
52 | PaletteManager::try_load() |
Loads 8-bit asset | 🍦 |
53 | PaletteManager::unload() |
Error on 16-bit asset | |
54 | PaletteManager::unload() |
Loads 4-bit asset | |
55 | PaletteManager::unload() |
Loads 8-bit asset | 🍦 |
56 | VramLoader::load() |
Copies without additional buffer (4bpp, 16bpp and 8bpp w/o) dynamic indices | |
57 | VramLoader::load() |
Copies with additional buffer 8bpp w/ dynamic palette indices | 🍦 |
58 | Vector::* |
Check Vector functionalities | ✅ |
59 | HashMap::* |
Check HashMap functionalities | ✅ |
59 | Stack::* |
Check Stack functionalities | ✅ |
59 | BitsArray::* |
Check BitsArray functionalities | ✅ |