Skip to content
Snippets Groups Projects
Select Git revision
1 result Searching

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