Edit

kc3-lang/smtp/test/seams.h

Branch :

  • Show log

    Commit

  • Author : humphreyj
    Date : 2018-08-21 04:29:41
    Hash : ee6d4b2c
    Message : Set all source files to version 1.00.

  • test/seams.h
  • /**
     * @file
     * @brief Test seams for the smtp-client library.
     * @author James Humphrey (mail@somnisoft.com)
     * @version 1.00
     *
     * Used by the smtp-client testing framework to inject specific return values
     * by some standard library functions. This makes it possible to test less
     * common errors like out of memory conditions and input/output errors.
     *
     * This software has been placed into the public domain using CC0.
     */
    #ifndef SMTP_TEST_SEAMS_H
    #define SMTP_TEST_SEAMS_H
    
    #include "test.h"
    
    /*
     * Redefine these functions to internal test seam functions.
     */
    #undef BIO_new_socket
    #undef BIO_should_retry
    #undef calloc
    #undef close
    #undef connect
    #undef ERR_peek_error
    #undef fclose
    #undef ferror
    #undef gmtime_r
    #undef HMAC
    #undef localtime_r
    #undef malloc
    #undef mktime
    #undef realloc
    #undef recv
    #undef select
    #undef send
    #undef socket
    #undef SSL_connect
    #undef SSL_CTX_new
    #undef SSL_do_handshake
    #undef SSL_get_peer_certificate
    #undef smtp_test_seam_x509_check_host
    #undef SSL_new
    #undef SSL_read
    #undef SSL_write
    #undef sprintf
    #undef time
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_bio_new_socket.
     */
    #define BIO_new_socket           smtp_test_seam_bio_new_socket
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_bio_should_retry.
     */
    #define BIO_should_retry         smtp_test_seam_bio_should_retry
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_calloc.
     */
    #define calloc                   smtp_test_seam_calloc
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_close.
     */
    #define close                    smtp_test_seam_close
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_connect.
     */
    #define connect                  smtp_test_seam_connect
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_err_peek_error.
     */
    #define ERR_peek_error           smtp_test_seam_err_peek_error
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_fclose.
     */
    #define fclose                   smtp_test_seam_fclose
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_ferror.
     */
    #define ferror                   smtp_test_seam_ferror
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_gmtime_r.
     */
    #define gmtime_r                 smtp_test_seam_gmtime_r
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_hmac.
     */
    #define HMAC                     smtp_test_seam_hmac
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_localtime_r.
     */
    #define localtime_r              smtp_test_seam_localtime_r
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_malloc.
     */
    #define malloc                   smtp_test_seam_malloc
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_mktime.
     */
    #define mktime                   smtp_test_seam_mktime
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_realloc.
     */
    #define realloc                  smtp_test_seam_realloc
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_recv.
     */
    #define recv                     smtp_test_seam_recv
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_select.
     */
    #define select                   smtp_test_seam_select
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_send.
     */
    #define send                     smtp_test_seam_send
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_socket.
     */
    #define socket                   smtp_test_seam_socket
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_ssl_connect.
     */
    #define SSL_connect              smtp_test_seam_ssl_connect
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_ssl_ctx_new.
     */
    #define SSL_CTX_new              smtp_test_seam_ssl_ctx_new
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_ssl_do_handshake.
     */
    #define SSL_do_handshake         smtp_test_seam_ssl_do_handshake
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_ssl_get_peer_certificate.
     */
    #define SSL_get_peer_certificate smtp_test_seam_ssl_get_peer_certificate
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_x509_check_host.
     */
    #define X509_check_host smtp_test_seam_x509_check_host
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_ssl_new.
     */
    #define SSL_new                  smtp_test_seam_ssl_new
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_ssl_read.
     */
    #define SSL_read                 smtp_test_seam_ssl_read
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_ssl_write.
     */
    #define SSL_write                smtp_test_seam_ssl_write
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_sprintf.
     */
    #define sprintf                  smtp_test_seam_sprintf
    
    /**
     * Redefine this function from smtp.c and inject a test seam which
     * can control when this function fails.
     *
     * See @ref smtp_test_seam_time.
     */
    #define time                     smtp_test_seam_time
    
    #endif