star-buffer

Load 1D arrays in binary format
git clone git://git.meso-star.fr/star-buffer.git
Log | Files | Refs | README | LICENSE

commit 342a12252af5ec8659e1329cc9af5281b03797ac
parent 8aba0a6dceffac82633c6540c83443817c02cb4d
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Wed, 30 Mar 2022 16:46:45 +0200

Test loading provided files

Diffstat:
Msrc/test_sbuf_load.c | 36+++++++++++++++++++++++++++++++++++-
1 file changed, 35 insertions(+), 1 deletion(-)

diff --git a/src/test_sbuf_load.c b/src/test_sbuf_load.c @@ -14,6 +14,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "sbuf.h" +#include <rsys/math.h> #include <rsys/mem_allocator.h> #include <string.h> @@ -149,6 +150,7 @@ check_sbuf_desc FOR_EACH(i, 0, size) { const void* item = sbuf_desc_at(desc, i); + CHK(IS_ALIGNED(item, desc->alitem)); type->set(mem, i); CHK(type->eq(mem, item)); } @@ -296,6 +298,38 @@ test_load_fail(struct sbuf* buf) CHK(fclose(fp) == 0); } +static void +test_load_files(struct sbuf* buf, int argc, char** argv) +{ + int i; + CHK(buf); + FOR_EACH(i, 1, argc) { + struct sbuf_desc desc = SBUF_DESC_NULL; + size_t iitem; + + printf("Loading %s\n", argv[i]); + CHK(sbuf_load(buf, argv[i]) == RES_OK); + CHK(sbuf_get_desc(buf, &desc) == RES_OK); + CHK(desc.buffer); + CHK(desc.size); + CHK(desc.szitem); + CHK(desc.alitem); + CHK(desc.pitch); + CHK(IS_POW2(desc.alitem)); + + FOR_EACH(iitem, 0, desc.size) { + const void* data = NULL; + data = sbuf_desc_at(&desc, iitem); + CHK(data != 0); + CHK(IS_ALIGNED(data, desc.alitem)); + if(iitem) { + const void* prev = (char*)data - desc.pitch; + CHK(prev == sbuf_desc_at(&desc, iitem-1)); + } + } + } +} + /******************************************************************************* * Main function ******************************************************************************/ @@ -338,7 +372,7 @@ main(int argc, char** argv) test_load(buf, &type); test_load_fail(buf); - /*test_load_files(smsh, argc, argv);*/ + test_load_files(buf, argc, argv); CHK(sbuf_ref_put(buf) == RES_OK); CHK(mem_allocated_size() == 0);