Select Git revision
drawing_from_input_drawing.py
test_labcomm_errors.c 5.44 KiB
#include "test_labcomm_errors.h"
#include <stdlib.h>
#include <labcomm.h>
#include <labcomm_private.h>
#include <labcomm_mem_writer.h>
#include <labcomm_mem_reader.h>
static enum labcomm_error callback_error_id;
int assert_callback(enum labcomm_error expected, const char *name, const char *err_msg)
{
int success;
printf("----> %s()\n", name);
if (callback_error_id == expected) {
printf("Succeeded.\n");
success = 1;
} else {
printf("Failed! %s\n", err_msg);
success = 0;
}
return success;
}
/* Our callback that just logs which error_id that the library reported. */
void test_callback(enum labcomm_error error_id, size_t nbr_va_args, ...)
{
va_list arg_pointer;
va_start(arg_pointer, nbr_va_args);
va_end(arg_pointer);
callback_error_id = error_id;
}
void reset_callback_erro_id()
{
callback_error_id = -128;
}
int encoded_size_mock(struct labcomm_signature *signature, void *voidp)
{
return 0;
}
int test_enc_not_reg_encoder_sign()
{
reset_callback_erro_id();
unsigned char *buf = (unsigned char *) "a";
labcomm_mem_writer_context_t *mcontext = labcomm_mem_writer_context_t_new(0, 1, buf);
labcomm_encoder_t *encoder = labcomm_encoder_new(labcomm_mem_writer, mcontext);
labcomm_register_error_handler_encoder(encoder, test_callback);
labcomm_signature_t signature = {
.type = 0,
.name = "test_signature",
.encoded_size = encoded_size_mock,
.size = 0,
.signature = (unsigned char *) "0"};
encoder->do_encode(encoder, &signature, NULL);
return assert_callback(LABCOMM_ERROR_ENC_NO_REG_SIGNATURE, __FUNCTION__, "");
}
int test_enc_missing_do_reg()
{
reset_callback_erro_id();
unsigned char *buf = (unsigned char *) "a";
labcomm_mem_writer_context_t *mcontext = labcomm_mem_writer_context_t_new(0, 1, buf);
labcomm_encoder_t *encoder = labcomm_encoder_new(labcomm_mem_writer, mcontext);
labcomm_register_error_handler_encoder(encoder, test_callback);