skip to content
==> tests/bmp.c <==
1/* assemble.rs's bmp check (from default_reference_digests). */
2#include "mesh/assemble_bmp.h"
3#include "mesh/check.h"
4
5#include <stdlib.h>
6#include <string.h>
7
8int main(void) {
9    size_t n;
10    uint8_t *b = masm_bmp(2, 1, (const uint8_t[]){1, 2, 3, 4, 5, 6}, &n);
11    CHECK_U(n, 62);
12    CHECK(memcmp(b + 54, (const uint8_t[]){3, 2, 1, 6, 5, 4, 0, 0}, 8) == 0);
13    CHECK(b[0] == 'B' && b[1] == 'M' && b[2] == 62 && b[10] == 54 && b[14] == 40 && b[18] == 2 && b[22] == 1 && b[26] == 1 && b[28] == 24);
14    free(b);
15    /* Two rows: bottom-up. */
16    b = masm_bmp(1, 2, (const uint8_t[]){1, 2, 3, 4, 5, 6}, &n);
17    CHECK(n == 62 && memcmp(b + 54, (const uint8_t[]){6, 5, 4, 0, 3, 2, 1, 0}, 8) == 0);
18    free(b);
19    return mesh_check_done();
20}