LCOV - code coverage report
Current view: top level - src/ctlib/unittests - ct_options.c (source / functions) Hit Total Coverage
Test: FreeTDS coverage Lines: 34 67 50.7 %
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: Set and get options with ct_options */
      12             : int
      13           8 : main(int argc, char *argv[])
      14             : {
      15           8 :         int verbose = 0;
      16             : 
      17             :         CS_CONTEXT *ctx;
      18             :         CS_CONNECTION *conn;
      19             :         CS_COMMAND *cmd;
      20             :         CS_RETCODE ret;
      21             : 
      22           8 :         CS_INT datefirst = 0;
      23           8 :         CS_INT dateformat = 0;
      24           8 :         CS_BOOL truefalse = 999;
      25             : 
      26             :         if (verbose) {
      27             :                 printf("Trying login\n");
      28             :         }
      29             : 
      30           8 :         if (argc >= 5) {
      31           0 :                 common_pwd.initialized = argc;
      32           0 :                 strcpy(common_pwd.SERVER, argv[1]);
      33           0 :                 strcpy(common_pwd.DATABASE, argv[2]);
      34           0 :                 strcpy(common_pwd.USER, argv[3]);
      35           0 :                 strcpy(common_pwd.PASSWORD, argv[4]);
      36             :         }
      37             : 
      38           8 :         ret = try_ctlogin(&ctx, &conn, &cmd, verbose);
      39           8 :         if (ret != CS_SUCCEED) {
      40           0 :                 fprintf(stderr, "Login failed\n");
      41           0 :                 return 1;
      42             :         }
      43             : 
      44           8 :         printf("%s: Set/Retrieve DATEFIRST\n", __FILE__);
      45             : 
      46             :         /* DATEFIRST */
      47           8 :         datefirst = CS_OPT_WEDNESDAY;
      48           8 :         if (ct_options(conn, CS_SET, CS_OPT_DATEFIRST, &datefirst, CS_UNUSED, NULL) != CS_SUCCEED) {
      49           0 :                 fprintf(stderr, "ct_options() failed\n");
      50           0 :                 return 1;
      51             :         }
      52             : 
      53           8 :         datefirst = 999;
      54             : 
      55           8 :         if (ct_options(conn, CS_GET, CS_OPT_DATEFIRST, &datefirst, CS_UNUSED, NULL) != CS_SUCCEED) {
      56           0 :                 fprintf(stderr, "ct_options() failed\n");
      57           0 :                 return 1;
      58             :         }
      59           8 :         if (datefirst != CS_OPT_WEDNESDAY) {
      60           0 :                 fprintf(stderr, "ct_options(DATEFIRST) didn't work retrieved %d expected %d\n", datefirst, CS_OPT_WEDNESDAY);
      61           0 :                 return 1;
      62             :         }
      63             : 
      64           8 :         printf("%s: Set/Retrieve DATEFORMAT\n", __FILE__);
      65             : 
      66             :         /* DATEFORMAT */
      67           8 :         dateformat = CS_OPT_FMTMYD;
      68           8 :         if (ct_options(conn, CS_SET, CS_OPT_DATEFORMAT, &dateformat, CS_UNUSED, NULL) != CS_SUCCEED) {
      69           0 :                 fprintf(stderr, "ct_options() failed\n");
      70           0 :                 return 1;
      71             :         }
      72             : 
      73           8 :         dateformat = 999;
      74             : 
      75           8 :         if (ct_options(conn, CS_GET, CS_OPT_DATEFORMAT, &dateformat, CS_UNUSED, NULL) != CS_SUCCEED) {
      76           0 :                 fprintf(stderr, "ct_options() failed\n");
      77           0 :                 return 1;
      78             :         }
      79           8 :         if (dateformat != CS_OPT_FMTMYD) {
      80           0 :                 fprintf(stderr, "ct_options(DATEFORMAT) didn't work retrieved %d expected %d\n", dateformat, CS_OPT_FMTMYD);
      81           0 :                 return 1;
      82             :         }
      83             : 
      84           8 :         printf("%s: Set/Retrieve ANSINULL\n", __FILE__);
      85             :         /* ANSI NULLS */
      86           8 :         truefalse = CS_TRUE;
      87           8 :         if (ct_options(conn, CS_SET, CS_OPT_ANSINULL, &truefalse, CS_UNUSED, NULL) != CS_SUCCEED) {
      88           0 :                 fprintf(stderr, "ct_options() failed\n");
      89           0 :                 return 1;
      90             :         }
      91             : 
      92           8 :         truefalse = 999;
      93           8 :         if (ct_options(conn, CS_GET, CS_OPT_ANSINULL, &truefalse, CS_UNUSED, NULL) != CS_SUCCEED) {
      94           0 :                 fprintf(stderr, "ct_options() failed\n");
      95           0 :                 return 1;
      96             :         }
      97           8 :         if (truefalse != CS_TRUE) {
      98           0 :                 fprintf(stderr, "ct_options(ANSINULL) didn't work\n");
      99           0 :                 return 1;
     100             :         }
     101             : 
     102           8 :         printf("%s: Set/Retrieve CHAINXACTS\n", __FILE__);
     103             :         /* CHAINED XACT */
     104           8 :         truefalse = CS_TRUE;
     105           8 :         if (ct_options(conn, CS_SET, CS_OPT_CHAINXACTS, &truefalse, CS_UNUSED, NULL) != CS_SUCCEED) {
     106           0 :                 fprintf(stderr, "ct_options() failed\n");
     107           0 :                 return 1;
     108             :         }
     109             : 
     110           8 :         truefalse = 999;
     111           8 :         if (ct_options(conn, CS_GET, CS_OPT_CHAINXACTS, &truefalse, CS_UNUSED, NULL) != CS_SUCCEED) {
     112           0 :                 fprintf(stderr, "ct_options() failed\n");
     113           0 :                 return 1;
     114             :         }
     115           8 :         if (truefalse != CS_TRUE) {
     116           0 :                 fprintf(stderr, "ct_options(CHAINXACTS) didn't work\n");
     117           0 :                 return 1;
     118             :         }
     119             : 
     120             :         if (verbose) {
     121             :                 printf("Trying logout\n");
     122             :         }
     123           8 :         ret = try_ctlogout(ctx, conn, cmd, verbose);
     124           8 :         if (ret != CS_SUCCEED) {
     125           0 :                 fprintf(stderr, "Logout failed\n");
     126           0 :                 return 1;
     127             :         }
     128             : 
     129             :         return 0;
     130             : }

Generated by: LCOV version 1.13