LCOV - code coverage report
Current view: top level - src/ctlib/unittests - ct_diagserver.c (source / functions) Hit Total Coverage
Test: FreeTDS coverage Lines: 16 36 44.4 %
Date: 2025-01-18 12:13:41 Functions: 1 1 100.0 %

          Line data    Source code
       1             : #include <config.h>
       2             : 
       3             : #if HAVE_STRING_H
       4             : #include <string.h>
       5             : #endif /* HAVE_STRING_H */
       6             : 
       7             : #include <stdio.h>
       8             : #include <ctpublic.h>
       9             : #include "common.h"
      10             : 
      11             : /* Testing: Server messages limit */
      12             : int
      13           8 : main(int argc, char *argv[])
      14             : {
      15             :         CS_CONTEXT *ctx;
      16             :         CS_CONNECTION *conn;
      17             :         CS_COMMAND *cmd;
      18           8 :         int verbose = 0;
      19             :         CS_RETCODE ret;
      20             :         int i;
      21             :         CS_INT num_msgs, totMsgs;
      22             :         CS_SERVERMSG server_message;
      23             : 
      24             :         if (verbose) {
      25             :                 printf("Trying login\n");
      26             :         }
      27           8 :         ret = try_ctlogin(&ctx, &conn, &cmd, verbose);
      28           8 :         if (ret != CS_SUCCEED) {
      29           0 :                 fprintf(stderr, "Login failed\n");
      30           0 :                 return 1;
      31             :         }
      32             : 
      33           8 :         if (ct_diag(conn, CS_INIT, CS_UNUSED, CS_UNUSED, NULL) != CS_SUCCEED) {
      34           0 :                 fprintf(stderr, "ct_diag(CS_INIT) failed\n");
      35           0 :                 return 1;
      36             :         }
      37             : 
      38           8 :         totMsgs = 4;
      39             : 
      40           8 :         if (ct_diag(conn, CS_MSGLIMIT, CS_SERVERMSG_TYPE, CS_UNUSED, &totMsgs) != CS_SUCCEED) {
      41           0 :                 fprintf(stderr, "ct_diag(CS_STATUS) failed\n");
      42           0 :                 return 1;
      43             :         }
      44             : 
      45           8 :         printf("Maximum message limit is set to %d.\n", totMsgs);
      46             : 
      47           8 :         if (ct_diag(conn, CS_STATUS, CS_SERVERMSG_TYPE, CS_UNUSED, &num_msgs) != CS_SUCCEED) {
      48           0 :                 fprintf(stderr, "ct_diag(CS_STATUS) failed\n");
      49           0 :                 return 1;
      50             :         }
      51             : 
      52           8 :         printf("Number of messages returned: %d\n", num_msgs);
      53             : 
      54           8 :         for (i = 0; i < num_msgs; i++) {
      55             : 
      56           0 :                 if (ct_diag(conn, CS_GET, CS_SERVERMSG_TYPE, i + 1, &server_message) != CS_SUCCEED) {
      57           0 :                         fprintf(stderr, "cs_diag(CS_GET) failed\n");
      58           0 :                         return 1;
      59             :                 }
      60             : 
      61           0 :                 servermsg_cb(ctx, conn, &server_message);
      62             : 
      63             :         }
      64             : 
      65           8 :         if (ct_diag(conn, CS_CLEAR, CS_SERVERMSG_TYPE, CS_UNUSED, NULL) != CS_SUCCEED) {
      66           0 :                 fprintf(stderr, "cs_diag(CS_CLEAR) failed\n");
      67           0 :                 return 1;
      68             :         }
      69             : 
      70           8 :         if (ct_diag(conn, CS_STATUS, CS_SERVERMSG_TYPE, CS_UNUSED, &num_msgs) != CS_SUCCEED) {
      71           0 :                 fprintf(stderr, "cs_diag(CS_STATUS) failed\n");
      72           0 :                 return 1;
      73             :         }
      74           8 :         if (num_msgs != 0) {
      75           0 :                 fprintf(stderr, "cs_diag(CS_CLEAR) failed there are still %d messages on queue\n", num_msgs);
      76           0 :                 return 1;
      77             :         }
      78             : 
      79           8 :         ret = try_ctlogout(ctx, conn, cmd, verbose);
      80           8 :         if (ret != CS_SUCCEED) {
      81           0 :                 fprintf(stderr, "Logout failed\n");
      82           0 :                 return 1;
      83             :         }
      84             : 
      85             :         return 0;
      86             : }

Generated by: LCOV version 1.13