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:
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);