LCOV - code coverage report
Current view: top level - src/odbc/unittests - earlybind.c (source / functions) Hit Total Coverage
Test: FreeTDS coverage Lines: 29 35 82.9 %
Date: 2025-05-09 15:42:11 Functions: 1 1 100.0 %

          Line data    Source code
       1             : #include "common.h"
       2             : 
       3          10 : TEST_MAIN()
       4             : {
       5             :         SQLINTEGER id;
       6             :         SQLLEN ind1, ind2;
       7             :         char name[64];
       8             : 
       9          10 :         odbc_connect();
      10             : 
      11          10 :         odbc_command("CREATE TABLE #test(id INT, name VARCHAR(100))");
      12          10 :         odbc_command("INSERT INTO #test(id, name) VALUES(8, 'sysobjects')");
      13             : 
      14             :         /* bind before select */
      15          10 :         SQLBindCol(odbc_stmt, 1, SQL_C_SLONG, &id, sizeof(SQLINTEGER), &ind1);
      16          10 :         SQLBindCol(odbc_stmt, 2, SQL_C_CHAR, name, sizeof(name), &ind2);
      17             : 
      18             :         /* do select */
      19          10 :         odbc_command("SELECT id, name FROM #test WHERE name = 'sysobjects' SELECT 123, 'foo'");
      20             : 
      21             :         /* get results */
      22          10 :         id = -1;
      23          10 :         memset(name, 0, sizeof(name));
      24          10 :         CHKFetch("S");
      25             : 
      26          10 :         if (id == -1 || strcmp(name, "sysobjects") != 0) {
      27           0 :                 fprintf(stderr, "wrong results\n");
      28           0 :                 return 1;
      29             :         }
      30             : 
      31             :         /* discard others data */
      32          10 :         CHKFetch("No");
      33             : 
      34          10 :         SQLMoreResults(odbc_stmt);
      35             : 
      36          10 :         id = -1;
      37          10 :         memset(name, 0, sizeof(name));
      38          10 :         CHKFetch("S");
      39             : 
      40          10 :         if (id != 123 || strcmp(name, "foo") != 0) {
      41           0 :                 fprintf(stderr, "wrong results\n");
      42           0 :                 return 1;
      43             :         }
      44             : 
      45             :         /* discard others data */
      46          10 :         CHKFetch("No");
      47             : 
      48          10 :         SQLMoreResults(odbc_stmt);
      49             : 
      50             :         /* other select */
      51          10 :         odbc_command("SELECT 321, 'minni'");
      52             : 
      53             :         /* get results */
      54          10 :         id = -1;
      55          10 :         memset(name, 0, sizeof(name));
      56          10 :         CHKFetch("S");
      57             : 
      58          10 :         if (id != 321 || strcmp(name, "minni") != 0) {
      59           0 :                 fprintf(stderr, "wrong results\n");
      60           0 :                 return 1;
      61             :         }
      62             : 
      63             :         /* discard others data */
      64          10 :         CHKFetch("No");
      65             : 
      66          10 :         SQLMoreResults(odbc_stmt);
      67             : 
      68          10 :         odbc_disconnect();
      69             : 
      70          10 :         printf("Done.\n");
      71          10 :         return 0;
      72             : }

Generated by: LCOV version 1.13