summaryrefslogtreecommitdiff
path: root/src/tests/test_assets.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/test_assets.cc')
-rw-r--r--src/tests/test_assets.cc39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/tests/test_assets.cc b/src/tests/test_assets.cc
index b7ee8be..dd77b73 100644
--- a/src/tests/test_assets.cc
+++ b/src/tests/test_assets.cc
@@ -47,6 +47,45 @@ int main() {
printf("ASSET_LAST_ID test: SUCCESS\n");
printf("Asset size: %zu bytes\n", size);
+
+ // Test procedural asset
+ printf("\nRunning Procedural Asset test...\n");
+ size_t proc_size = 0;
+ const uint8_t* proc_data_1 = GetAsset(AssetId::ASSET_PROC_NOISE_256, &proc_size);
+ assert(proc_data_1 != nullptr);
+ assert(proc_size == 256 * 256 * 4); // 256x256 RGBA8
+
+ // Verify first few bytes are not all zero (noise should produce non-zero data)
+ bool non_zero_data = false;
+ for (size_t i = 0; i < 16; ++i) { // Check first 16 bytes
+ if (proc_data_1[i] != 0) {
+ non_zero_data = true;
+ break;
+ }
+ }
+ assert(non_zero_data);
+ printf("Procedural asset content verification: SUCCESS\n");
+
+ // Test DropAsset for procedural asset and re-generation
+ DropAsset(AssetId::ASSET_PROC_NOISE_256, proc_data_1);
+ // After dropping, GetAsset should generate new data
+ const uint8_t* proc_data_2 = GetAsset(AssetId::ASSET_PROC_NOISE_256, &proc_size);
+ assert(proc_data_2 != nullptr);
+ // assert(proc_data_1 != proc_data_2); // Removed: Allocator might reuse the same address
+
+ // Verify content again to ensure it was re-generated correctly
+ non_zero_data = false;
+ for (size_t i = 0; i < 16; ++i) {
+ if (proc_data_2[i] != 0) {
+ non_zero_data = true;
+ break;
+ }
+ }
+ assert(non_zero_data);
+ printf("Procedural asset DropAsset and re-generation test: SUCCESS\n");
+
+ printf("Procedural Asset test PASSED\n");
+
printf("AssetManager test PASSED\n");
return 0;