LCOV - code coverage report
Current view: top level - test - suite_libdebug-assert.c (source / functions) Hit Total Coverage
Test: libdebug.info Lines: 285 285 100.0 %
Date: 2025-02-25 19:31:32 Functions: 62 62 100.0 %

          Line data    Source code
       1             : /**   @file  suite_libdebug-assert.c
       2             :  *   @brief  Check Libdebug assert functions
       3             :  *  @author  François Cerbelle (Fanfan), francois@cerbelle.net
       4             :  *
       5             :  *  @internal
       6             :  *       Created:  26/06/2024
       7             :  *      Revision:  none
       8             :  * Last modified:  2024-12-19 19:51
       9             :  *      Compiler:  gcc
      10             :  *  Organization:  Cerbelle.net
      11             :  *     Copyright:  Copyright (c) 2024, François Cerbelle
      12             :  *
      13             :  *  This source code is released for free distribution under the terms of the
      14             :  *  GNU General Public License as published by the Free Software Foundation.
      15             :  */
      16             : 
      17             : #ifdef HAVE_CONFIG_H
      18             : #include "config.h"
      19             : #endif
      20             : 
      21             : #define _XOPEN_SOURCE 500                       /* snprintf */
      22             : #include "libdebug/assert.h"                    /* libdebug's assertions */
      23             : #include "oom.h"                                /* oomfill_setup */
      24             : #include "libdebug/memtrack.h"                  /* memtrack_dumpblocks */
      25             : #include <check.h>
      26             : #include <unistd.h>                             /* pid_t getpid() */
      27             : #include <sys/stat.h>                           /* mkdir(), chdir(), mode_t */
      28             : #include <stdio.h>                              /* fprintf */
      29             : #include <stdlib.h>                             /* abort() */
      30             : #include "checktools.inc"
      31             : 
      32             : #ifndef NDEBUG
      33             : /** Test _trace with NULL or empty input strings */
      34           3 : START_TEST(assert_trace_nullfile) {
      35             :     /* The function does not return anything or change any value, I can not
      36             :      * check if it worked. I can only expect it to work or to SIGSEV the process */
      37           3 :     forktest_only;
      38             : #ifdef ENABLE_GCOV
      39             :     if(oomfill_enabled())
      40             :         __gcov_dump();
      41             : #endif
      42             :     oomfill_fill(_i,2);
      43           2 :     _trace(NULL,__LINE__,__DATE__,__TIME__,__func__);
      44             : }
      45             : END_TEST
      46             : #endif /* NDEBUG */
      47             : 
      48             : #ifndef NDEBUG
      49             : /** Test _trace with NULL or empty input strings */
      50           3 : START_TEST(assert_trace_nullline) {
      51           3 :     forktest_only;
      52             : #ifdef ENABLE_GCOV
      53             :     if(oomfill_enabled())
      54             :         __gcov_dump();
      55             : #endif
      56             :     oomfill_fill(_i,2);
      57           2 :     _trace(__FILE__,0,__DATE__,__TIME__,__func__);
      58             : }
      59             : END_TEST
      60             : #endif /* NDEBUG */
      61             : 
      62             : #ifndef NDEBUG
      63             : /** Test _trace with NULL or empty input strings */
      64           3 : START_TEST(assert_trace_nulldate) {
      65           3 :     forktest_only;
      66             : #ifdef ENABLE_GCOV
      67             :     if(oomfill_enabled())
      68             :         __gcov_dump();
      69             : #endif
      70             :     oomfill_fill(_i,2);
      71           2 :     _trace(__FILE__,__LINE__,NULL,__TIME__,__func__);
      72             : }
      73             : END_TEST
      74             : #endif /* NDEBUG */
      75             : 
      76             : #ifndef NDEBUG
      77             : /** Test _trace with NULL or empty input strings */
      78           3 : START_TEST(assert_trace_nulltime) {
      79           3 :     forktest_only;
      80             : #ifdef ENABLE_GCOV
      81             :     if(oomfill_enabled())
      82             :         __gcov_dump();
      83             : #endif
      84             :     oomfill_fill(_i,2);
      85           2 :     _trace(__FILE__,__LINE__,__DATE__,NULL,__func__);
      86             : }
      87             : END_TEST
      88             : #endif /* NDEBUG */
      89             : 
      90             : #ifndef NDEBUG
      91             : /** Test _trace with NULL or empty input strings */
      92           3 : START_TEST(assert_trace_nullfunc) {
      93           3 :     forktest_only;
      94             : #ifdef ENABLE_GCOV
      95             :     if(oomfill_enabled())
      96             :         __gcov_dump();
      97             : #endif
      98             :     oomfill_fill(_i,2);
      99           2 :     _trace(__FILE__,__LINE__,__DATE__,__TIME__,NULL);
     100             : }
     101             : END_TEST
     102             : #endif /* NDEBUG */
     103             : 
     104             : #ifndef NDEBUG
     105             : /** Test _trace with NULL or empty input strings */
     106           3 : START_TEST(assert_trace_emptyfile) {
     107           3 :     forktest_only;
     108             : #ifdef ENABLE_GCOV
     109             :     if(oomfill_enabled())
     110             :         __gcov_dump();
     111             : #endif
     112             :     oomfill_fill(_i,2);
     113           2 :     _trace("",__LINE__,__DATE__,__TIME__,__func__);
     114             : }
     115             : END_TEST
     116             : #endif /* NDEBUG */
     117             : 
     118             : #ifndef NDEBUG
     119             : /** Test _trace with NULL or empty input strings */
     120           3 : START_TEST(assert_trace_emptydate) {
     121           3 :     forktest_only;
     122             : #ifdef ENABLE_GCOV
     123             :     if(oomfill_enabled())
     124             :         __gcov_dump();
     125             : #endif
     126             :     oomfill_fill(_i,2);
     127           2 :     _trace(__FILE__,__LINE__,"",__TIME__,__func__);
     128             : }
     129             : END_TEST
     130             : #endif /* NDEBUG */
     131             : 
     132             : #ifndef NDEBUG
     133             : /** Test _trace with NULL or empty input strings */
     134           3 : START_TEST(assert_trace_emptytime) {
     135           3 :     forktest_only;
     136             : #ifdef ENABLE_GCOV
     137             :     if(oomfill_enabled())
     138             :         __gcov_dump();
     139             : #endif
     140             :     oomfill_fill(_i,2);
     141           2 :     _trace(__FILE__,__LINE__,__DATE__,"",__func__);
     142             : }
     143             : END_TEST
     144             : #endif /* NDEBUG */
     145             : 
     146             : #ifndef NDEBUG
     147             : /** Test _trace with NULL or empty input strings */
     148           3 : START_TEST(assert_trace_emptyfunc) {
     149           3 :     forktest_only;
     150             : #ifdef ENABLE_GCOV
     151             :     if(oomfill_enabled())
     152             :         __gcov_dump();
     153             : #endif
     154             :     oomfill_fill(_i,2);
     155           2 :     _trace(__FILE__,__LINE__,__DATE__,__TIME__,"");
     156             : }
     157             : END_TEST
     158             : #endif /* NDEBUG */
     159             : 
     160             : #ifndef NDEBUG
     161           3 : START_TEST(assert_trace_value) {
     162           3 :     char *szLongString =
     163             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     164             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     165             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     166             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     167             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     168             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     169             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     170             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     171             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     172             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     173             :         ;
     174             :     oomfill_fill(_i,2);
     175           3 :     _trace(szLongString,__LINE__,__DATE__,__TIME__,__func__);
     176             :     oomfill_free();
     177             :     oomfill_fill(_i,2);
     178           3 :     _trace(__FILE__,__LINE__,szLongString,__TIME__,__func__);
     179             :     oomfill_free();
     180             :     oomfill_fill(_i,2);
     181           3 :     _trace(__FILE__,__LINE__,__DATE__,szLongString,__func__);
     182             :     oomfill_free();
     183             :     oomfill_fill(_i,2);
     184           3 :     _trace(__FILE__,__LINE__,__DATE__,__TIME__,szLongString);
     185             :     oomfill_free();
     186           3 : }
     187             : END_TEST
     188             : #endif /* NDEBUG */
     189             : 
     190             : 
     191             : 
     192             : #ifndef NDEBUG
     193             : /** Test _trace_msg with NULL or empty input strings */
     194           3 : START_TEST(assert_tracemsg_nullfile) {
     195             :     /* The function does not return anything or change any value, I can not
     196             :      * check if it worked. I can only expect it to work or to SIGSEV the process */
     197           3 :     forktest_only;
     198             : #ifdef ENABLE_GCOV
     199             :     if(oomfill_enabled())
     200             :         __gcov_dump();
     201             : #endif
     202             :     oomfill_fill(_i,2);
     203           2 :     _trace_msg(NULL,__LINE__,__DATE__,__TIME__,__func__,"message");
     204             : }
     205             : END_TEST
     206             : #endif /* NDEBUG */
     207             : 
     208             : #ifndef NDEBUG
     209             : /** Test _trace_msg with NULL or empty input strings */
     210           3 : START_TEST(assert_tracemsg_nullline) {
     211           3 :     forktest_only;
     212             : #ifdef ENABLE_GCOV
     213             :     if(oomfill_enabled())
     214             :         __gcov_dump();
     215             : #endif
     216             :     oomfill_fill(_i,2);
     217           2 :     _trace_msg(__FILE__,0,__DATE__,__TIME__,__func__,"message");
     218             : }
     219             : END_TEST
     220             : #endif /* NDEBUG */
     221             : 
     222             : #ifndef NDEBUG
     223             : /** Test _trace_msg with NULL or empty input strings */
     224           3 : START_TEST(assert_tracemsg_nulldate) {
     225           3 :     forktest_only;
     226             : #ifdef ENABLE_GCOV
     227             :     if(oomfill_enabled())
     228             :         __gcov_dump();
     229             : #endif
     230             :     oomfill_fill(_i,2);
     231           2 :     _trace_msg(__FILE__,__LINE__,NULL,__TIME__,__func__,"message");
     232             : }
     233             : END_TEST
     234             : #endif /* NDEBUG */
     235             : 
     236             : #ifndef NDEBUG
     237             : /** Test _trace_msg with NULL or empty input strings */
     238           3 : START_TEST(assert_tracemsg_nulltime) {
     239           3 :     forktest_only;
     240             : #ifdef ENABLE_GCOV
     241             :     if(oomfill_enabled())
     242             :         __gcov_dump();
     243             : #endif
     244             :     oomfill_fill(_i,2);
     245           2 :     _trace_msg(__FILE__,__LINE__,__DATE__,NULL,__func__,"message");
     246             : }
     247             : END_TEST
     248             : #endif /* NDEBUG */
     249             : 
     250             : #ifndef NDEBUG
     251             : /** Test _trace_msg with NULL or empty input strings */
     252           3 : START_TEST(assert_tracemsg_nullfunc) {
     253           3 :     forktest_only;
     254             : #ifdef ENABLE_GCOV
     255             :     if(oomfill_enabled())
     256             :         __gcov_dump();
     257             : #endif
     258             :     oomfill_fill(_i,2);
     259           2 :     _trace_msg(__FILE__,__LINE__,__DATE__,__TIME__,NULL,"message");
     260             : }
     261             : END_TEST
     262             : #endif /* NDEBUG */
     263             : 
     264             : #ifndef NDEBUG
     265             : /** Test _trace_msg with NULL or empty input strings */
     266           3 : START_TEST(assert_tracemsg_nullmsg) {
     267           3 :     forktest_only;
     268             : #ifdef ENABLE_GCOV
     269             :     if(oomfill_enabled())
     270             :         __gcov_dump();
     271             : #endif
     272             :     oomfill_fill(_i,2);
     273           2 :     _trace_msg(__FILE__,__LINE__,__DATE__,__TIME__,NULL,NULL);
     274             : }
     275             : END_TEST
     276             : #endif /* NDEBUG */
     277             : 
     278             : #ifndef NDEBUG
     279             : /** Test _trace_msg with NULL or empty input strings */
     280           3 : START_TEST(assert_tracemsg_emptyfile) {
     281           3 :     forktest_only;
     282             : #ifdef ENABLE_GCOV
     283             :     if(oomfill_enabled())
     284             :         __gcov_dump();
     285             : #endif
     286             :     oomfill_fill(_i,2);
     287           2 :     _trace_msg("",__LINE__,__DATE__,__TIME__,__func__,"message");
     288             : }
     289             : END_TEST
     290             : #endif /* NDEBUG */
     291             : 
     292             : #ifndef NDEBUG
     293             : /** Test _trace_msg with NULL or empty input strings */
     294           3 : START_TEST(assert_tracemsg_emptydate) {
     295           3 :     forktest_only;
     296             : #ifdef ENABLE_GCOV
     297             :     if(oomfill_enabled())
     298             :         __gcov_dump();
     299             : #endif
     300             :     oomfill_fill(_i,2);
     301           2 :     _trace_msg(__FILE__,__LINE__,"",__TIME__,__func__,"message");
     302             : }
     303             : END_TEST
     304             : #endif /* NDEBUG */
     305             : 
     306             : #ifndef NDEBUG
     307             : /** Test _trace_msg with NULL or empty input strings */
     308           3 : START_TEST(assert_tracemsg_emptytime) {
     309           3 :     forktest_only;
     310             : #ifdef ENABLE_GCOV
     311             :     if(oomfill_enabled())
     312             :         __gcov_dump();
     313             : #endif
     314             :     oomfill_fill(_i,2);
     315           2 :     _trace_msg(__FILE__,__LINE__,__DATE__,"",__func__,"message");
     316             : }
     317             : END_TEST
     318             : #endif /* NDEBUG */
     319             : 
     320             : #ifndef NDEBUG
     321             : /** Test _trace_msg with NULL or empty input strings */
     322           3 : START_TEST(assert_tracemsg_emptyfunc) {
     323           3 :     forktest_only;
     324             : #ifdef ENABLE_GCOV
     325             :     if(oomfill_enabled())
     326             :         __gcov_dump();
     327             : #endif
     328             :     oomfill_fill(_i,2);
     329           2 :     _trace_msg(__FILE__,__LINE__,__DATE__,__TIME__,"","message");
     330             : }
     331             : END_TEST
     332             : #endif /* NDEBUG */
     333             : 
     334             : #ifndef NDEBUG
     335             : /** Test _trace_msg with NULL or empty input strings */
     336           3 : START_TEST(assert_tracemsg_emptymsg) {
     337             : #ifdef ENABLE_GCOV
     338             :     if(oomfill_enabled())
     339             :         __gcov_dump();
     340             : #endif
     341             :     oomfill_fill(_i,2);
     342           3 :     _trace_msg(__FILE__,__LINE__,__DATE__,__TIME__,__func__,"");
     343             :     oomfill_free();
     344           3 : }
     345             : END_TEST
     346             : #endif /* NDEBUG */
     347             : 
     348             : #ifndef NDEBUG
     349           3 : START_TEST(assert_tracemsg_value) {
     350           3 :     char *szLongString =
     351             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     352             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     353             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     354             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     355             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     356             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     357             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     358             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     359             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     360             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     361             :         ;
     362             :     oomfill_fill(_i,2);
     363           3 :     _trace_msg(szLongString,__LINE__,__DATE__,__TIME__,__func__,"message");
     364             :     oomfill_free();
     365             :     oomfill_fill(_i,2);
     366           3 :     _trace_msg(__FILE__,__LINE__,szLongString,__TIME__,__func__,"message");
     367             :     oomfill_free();
     368             :     oomfill_fill(_i,2);
     369           3 :     _trace_msg(__FILE__,__LINE__,__DATE__,szLongString,__func__,"message");
     370             :     oomfill_free();
     371             :     oomfill_fill(_i,2);
     372           3 :     _trace_msg(__FILE__,__LINE__,__DATE__,__TIME__,szLongString,"message");
     373             :     oomfill_free();
     374             :     oomfill_fill(_i,2);
     375           3 :     _trace_msg(__FILE__,__LINE__,__DATE__,__TIME__,__func__,szLongString);
     376             :     oomfill_free();
     377           3 : }
     378             : END_TEST
     379             : #endif /* NDEBUG */
     380             : 
     381             : 
     382             : 
     383             : #ifndef NDEBUG
     384             : /** Test _trace_dynmsg with NULL or empty input strings */
     385           3 : START_TEST(assert_tracedynmsg_nullfile) {
     386             :     /* The function does not return anything or change any value, I can not
     387             :      * check if it worked. I can only expect it to work or to SIGSEV the process */
     388           3 :     forktest_only;
     389             : #ifdef ENABLE_GCOV
     390             :     if(oomfill_enabled())
     391             :         __gcov_dump();
     392             : #endif
     393             :     oomfill_fill(_i,2);
     394           2 :     _trace_dynmsg(NULL,__LINE__,__DATE__,__TIME__,__func__,"message");
     395             : }
     396             : END_TEST
     397             : #endif /* NDEBUG */
     398             : 
     399             : #ifndef NDEBUG
     400             : /** Test _trace_dynmsg with NULL or empty input strings */
     401           3 : START_TEST(assert_tracedynmsg_nullline) {
     402           3 :     forktest_only;
     403             : #ifdef ENABLE_GCOV
     404             :     if(oomfill_enabled())
     405             :         __gcov_dump();
     406             : #endif
     407             :     oomfill_fill(_i,2);
     408           2 :     _trace_dynmsg(__FILE__,0,__DATE__,__TIME__,__func__,"message");
     409             : }
     410             : END_TEST
     411             : #endif /* NDEBUG */
     412             : 
     413             : #ifndef NDEBUG
     414             : /** Test _trace_dynmsg with NULL or empty input strings */
     415           3 : START_TEST(assert_tracedynmsg_nulldate) {
     416           3 :     forktest_only;
     417             : #ifdef ENABLE_GCOV
     418             :     if(oomfill_enabled())
     419             :         __gcov_dump();
     420             : #endif
     421             :     oomfill_fill(_i,2);
     422           2 :     _trace_dynmsg(__FILE__,__LINE__,NULL,__TIME__,__func__,"message");
     423             : }
     424             : END_TEST
     425             : #endif /* NDEBUG */
     426             : 
     427             : #ifndef NDEBUG
     428             : /** Test _trace_dynmsg with NULL or empty input strings */
     429           3 : START_TEST(assert_tracedynmsg_nulltime) {
     430           3 :     forktest_only;
     431             : #ifdef ENABLE_GCOV
     432             :     if(oomfill_enabled())
     433             :         __gcov_dump();
     434             : #endif
     435             :     oomfill_fill(_i,2);
     436           2 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,NULL,__func__,"message");
     437             : }
     438             : END_TEST
     439             : #endif /* NDEBUG */
     440             : 
     441             : #ifndef NDEBUG
     442             : /** Test _trace_dynmsg with NULL or empty input strings */
     443           3 : START_TEST(assert_tracedynmsg_nullfunc) {
     444           3 :     forktest_only;
     445             : #ifdef ENABLE_GCOV
     446             :     if(oomfill_enabled())
     447             :         __gcov_dump();
     448             : #endif
     449             :     oomfill_fill(_i,2);
     450           2 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,NULL,"message");
     451             : }
     452             : END_TEST
     453             : #endif /* NDEBUG */
     454             : 
     455             : #ifndef NDEBUG
     456             : /** Test _trace_dynmsg with NULL or empty input strings */
     457           3 : START_TEST(assert_tracedynmsg_nullmsg) {
     458           3 :     forktest_only;
     459             : #ifdef ENABLE_GCOV
     460             :     if(oomfill_enabled())
     461             :         __gcov_dump();
     462             : #endif
     463             :     oomfill_fill(_i,2);
     464           2 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,NULL,NULL);
     465             : }
     466             : END_TEST
     467             : #endif /* NDEBUG */
     468             : 
     469             : #ifndef NDEBUG
     470             : /** Test _trace_dynmsg with NULL or empty input strings */
     471           3 : START_TEST(assert_tracedynmsg_emptyfile) {
     472           3 :     forktest_only;
     473             : #ifdef ENABLE_GCOV
     474             :     if(oomfill_enabled())
     475             :         __gcov_dump();
     476             : #endif
     477             :     oomfill_fill(_i,2);
     478           2 :     _trace_dynmsg("",__LINE__,__DATE__,__TIME__,__func__,"message");
     479             : }
     480             : END_TEST
     481             : #endif /* NDEBUG */
     482             : 
     483             : #ifndef NDEBUG
     484             : /** Test _trace_dynmsg with NULL or empty input strings */
     485           3 : START_TEST(assert_tracedynmsg_emptydate) {
     486           3 :     forktest_only;
     487             : #ifdef ENABLE_GCOV
     488             :     if(oomfill_enabled())
     489             :         __gcov_dump();
     490             : #endif
     491             :     oomfill_fill(_i,2);
     492           2 :     _trace_dynmsg(__FILE__,__LINE__,"",__TIME__,__func__,"message");
     493             : }
     494             : END_TEST
     495             : #endif /* NDEBUG */
     496             : 
     497             : #ifndef NDEBUG
     498             : /** Test _trace_dynmsg with NULL or empty input strings */
     499           3 : START_TEST(assert_tracedynmsg_emptytime) {
     500           3 :     forktest_only;
     501             : #ifdef ENABLE_GCOV
     502             :     if(oomfill_enabled())
     503             :         __gcov_dump();
     504             : #endif
     505             :     oomfill_fill(_i,2);
     506           2 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,"",__func__,"message");
     507             : }
     508             : END_TEST
     509             : #endif /* NDEBUG */
     510             : 
     511             : #ifndef NDEBUG
     512             : /** Test _trace_dynmsg with NULL or empty input strings */
     513           3 : START_TEST(assert_tracedynmsg_emptyfunc) {
     514           3 :     forktest_only;
     515             : #ifdef ENABLE_GCOV
     516             :     if(oomfill_enabled())
     517             :         __gcov_dump();
     518             : #endif
     519             :     oomfill_fill(_i,2);
     520           2 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,"","message");
     521             : }
     522             : END_TEST
     523             : #endif /* NDEBUG */
     524             : 
     525             : #ifndef NDEBUG
     526             : /** Test _trace_dynmsg with NULL or empty input strings */
     527           3 : START_TEST(assert_tracedynmsg_emptymsg) {
     528           3 :     forktest_only;
     529             : #ifdef ENABLE_GCOV
     530             :     if(oomfill_enabled())
     531             :         __gcov_dump();
     532             : #endif
     533             :     oomfill_fill(_i,2);
     534           2 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,__func__,"");
     535             :     oomfill_free();
     536             : }
     537             : END_TEST
     538             : #endif /* NDEBUG */
     539             : 
     540             : #ifndef NDEBUG
     541           3 : START_TEST(assert_tracedynmsg_value) {
     542           3 :     char *szLongString =
     543             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     544             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     545             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     546             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     547             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     548             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     549             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     550             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     551             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     552             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     553             :         ;
     554           3 :     char *szParamLongString =
     555             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     556             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     557             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     558             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     559             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     560             :         "%d"
     561             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     562             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     563             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     564             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     565             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     566             :         ;
     567             :     oomfill_fill(_i,2);
     568           3 :     _trace_dynmsg(szLongString,__LINE__,__DATE__,__TIME__,__func__,"message");
     569             :     oomfill_free();
     570             :     oomfill_fill(_i,2);
     571           3 :     _trace_dynmsg(__FILE__,__LINE__,szLongString,__TIME__,__func__,"message");
     572             :     oomfill_free();
     573             :     oomfill_fill(_i,2);
     574           3 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,szLongString,__func__,"message");
     575             :     oomfill_free();
     576             :     oomfill_fill(_i,2);
     577           3 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,szLongString,"message");
     578             :     oomfill_free();
     579             :     oomfill_fill(_i,2);
     580           3 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,__func__,szLongString);
     581             :     oomfill_free();
     582             :     oomfill_fill(_i,2);
     583           3 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,__func__,szLongString,NULL); /* cppcheck-suppress varFuncNullUB */
     584             :     oomfill_free();
     585             :     oomfill_fill(_i,2);
     586           3 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,__func__,szLongString,"");
     587             :     oomfill_free();
     588             :     oomfill_fill(_i,2);
     589           3 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,__func__,szLongString,"abc");
     590             :     oomfill_free();
     591             :     oomfill_fill(_i,2);
     592           3 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,__func__,szLongString,123);
     593             :     oomfill_free();
     594             :     oomfill_fill(_i,2);
     595           3 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,__func__,szParamLongString);
     596             :     oomfill_free();
     597             :     oomfill_fill(_i,2);
     598           3 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,__func__,szParamLongString,NULL); /* cppcheck-suppress varFuncNullUB */
     599             :     oomfill_free();
     600             :     oomfill_fill(_i,2);
     601           3 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,__func__,szParamLongString,"");
     602             :     oomfill_free();
     603             :     oomfill_fill(_i,2);
     604           3 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,__func__,szParamLongString,"abc");
     605             :     oomfill_free();
     606             :     oomfill_fill(_i,2);
     607           3 :     _trace_dynmsg(__FILE__,__LINE__,__DATE__,__TIME__,__func__,szParamLongString,123);
     608             :     oomfill_free();
     609           3 : }
     610             : END_TEST
     611             : #endif /* NDEBUG */
     612             : 
     613           3 : START_TEST(assert_assert_true) {
     614             :     oomfill_fill(_i,2);
     615             :     ASSERT(1);
     616             :     oomfill_free();
     617           3 : }
     618             : END_TEST
     619             : 
     620           3 : START_TEST(assert_assert_false) {
     621           3 :     forktest_only;
     622             : #ifdef ENABLE_GCOV
     623             :     if(oomfill_enabled())
     624             :         __gcov_dump();
     625             : #endif
     626             :     oomfill_fill(_i,2);
     627           2 :     ASSERT(0);
     628             :     oomfill_free();
     629             : }
     630             : END_TEST
     631             : 
     632           3 : START_TEST(assert_dbgtrace) {
     633             :     oomfill_fill(_i,2);
     634           3 :     DBG_TRACE;
     635             :     oomfill_free();
     636           3 : }
     637             : END_TEST
     638             : 
     639           3 : START_TEST(assert_dbgmsg_null) {
     640             :     oomfill_fill(_i,2);
     641           3 :     DBG_MSG(NULL);
     642             :     oomfill_free();
     643           3 : }
     644             : END_TEST
     645             : 
     646           3 : START_TEST(assert_dbgmsg_empty) {
     647             :     oomfill_fill(_i,2);
     648           3 :     DBG_MSG("");
     649             :     oomfill_free();
     650           3 : }
     651             : END_TEST
     652             : 
     653           3 : START_TEST(assert_dbgmsg_szlong) {
     654           3 :     char *szLongString =
     655             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     656             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     657             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     658             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     659             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     660             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     661             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     662             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     663             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     664             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     665             :         ;
     666             :     (void)szLongString; /* Avoid error/warning when NDEBUG voids macro to test */
     667             :     oomfill_fill(_i,2);
     668           3 :     DBG_MSG(szLongString);
     669             :     oomfill_free();
     670           3 : }
     671             : END_TEST
     672             : 
     673           3 : START_TEST(assert_dbgitrace_inst) {
     674             :     unsigned int result;
     675           3 :     result=0;
     676             :     oomfill_fill(_i,2);
     677           3 :     DBG_ITRACE(result=1);
     678             :     oomfill_free();
     679           3 :     ck_assert(1==result);
     680           3 : }
     681             : END_TEST
     682             : 
     683           3 : START_TEST(assert_dbgprintf_null_null) {
     684             :     oomfill_fill(_i,2);
     685           3 :     DBG_PRINTF(NULL,NULL); /* cppcheck-suppress varFuncNullUB */
     686             :     oomfill_free();
     687           3 : }
     688             : END_TEST
     689             : 
     690           3 : START_TEST(assert_dbgprintf_null_empty) {
     691             :     oomfill_fill(_i,2);
     692           3 :     DBG_PRINTF(NULL,"");
     693             :     oomfill_free();
     694           3 : }
     695             : END_TEST
     696             : 
     697           3 : START_TEST(assert_dbgprintf_null_szlong) {
     698           3 :     char *szLongString =
     699             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     700             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     701             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     702             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     703             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     704             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     705             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     706             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     707             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     708             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     709             :         ;
     710             :     (void)szLongString; /* Avoid error/warning when NDEBUG voids macro to test */
     711             :     oomfill_fill(_i,2);
     712           3 :     DBG_PRINTF(NULL,szLongString);
     713             :     oomfill_free();
     714           3 : }
     715             : END_TEST
     716             : 
     717           3 : START_TEST(assert_dbgprintf_null_123) {
     718             :     oomfill_fill(_i,2);
     719           3 :     DBG_PRINTF(NULL,123);
     720             :     oomfill_free();
     721           3 : }
     722             : END_TEST
     723             : 
     724           3 : START_TEST(assert_dbgprintf_empty_null) {
     725             :     oomfill_fill(_i,2);
     726           3 :     DBG_PRINTF("",NULL); /* cppcheck-suppress varFuncNullUB */
     727             :     oomfill_free();
     728           3 : }
     729             : END_TEST
     730             : 
     731           3 : START_TEST(assert_dbgprintf_empty_empty) {
     732             :     oomfill_fill(_i,2);
     733           3 :     DBG_PRINTF("","");
     734             :     oomfill_free();
     735           3 : }
     736             : END_TEST
     737             : 
     738           3 : START_TEST(assert_dbgprintf_empty_szlong) {
     739           3 :     char *szLongString =
     740             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     741             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     742             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     743             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     744             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     745             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     746             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     747             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     748             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     749             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     750             :         ;
     751             :     (void)szLongString; /* Avoid error/warning when NDEBUG voids macro to test */
     752             :     oomfill_fill(_i,2);
     753           3 :     DBG_PRINTF("",szLongString);
     754             :     oomfill_free();
     755           3 : }
     756             : END_TEST
     757             : 
     758           3 : START_TEST(assert_dbgprintf_empty_123) {
     759             :     oomfill_fill(_i,2);
     760           3 :     DBG_PRINTF("",123);
     761             :     oomfill_free();
     762           3 : }
     763             : END_TEST
     764             : 
     765           3 : START_TEST(assert_dbgprintf_szlong_null) {
     766           3 :     char *szLongString =
     767             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     768             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     769             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     770             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     771             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     772             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     773             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     774             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     775             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     776             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     777             :         ;
     778             :     (void)szLongString; /* Avoid error/warning when NDEBUG voids macro to test */
     779             :     oomfill_fill(_i,2);
     780           3 :     DBG_PRINTF(szLongString,NULL); /* cppcheck-suppress varFuncNullUB */
     781             :     oomfill_free();
     782           3 : }
     783             : END_TEST
     784             : 
     785           3 : START_TEST(assert_dbgprintf_szlong_empty) {
     786           3 :     char *szLongString =
     787             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     788             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     789             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     790             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     791             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     792             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     793             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     794             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     795             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     796             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     797             :         ;
     798             :     (void)szLongString; /* Avoid error/warning when NDEBUG voids macro to test */
     799             :     oomfill_fill(_i,2);
     800           3 :     DBG_PRINTF(szLongString,"");
     801             :     oomfill_free();
     802           3 : }
     803             : END_TEST
     804             : 
     805           3 : START_TEST(assert_dbgprintf_szlong_szlong) {
     806           3 :     char *szLongString =
     807             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     808             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     809             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     810             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     811             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     812             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     813             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     814             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     815             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     816             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     817             :         ;
     818             :     (void)szLongString; /* Avoid error/warning when NDEBUG voids macro to test */
     819             :     oomfill_fill(_i,2);
     820           3 :     DBG_PRINTF(szLongString,szLongString);
     821             :     oomfill_free();
     822           3 : }
     823             : END_TEST
     824             : 
     825           3 : START_TEST(assert_dbgprintf_szlong_123) {
     826           3 :     char *szLongString =
     827             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     828             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     829             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     830             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     831             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     832             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     833             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     834             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     835             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     836             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     837             :         ;
     838             :     (void)szLongString; /* Avoid error/warning when NDEBUG voids macro to test */
     839             :     oomfill_fill(_i,2);
     840           3 :     DBG_PRINTF(szLongString,123);
     841             :     oomfill_free();
     842           3 : }
     843             : END_TEST
     844             : 
     845           3 : START_TEST(assert_dbgprintf_szparamlong_null) {
     846           3 :     char *szParamLongString =
     847             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     848             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     849             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     850             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     851             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     852             :         "%d"
     853             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     854             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     855             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     856             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     857             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     858             :         ;
     859             :     (void)szParamLongString; /* Avoid error/warning when NDEBUG voids macro to test */
     860             :     oomfill_fill(_i,2);
     861           3 :     DBG_PRINTF(szParamLongString,NULL); /* cppcheck-suppress varFuncNullUB */
     862             :     oomfill_free();
     863           3 : }
     864             : END_TEST
     865             : 
     866           3 : START_TEST(assert_dbgprintf_szparamlong_empty) {
     867           3 :     char *szParamLongString =
     868             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     869             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     870             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     871             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     872             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     873             :         "%d"
     874             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     875             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     876             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     877             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     878             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     879             :         ;
     880             :     (void)szParamLongString; /* Avoid error/warning when NDEBUG voids macro to test */
     881             :     oomfill_fill(_i,2);
     882           3 :     DBG_PRINTF(szParamLongString,"");
     883             :     oomfill_free();
     884           3 : }
     885             : END_TEST
     886             : 
     887           3 : START_TEST(assert_dbgprintf_szparamlong_szlong) {
     888           3 :     char *szParamLongString =
     889             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     890             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     891             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     892             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     893             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     894             :         "%d"
     895             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     896             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     897             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     898             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     899             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     900             :         ;
     901           3 :     char *szLongString =
     902             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     903             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     904             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     905             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     906             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     907             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     908             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     909             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     910             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     911             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     912             :         ;
     913             :     (void)szParamLongString; /* Avoid error/warning when NDEBUG voids macro to test */
     914             :     (void)szLongString; /* Avoid error/warning when NDEBUG voids macro to test */
     915             :     oomfill_fill(_i,2);
     916           3 :     DBG_PRINTF(szParamLongString,szLongString);
     917             :     oomfill_free();
     918           3 : }
     919             : END_TEST
     920             : 
     921           3 : START_TEST(assert_dbgprintf_szparamlong_123) {
     922           3 :     char *szParamLongString =
     923             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     924             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     925             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     926             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     927             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     928             :         "%d"
     929             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     930             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     931             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     932             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     933             :         "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     934             :         ;
     935             :     (void)szParamLongString; /* Avoid error/warning when NDEBUG voids macro to test */
     936             :     oomfill_fill(_i,2);
     937           3 :     DBG_PRINTF(szParamLongString,123);
     938             :     oomfill_free();
     939           3 : }
     940             : END_TEST
     941             : 
     942             : /************************************************************************/
     943         171 : void assert_checked_uninitialized_setup() {
     944         171 :     signals_catch();
     945         171 :     forktest_gprofdir();
     946         171 : }
     947         111 : void assert_checked_common_teardown() {
     948         111 :     signals_release();
     949             : #ifndef NDEBUG
     950         111 :     ck_assert(0==memtrack_getallocatedblocks());
     951             : #endif /* NDEBUG */
     952         111 : }
     953             : /************************************************************************/
     954         117 : void assert_unchecked_common_setup() {
     955         117 :     forktest_init();
     956         117 : }
     957           3 : void assert_unchecked_common_teardown() {
     958           3 : }
     959             : #ifdef HAVE_LIBOOM
     960             : void assert_unchecked_oom_setup() {
     961             :     oomfill_enable(RAMLIMIT_SOFT);
     962             :     assert_unchecked_common_setup();
     963             : }
     964             : void assert_unchecked_oom_teardown() {
     965             :     oomfill_disable();
     966             :     assert_unchecked_common_teardown();
     967             : }
     968             : #endif /* HAVE_LIBOOM */
     969             : 
     970             : /************************************************************************/
     971         365 : Suite* libdebug_assert_suite() {
     972             :     Suite *s;
     973             :     TCase *tc;
     974             : 
     975         365 :     s = suite_create("LibDebug-Assert");
     976         365 :     tc = tcase_create("Uninitialized");
     977         365 :     tcase_add_checked_fixture(tc, assert_checked_uninitialized_setup, assert_checked_common_teardown);
     978         365 :     tcase_add_unchecked_fixture(tc, assert_unchecked_common_setup, assert_unchecked_common_teardown);
     979         365 :     suite_add_tcase(s, tc);
     980             : #ifndef NDEBUG
     981         365 :     tcase_add_test_raise_signal(tc, assert_trace_nullfile,6);
     982         365 :     tcase_add_test_raise_signal(tc, assert_trace_nullline,6);
     983         365 :     tcase_add_test_raise_signal(tc, assert_trace_nulldate,6);
     984         365 :     tcase_add_test_raise_signal(tc, assert_trace_nulltime,6);
     985         365 :     tcase_add_test_raise_signal(tc, assert_trace_nullfunc,6);
     986         365 :     tcase_add_test_raise_signal(tc, assert_trace_emptyfile,6);
     987         365 :     tcase_add_test_raise_signal(tc, assert_trace_emptydate,6);
     988         365 :     tcase_add_test_raise_signal(tc, assert_trace_emptytime,6);
     989         365 :     tcase_add_test_raise_signal(tc, assert_trace_emptyfunc,6);
     990         365 :     tcase_add_test(tc, assert_trace_value);
     991         365 :     tcase_add_test_raise_signal(tc, assert_tracemsg_nullfile,6);
     992         365 :     tcase_add_test_raise_signal(tc, assert_tracemsg_nullline,6);
     993         365 :     tcase_add_test_raise_signal(tc, assert_tracemsg_nulldate,6);
     994         365 :     tcase_add_test_raise_signal(tc, assert_tracemsg_nulltime,6);
     995         365 :     tcase_add_test_raise_signal(tc, assert_tracemsg_nullfunc,6);
     996         365 :     tcase_add_test_raise_signal(tc, assert_tracemsg_nullmsg,6);
     997         365 :     tcase_add_test_raise_signal(tc, assert_tracemsg_emptyfile,6);
     998         365 :     tcase_add_test_raise_signal(tc, assert_tracemsg_emptydate,6);
     999         365 :     tcase_add_test_raise_signal(tc, assert_tracemsg_emptytime,6);
    1000         365 :     tcase_add_test_raise_signal(tc, assert_tracemsg_emptyfunc,6);
    1001         365 :     tcase_add_test(tc, assert_tracemsg_emptymsg);
    1002         365 :     tcase_add_test(tc, assert_tracemsg_value);
    1003         365 :     tcase_add_test_raise_signal(tc, assert_tracedynmsg_nullfile,6);
    1004         365 :     tcase_add_test_raise_signal(tc, assert_tracedynmsg_nullline,6);
    1005         365 :     tcase_add_test_raise_signal(tc, assert_tracedynmsg_nulldate,6);
    1006         365 :     tcase_add_test_raise_signal(tc, assert_tracedynmsg_nulltime,6);
    1007         365 :     tcase_add_test_raise_signal(tc, assert_tracedynmsg_nullfunc,6);
    1008         365 :     tcase_add_test_raise_signal(tc, assert_tracedynmsg_nullmsg,6);
    1009         365 :     tcase_add_test_raise_signal(tc, assert_tracedynmsg_emptyfile,6);
    1010         365 :     tcase_add_test_raise_signal(tc, assert_tracedynmsg_emptydate,6);
    1011         365 :     tcase_add_test_raise_signal(tc, assert_tracedynmsg_emptytime,6);
    1012         365 :     tcase_add_test_raise_signal(tc, assert_tracedynmsg_emptyfunc,6);
    1013         365 :     tcase_add_test(tc, assert_tracedynmsg_emptymsg);
    1014         365 :     tcase_add_test(tc, assert_tracedynmsg_value);
    1015         365 :     tcase_add_test_raise_signal(tc, assert_assert_false,6);
    1016             : #else
    1017             :     tcase_add_test(tc, assert_assert_false);
    1018             : #endif /* NDEBUG */
    1019         365 :     tcase_add_test(tc, assert_assert_true);
    1020         365 :     tcase_add_test(tc, assert_dbgtrace);
    1021         365 :     tcase_add_test(tc, assert_dbgmsg_null);
    1022         365 :     tcase_add_test(tc, assert_dbgmsg_empty);
    1023         365 :     tcase_add_test(tc, assert_dbgmsg_szlong);
    1024         365 :     tcase_add_test(tc, assert_dbgitrace_inst);
    1025         365 :     tcase_add_test(tc, assert_dbgprintf_null_null);
    1026         365 :     tcase_add_test(tc, assert_dbgprintf_null_empty);
    1027         365 :     tcase_add_test(tc, assert_dbgprintf_null_szlong);
    1028         365 :     tcase_add_test(tc, assert_dbgprintf_null_123);
    1029         365 :     tcase_add_test(tc, assert_dbgprintf_empty_null);
    1030         365 :     tcase_add_test(tc, assert_dbgprintf_empty_empty);
    1031         365 :     tcase_add_test(tc, assert_dbgprintf_empty_szlong);
    1032         365 :     tcase_add_test(tc, assert_dbgprintf_empty_123);
    1033         365 :     tcase_add_test(tc, assert_dbgprintf_szlong_null);
    1034         365 :     tcase_add_test(tc, assert_dbgprintf_szlong_empty);
    1035         365 :     tcase_add_test(tc, assert_dbgprintf_szlong_szlong);
    1036         365 :     tcase_add_test(tc, assert_dbgprintf_szlong_123);
    1037         365 :     tcase_add_test(tc, assert_dbgprintf_szparamlong_null);
    1038         365 :     tcase_add_test(tc, assert_dbgprintf_szparamlong_empty);
    1039         365 :     tcase_add_test(tc, assert_dbgprintf_szparamlong_szlong);
    1040         365 :     tcase_add_test(tc, assert_dbgprintf_szparamlong_123);
    1041             : 
    1042             : #ifdef HAVE_LIBOOM
    1043             :     tc = tcase_create("Uninitialized-OOM");
    1044             :     tcase_set_tags(tc,"oom");
    1045             :     tcase_add_checked_fixture(tc, assert_checked_uninitialized_setup, assert_checked_common_teardown);
    1046             :     tcase_add_unchecked_fixture(tc, assert_unchecked_oom_setup, assert_unchecked_oom_teardown);
    1047             :     suite_add_tcase(s, tc);
    1048             : #ifndef NDEBUG
    1049             :     tcase_add_loop_test_raise_signal(tc, assert_trace_nullfile,6, 0, 10);
    1050             :     tcase_add_loop_test_raise_signal(tc, assert_trace_nullline,6, 0, 10);
    1051             :     tcase_add_loop_test_raise_signal(tc, assert_trace_nulldate,6, 0, 10);
    1052             :     tcase_add_loop_test_raise_signal(tc, assert_trace_nulltime,6, 0, 10);
    1053             :     tcase_add_loop_test_raise_signal(tc, assert_trace_nullfunc,6, 0, 10);
    1054             :     tcase_add_loop_test_raise_signal(tc, assert_trace_emptyfile,6, 0, 10);
    1055             :     tcase_add_loop_test_raise_signal(tc, assert_trace_emptydate,6, 0, 10);
    1056             :     tcase_add_loop_test_raise_signal(tc, assert_trace_emptytime,6, 0, 10);
    1057             :     tcase_add_loop_test_raise_signal(tc, assert_trace_emptyfunc,6, 0, 10);
    1058             :     tcase_add_loop_test(tc, assert_trace_value, 0, 10);
    1059             :     tcase_add_loop_test_raise_signal(tc, assert_tracemsg_nullfile,6, 0, 10);
    1060             :     tcase_add_loop_test_raise_signal(tc, assert_tracemsg_nullline,6, 0, 10);
    1061             :     tcase_add_loop_test_raise_signal(tc, assert_tracemsg_nulldate,6, 0, 10);
    1062             :     tcase_add_loop_test_raise_signal(tc, assert_tracemsg_nulltime,6, 0, 10);
    1063             :     tcase_add_loop_test_raise_signal(tc, assert_tracemsg_nullfunc,6, 0, 10);
    1064             :     tcase_add_loop_test_raise_signal(tc, assert_tracemsg_nullmsg,6, 0, 10);
    1065             :     tcase_add_loop_test_raise_signal(tc, assert_tracemsg_emptyfile,6, 0, 10);
    1066             :     tcase_add_loop_test_raise_signal(tc, assert_tracemsg_emptydate,6, 0, 10);
    1067             :     tcase_add_loop_test_raise_signal(tc, assert_tracemsg_emptytime,6, 0, 10);
    1068             :     tcase_add_loop_test_raise_signal(tc, assert_tracemsg_emptyfunc,6, 0, 10);
    1069             :     tcase_add_loop_test(tc, assert_tracemsg_emptymsg, 0, 10);
    1070             :     tcase_add_loop_test(tc, assert_tracemsg_value, 0, 10);
    1071             :     tcase_add_loop_test_raise_signal(tc, assert_tracedynmsg_nullfile,6, 0, 10);
    1072             :     tcase_add_loop_test_raise_signal(tc, assert_tracedynmsg_nullline,6, 0, 10);
    1073             :     tcase_add_loop_test_raise_signal(tc, assert_tracedynmsg_nulldate,6, 0, 10);
    1074             :     tcase_add_loop_test_raise_signal(tc, assert_tracedynmsg_nulltime,6, 0, 10);
    1075             :     tcase_add_loop_test_raise_signal(tc, assert_tracedynmsg_nullfunc,6, 0, 10);
    1076             :     tcase_add_loop_test_raise_signal(tc, assert_tracedynmsg_nullmsg,6, 0, 10);
    1077             :     tcase_add_loop_test_raise_signal(tc, assert_tracedynmsg_emptyfile,6, 0, 10);
    1078             :     tcase_add_loop_test_raise_signal(tc, assert_tracedynmsg_emptydate,6, 0, 10);
    1079             :     tcase_add_loop_test_raise_signal(tc, assert_tracedynmsg_emptytime,6, 0, 10);
    1080             :     tcase_add_loop_test_raise_signal(tc, assert_tracedynmsg_emptyfunc,6, 0, 10);
    1081             :     tcase_add_loop_test(tc, assert_tracedynmsg_emptymsg, 0, 10);
    1082             :     tcase_add_loop_test(tc, assert_tracedynmsg_value, 0, 10);
    1083             :     tcase_add_loop_test_raise_signal(tc, assert_assert_false,6, 0, 10);
    1084             : #else
    1085             :     tcase_add_loop_test(tc, assert_assert_false, 0, 10);
    1086             : #endif /* NDEBUG */
    1087             :     tcase_add_loop_test(tc, assert_assert_true, 0, 10);
    1088             :     tcase_add_loop_test(tc, assert_dbgtrace, 0, 10);
    1089             :     tcase_add_loop_test(tc, assert_dbgmsg_null, 0, 10);
    1090             :     tcase_add_loop_test(tc, assert_dbgmsg_empty, 0, 10);
    1091             :     tcase_add_loop_test(tc, assert_dbgmsg_szlong, 0, 10);
    1092             :     tcase_add_loop_test(tc, assert_dbgitrace_inst, 0, 10);
    1093             :     tcase_add_loop_test(tc, assert_dbgprintf_null_null, 0, 10);
    1094             :     tcase_add_loop_test(tc, assert_dbgprintf_null_empty, 0, 10);
    1095             :     tcase_add_loop_test(tc, assert_dbgprintf_null_szlong, 0, 10);
    1096             :     tcase_add_loop_test(tc, assert_dbgprintf_null_123, 0, 10);
    1097             :     tcase_add_loop_test(tc, assert_dbgprintf_empty_null, 0, 10);
    1098             :     tcase_add_loop_test(tc, assert_dbgprintf_empty_empty, 0, 10);
    1099             :     tcase_add_loop_test(tc, assert_dbgprintf_empty_szlong, 0, 10);
    1100             :     tcase_add_loop_test(tc, assert_dbgprintf_empty_123, 0, 10);
    1101             :     tcase_add_loop_test(tc, assert_dbgprintf_szlong_null, 0, 10);
    1102             :     tcase_add_loop_test(tc, assert_dbgprintf_szlong_empty, 0, 10);
    1103             :     tcase_add_loop_test(tc, assert_dbgprintf_szlong_szlong, 0, 10);
    1104             :     tcase_add_loop_test(tc, assert_dbgprintf_szlong_123, 0, 10);
    1105             :     tcase_add_loop_test(tc, assert_dbgprintf_szparamlong_null, 0, 10);
    1106             :     tcase_add_loop_test(tc, assert_dbgprintf_szparamlong_empty, 0, 10);
    1107             :     tcase_add_loop_test(tc, assert_dbgprintf_szparamlong_szlong, 0, 10);
    1108             :     tcase_add_loop_test(tc, assert_dbgprintf_szparamlong_123, 0, 10);
    1109             : #endif /* HAVE_LIBOOM */
    1110             : 
    1111         365 :     return s;
    1112             : }
    1113             : 
    1114             : /* vim: set tw=80: */

Generated by: LCOV version 1.16