LCOV - code coverage report
Current view: top level - src/interfaces/ecpg/test/preproc - whenever.pgc (source / functions) Coverage Total Hit
Test: Code coverage Lines: 0.0 % 41 0
Test Date: 2026-01-26 10:56:24 Functions: 0.0 % 4 0
Legend: Lines:     hit not hit

            Line data    Source code
       1              : #include <stdlib.h>
       2              : 
       3              : exec sql include ../regression;
       4              : 
       5              : exec sql whenever sqlerror sqlprint;
       6              : 
       7            0 : static void print(const char *msg)
       8              : {
       9            0 :         fprintf(stderr, "Error in statement '%s':\n", msg);
      10            0 :         sqlprint();
      11            0 : }
      12              : 
      13            0 : static void print2(void)
      14              : {
      15            0 :         fprintf(stderr, "Found another error\n");
      16            0 :         sqlprint();
      17            0 : }
      18              : 
      19            0 : static void warn(void)
      20              : {
      21            0 :         fprintf(stderr, "Warning: At least one column was truncated\n");
      22            0 : }
      23              : 
      24            0 : int main(void)
      25              : {
      26            0 :         exec sql int i;
      27            0 :         exec sql char c[6];
      28              : 
      29            0 :         ECPGdebug(1, stderr);
      30              : 
      31            0 :         exec sql connect to REGRESSDB1;
      32            0 :         exec sql create table test(i int, c char(10));
      33            0 :         exec sql insert into test values(1, 'abcdefghij');
      34            0 : 
      35              :         exec sql whenever sqlwarning do warn();
      36            0 :         exec sql select * into :i, :c from test;
      37            0 :         exec sql rollback;
      38            0 : 
      39            0 :         exec sql select * into :i from nonexistent;
      40            0 :         exec sql rollback;
      41            0 : 
      42              :         exec sql whenever sqlerror do print("select");
      43            0 :         exec sql select * into :i from nonexistent;
      44            0 :         exec sql rollback;
      45            0 : 
      46              :         exec sql whenever sqlerror call print2();
      47            0 :         exec sql select * into :i from nonexistent;
      48            0 :         exec sql rollback;
      49            0 : 
      50              :         exec sql whenever sqlerror continue;
      51            0 :         exec sql select * into :i from nonexistent;
      52            0 :         exec sql rollback;
      53            0 : 
      54              :         exec sql whenever sqlerror goto error;
      55            0 :         exec sql select * into :i from nonexistent;
      56            0 :         printf("Should not be reachable\n");
      57              : 
      58              :         error:
      59            0 :         exec sql rollback;
      60            0 : 
      61              :         exec sql whenever sqlerror stop;
      62              :         /* This cannot fail, thus we don't get an exit value not equal 0. */
      63              :         /* However, it still test the precompiler output. */
      64            0 :         exec sql select 1 into :i;
      65            0 :         exec sql rollback;
      66            0 :         exit (0);
      67              : }
        

Generated by: LCOV version 2.3.2-1