Skip to content
Snippets Groups Projects
Commit ed85a830 authored by Jan Včelák's avatar Jan Včelák :rocket:
Browse files

[dnssec] add tests for wire reading/writing API

parent bc83ba18
Branches
Tags
1 merge request!332libdnssec
......@@ -92,6 +92,13 @@ static inline void wire_read_binary(wire_ctx_t *ctx, dnssec_binary_t *data)
wire_read(ctx, data->data, data->size);
}
static inline void wire_read_datum(wire_ctx_t *ctx, gnutls_datum_t *data)
{
assert(data);
wire_read(ctx, data->data, data->size);
}
static inline void wire_write_u8(wire_ctx_t *ctx, uint8_t value)
{
assert(ctx);
......@@ -154,10 +161,3 @@ static inline void wire_write_datum(wire_ctx_t *ctx, gnutls_datum_t *data)
wire_write(ctx, data->data, data->size);
}
static inline void wire_read_datum(wire_ctx_t *ctx, gnutls_datum_t *data)
{
assert(data);
wire_read(ctx, data->data, data->size);
}
#include <tap/basic.h>
#include "binary.h"
#include "wire.h"
int main(void)
{
plan_lazy();
ok(0, "todo");
wire_ctx_t wire = { 0 };
dnssec_binary_t buffer = { .size = 20, .data = (uint8_t []) {
0xc8, 0x25, 0x19, 0x3c, 0x96, 0xe6, 0x59, 0xf7, 0x2b, 0x94,
0x83, 0xb3, 0x3e, 0x6f, 0xb9, 0x01, 0xe2, 0x91, 0xa8, 0xa9,
}};
wire_init(&wire, buffer.data + 10, 10);
ok(wire_read_u8(&wire) == 0x83, "wire_init()");
wire_init_binary(&wire, &buffer);
ok(wire_read_u8(&wire) == 0xc8, "wire_init_binary()");
// read operations
wire_seek(&wire, 5);
ok(wire_read_u8(&wire) == 0xe6, "wire_seek() forward");
wire_seek(&wire, 3);
ok(wire_read_u8(&wire) == 0x3c, "wire_seek() backward");
wire_seek(&wire, 10);
ok(wire_read_u8(&wire) == 0x83, "wire_read_u8()");
ok(wire_read_u16(&wire) == 45886, "wire_read_u16()");
ok(wire_tell(&wire) == 13, "wire_tell()");
ok(wire_available(&wire) == 7, "wire_available()");
uint8_t in[6] = { 0 };
wire_seek(&wire, 4);
wire_read(&wire, in, 6);
ok(memcmp(in, buffer.data + 4, 6) == 0 && wire_tell(&wire) == 10,
"wire_read()");
// write operations
wire_seek(&wire, 0);
wire_write_u8(&wire, 0x42);
ok(buffer.data[0] == 0x42 && wire_tell(&wire) == 1,
"wire_write_u8()");
wire_write_u16(&wire, 44513);
ok(memcmp(buffer.data + 1, "\xad\xe1", 2) == 0 && wire_tell(&wire) == 3,
"wire_write_u16()");
wire_seek(&wire, 12);
const uint8_t out[7] = { 0xc0, 0x1d, 0xca, 0xfe, 0xde, 0xad, 0xbe };
wire_write(&wire, out, 7);
ok(memcmp(buffer.data + 12, out, 7) == 0 && wire_tell(&wire) == 19,
"wire_write()");
const uint8_t expect[8] = { 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1d, 0xca, 0xfe };
wire_seek(&wire, 2);
wire_write_ralign(&wire, 8, out, 4);
ok(memcmp(buffer.data + 2, expect, 8) == 0 && wire_tell(&wire) == 10,
"wire_write_ralign()");
return 0;
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment