summaryrefslogtreecommitdiff
path: root/src/tests
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-01 12:06:37 +0100
committerskal <pascal.massimino@gmail.com>2026-02-01 12:06:37 +0100
commita358fbc9f4ba3a7b01f600109fc86aeb2fcf96b8 (patch)
treea08b085bc74b5d41382d9818377ff8c31802ad85 /src/tests
parentf80e37bd61e447f1d66fbb5eb4c1ab7a8a77cf0f (diff)
feat(asset_manager): Implement array-based caching
- Refactored asset manager to use a static array for caching, improving performance and memory efficiency. - Updated asset_packer to correctly generate ASSET_LAST_ID for array sizing. - Modified asset_manager.h to use a forward declaration for AssetId. - Updated asset_manager.cc to use the conditional include for generated asset headers. - Added a test case in test_assets to verify the array-based cache and ASSET_LAST_ID logic.
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/test_assets.cc23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/tests/test_assets.cc b/src/tests/test_assets.cc
index e8b6318..b7ee8be 100644
--- a/src/tests/test_assets.cc
+++ b/src/tests/test_assets.cc
@@ -16,21 +16,36 @@ int main() {
printf("Running AssetManager test...\n");
size_t size = 0;
- const uint8_t* data = GetAsset(AssetId::ASSET_TEST_ASSET, &size);
+ const uint8_t* data1 = GetAsset(AssetId::ASSET_TEST_ASSET, &size);
- assert(data != nullptr);
+ assert(data1 != nullptr);
assert(size > 0);
const char* expected_prefix = "This is a test asset file.";
- if (strncmp((const char*)data, expected_prefix, strlen(expected_prefix)) ==
+ if (strncmp((const char*)data1, expected_prefix, strlen(expected_prefix)) ==
0) {
printf("Asset content verification: SUCCESS\n");
} else {
printf("Asset content verification: FAILED\n");
- printf("Got: %.*s\n", (int)size, (const char*)data);
+ printf("Got: %.*s\n", (int)size, (const char*)data1);
return 1;
}
+ // Test caching: request the same asset again and verify pointer is identical
+ size_t size2 = 0;
+ const uint8_t* data2 = GetAsset(AssetId::ASSET_TEST_ASSET, &size2);
+ assert(data2 != nullptr);
+ assert(size2 == size);
+ assert(data1 == data2); // Pointers should be the same for cached static asset
+ printf("Asset caching test: SUCCESS\n");
+
+ // Test ASSET_LAST_ID - should not return a valid asset
+ size_t last_id_size = 0;
+ const uint8_t* last_id_data = GetAsset(AssetId::ASSET_LAST_ID, &last_id_size);
+ assert(last_id_data == nullptr);
+ assert(last_id_size == 0);
+ printf("ASSET_LAST_ID test: SUCCESS\n");
+
printf("Asset size: %zu bytes\n", size);
printf("AssetManager test PASSED\n");