diff options
Diffstat (limited to 'src/test/test_encoder.c')
-rw-r--r-- | src/test/test_encoder.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/test/test_encoder.c b/src/test/test_encoder.c new file mode 100644 index 0000000..65161f1 --- /dev/null +++ b/src/test/test_encoder.c @@ -0,0 +1,41 @@ +#include <dnswire/encoder.h> + +#include <assert.h> + +#include "create_dnstap.c" + +int main(void) +{ + uint8_t buf[1]; + struct dnswire_encoder e = DNSWIRE_ENCODER_INITIALIZER; + struct dnstap d = DNSTAP_INITIALIZER; + + create_dnstap(&d, "test_encoder"); + + // encoder stop at wrong state + assert(dnswire_encoder_stop(&e) == dnswire_error); + + // encoder * need more + e.state = dnswire_encoder_control_ready; + assert(dnswire_encoder_encode(&e, buf, 1) == dnswire_need_more); + e.state = dnswire_encoder_control_start; + assert(dnswire_encoder_encode(&e, buf, 1) == dnswire_need_more); + e.state = dnswire_encoder_control_accept; + assert(dnswire_encoder_encode(&e, buf, 1) == dnswire_need_more); + e.state = dnswire_encoder_control_finish; + assert(dnswire_encoder_encode(&e, buf, 1) == dnswire_need_more); + e.state = dnswire_encoder_control_stop; + assert(dnswire_encoder_encode(&e, buf, 1) == dnswire_need_more); + + // encoder frame + e.state = dnswire_encoder_frames; + assert(dnswire_encoder_encode(&e, buf, 1) == dnswire_error); + dnswire_encoder_set_dnstap(e, &d); + assert(dnswire_encoder_encode(&e, buf, 1) == dnswire_need_more); + + // encoder done + e.state = dnswire_encoder_done; + assert(dnswire_encoder_encode(&e, buf, 1) == dnswire_error); + + return 0; +} |