diff options
| author | Andre Weissflog <floooh@gmail.com> | 2025-03-01 14:22:43 +0100 |
|---|---|---|
| committer | Andre Weissflog <floooh@gmail.com> | 2025-03-01 14:22:43 +0100 |
| commit | 1979950752d45acefe3adbf48f0987f6fde5efb4 (patch) | |
| tree | 320478ff88879362f8b501589f89c8834c5240b0 /tests/functional | |
| parent | 109189b1e05196c832124393e4921d6843ee2ebe (diff) | |
sokol_gfx_test.c: more buffer creation tests
Diffstat (limited to 'tests/functional')
| -rw-r--r-- | tests/functional/sokol_gfx_test.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/functional/sokol_gfx_test.c b/tests/functional/sokol_gfx_test.c index bf186f96..cb34c4e1 100644 --- a/tests/functional/sokol_gfx_test.c +++ b/tests/functional/sokol_gfx_test.c @@ -1935,6 +1935,74 @@ UTEST(sokol_gfx, make_buffer_validate_data_ptr_but_no_size) { sg_shutdown(); } +UTEST(sokol_gfx, make_buffer_validate_data_ptr_but_no_data_size) { + setup(&(sg_desc){0}); + const uint32_t data[16] = {0}; + sg_buffer buf = sg_make_buffer(&(sg_buffer_desc){ + .size = sizeof(data), + .data.ptr = data, + }); + T(sg_query_buffer_state(buf) == SG_RESOURCESTATE_FAILED); + T(log_items[0] == SG_LOGITEM_VALIDATE_BUFFERDESC_EXPECT_MATCHING_DATA_SIZE); + T(log_items[1] == SG_LOGITEM_VALIDATION_FAILED); + sg_shutdown(); +} + +UTEST(sokol_gfx, make_buffer_validate_no_data_ptr_but_data_size) { + setup(&(sg_desc){0}); + const uint32_t data[16] = {0}; + sg_buffer buf = sg_make_buffer(&(sg_buffer_desc){ + .size = sizeof(data), + .data.size = sizeof(data), + }); + T(sg_query_buffer_state(buf) == SG_RESOURCESTATE_FAILED); + T(log_items[0] == SG_LOGITEM_VALIDATE_BUFFERDESC_EXPECT_ZERO_DATA_SIZE); + T(log_items[1] == SG_LOGITEM_VALIDATION_FAILED); + sg_shutdown(); +} + +UTEST(sokol_gfx, make_buffer_usage_dynamic_expect_no_data) { + setup(&(sg_desc){0}); + const uint32_t data[16] = {0}; + sg_buffer buf = sg_make_buffer(&(sg_buffer_desc){ + .usage = SG_USAGE_DYNAMIC, + .data = SG_RANGE(data), + }); + T(sg_query_buffer_state(buf) == SG_RESOURCESTATE_FAILED); + T(log_items[0] == SG_LOGITEM_VALIDATE_BUFFERDESC_EXPECT_NO_DATA); + T(log_items[1] == SG_LOGITEM_VALIDATE_BUFFERDESC_EXPECT_ZERO_DATA_SIZE); + T(log_items[2] == SG_LOGITEM_VALIDATION_FAILED); + sg_shutdown(); +} + +UTEST(sokol_gfx, make_buffer_usage_stream_expect_no_data) { + setup(&(sg_desc){0}); + const uint32_t data[16] = {0}; + sg_buffer buf = sg_make_buffer(&(sg_buffer_desc){ + .usage = SG_USAGE_STREAM, + .data = SG_RANGE(data), + }); + T(sg_query_buffer_state(buf) == SG_RESOURCESTATE_FAILED); + T(log_items[0] == SG_LOGITEM_VALIDATE_BUFFERDESC_EXPECT_NO_DATA); + T(log_items[1] == SG_LOGITEM_VALIDATE_BUFFERDESC_EXPECT_ZERO_DATA_SIZE); + T(log_items[2] == SG_LOGITEM_VALIDATION_FAILED); + sg_shutdown(); +} + +UTEST(sokol_gfx, make_buffer_storagebuffer_not_supported_and_size) { + setup(&(sg_desc){0}); + const uint8_t data[10] = {0}; + sg_buffer buf = sg_make_buffer(&(sg_buffer_desc){ + .type = SG_BUFFERTYPE_STORAGEBUFFER, + .data = SG_RANGE(data), + }); + T(sg_query_buffer_state(buf) == SG_RESOURCESTATE_FAILED); + T(log_items[0] == SG_LOGITEM_VALIDATE_BUFFERDESC_STORAGEBUFFER_SUPPORTED); + T(log_items[1] == SG_LOGITEM_VALIDATE_BUFFERDESC_STORAGEBUFFER_SIZE_MULTIPLE_4); + T(log_items[2] == SG_LOGITEM_VALIDATION_FAILED); + sg_shutdown(); +} + UTEST(sokol_gfx, make_image_validate_start_canary) { setup(&(sg_desc){0}); const uint32_t pixels[8][8] = {0}; |