## tests/sq/test_sq.c

/* [<][>][^][v][top][bottom][index][help] */

## DEFINITIONS

This source file includes following functions.

1. CO_get_query_logging
2. CO_get_query_logfile
3. main

       1 /***************************************
       2   $Revision: 1.2 $
       3
       4   Example code: Unit test driver for mysql_driver.c
       5
       6   ******************/ /******************
       7   Modification History:
       8         ottrey (07/04/1999) Created.
       9   ******************/ /******************
      10   Copyright (c) 1999                              RIPE NCC
      11
      12   All Rights Reserved
      13
      14   Permission to use, copy, modify, and distribute this software and its
      15   documentation for any purpose and without fee is hereby granted,
      16   provided that the above copyright notice appear in all copies and that
      17   both that copyright notice and this permission notice appear in
      18   supporting documentation, and that the name of the author not be
      19   used in advertising or publicity pertaining to distribution of the
      20   software without specific, written prior permission.
      21
      22   THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
      23   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL
      24   AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
      25   DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
      26   AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
      27   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
      28   ***************************************/
      29 #include "../test_.c"   /* unit test template */
      30 #include "mysql_driver.h"
      31
      32 #define TEST1 "1 SQ_info_to_string() function"
      33 #define TEST2 "2 SQ_result_to_string() function"
      34 #define TEST3 "3 SQ_get_column_count() function"
      35 #define TEST4 "4 SQ_get_column_label() function"
      36 #define TEST5 "5 SQ_result_to_string() & SQ_info_to_string() functions"
      37
      38 #define HOST "rowan.ripe.net"
      39 #define DATABASE_PORT 3306
      40 #define DATABASE "RIPE"
      41 #define USER "dbint"
      42 #define PASSWD "reimp"
      43
      44 /*
      45 #define HOST "rowan.ripe.net"
      46 #define DATABASE_PORT 3306
      47 #define DATABASE "test"
      48 #define USER "dbint"
      49 #define PASSWD "reimp"
      50 */
      51
      52 int Query_logging=0;
      53 char *Query_logfile="stdout";
      54
      55 int CO_get_query_logging() {
         /* [<][>][^][v][top][bottom][index][help] */
      56   return Query_logging;
      57 } /* CO_get_query_logging() */
      58
      59 char *CO_get_query_logfile() {
         /* [<][>][^][v][top][bottom][index][help] */
      60   return Query_logfile;
      61 } /* CO_get_query_logfile() */
      62
      63 int main(int argc, char **argv) {
         /* [<][>][^][v][top][bottom][index][help] */
      64   FILE *infile;
      65
      66   char input[STR_L];
      67
      68   SQ_connection_t *con;
      69   SQ_result_set_t *result;
      70   unsigned int i;
      71   unsigned int j;
      72   unsigned int no_cols;
      73   unsigned int no_rows;
      74
      75   char *str;
      76   int integer;
      77
      78   /* Default to get the input from stdin */
      79   infile = stdin;
      80
      81   /* Get the options from the command line */
      82   get_options(argc, argv);
      83
      84   /* Make connection */
      85   con = SQ_get_connection(HOST, DATABASE_PORT, DATABASE, USER, PASSWD);
      86   /*
      87   con = SQ_connection_init();
      88   con = SQ_connection_get(con, HOST, DATABASE_PORT, DATABASE, USER, PASSWD);
      89   */
      90
      91   /* TEST1 */
      92   if (Test[1] == 1) {
      93     print_title(TEST1);
      94
      95     /* Get some info */
      96     str = SQ_info_to_string(con);
      97     if (Short != 1) {
      98       printf("%s\n", str);
      99     }
     100     free(str);
     101   } /* TEST1 */
     102
     103   /* TEST2 */
     104   if (Test[2] == 1) {
     105     print_title(TEST2);
     106
     107     if (Infile_name != NULL) {
     108       infile = fopen(Infile_name, "r");
     109
     110       if (infile == NULL) {
     111         perror("Couldn't load infile");
     112         return -1;
     113       }
     114     }
     115
     116     while (fgets(input, STR_L, infile)) {
     117       /* strip the \n */
     118       input[strlen(input)-1] = '\0';
     119
     120       if (Verbose == 1) {
     121         printf("input=%s\n", input);
     122       }
     123
     124       result = SQ_execute_query(con, input);
     125
     126       if (SQ_errno(con) == 0) {
     127         if (result != NULL) {
     128           str = SQ_result_to_string(result);
     129           if (str != NULL) {
     130             if (Short != 1) {
     131               printf(str);
     132             }
     133             free(str);
     134           }
     135         }
     136         /* Add information about the last query */
     137         /* XXX This isn't working!  Grrrr... */
     138         if (Short != 1) {
     139           /*
     140           printf("%s\n", mysql_info(con));
     141           */
     142           printf("%s\n", "XXX Results from mysql_info(con) is meant to go here.  But it's not working!");
     143         }
     144       }
     145       else {
     146         fprintf(stderr, "ERROR %d: %s\n", SQ_errno(con), SQ_error(con));
     147       }
     148
     149       SQ_free_result(result);
     150     }
     151
     152     close(infile);
     153   } /* TEST2 */
     154
     155   /* TEST3 */
     156   if (Test[3] == 1) {
     157     print_title(TEST3);
     158
     159     if (Infile_name != NULL) {
     160       infile = fopen(Infile_name, "r");
     161
     162       if (infile == NULL) {
     163         perror("Couldn't load infile");
     164         return -1;
     165       }
     166     }
     167
     168     while (fgets(input, STR_L, infile)) {
     169       /* strip the \n */
     170       input[strlen(input)-1] = '\0';
     171
     172       if (Verbose == 1) {
     173         printf("input=%s\n", input);
     174       }
     175
     176       result = SQ_execute_query(con, input);
     177
     178       if (result != NULL) {
     179         if (Short != 1) {
     180           printf("column count=%d\n", SQ_get_column_count(result));
     181         }
     182       }
     183       else {
     184         fprintf(stderr, "ERROR %d: %s\n", SQ_errno(con), SQ_error(con));
     185       }
     186
     187       SQ_free_result(result);
     188     }
     189
     190     close(infile);
     191   } /* TEST3 */
     192
     193   /* TEST4 */
     194   if (Test[4] == 1) {
     195     print_title(TEST4);
     196
     197     if (Infile_name != NULL) {
     198       infile = fopen(Infile_name, "r");
     199
     200       if (infile == NULL) {
     201         perror("Couldn't load infile");
     202         return -1;
     203       }
     204     }
     205
     206     while (fgets(input, STR_L, infile)) {
     207       /* strip the \n */
     208       strtok(input, "\n");
     209       /*
     210       input[strlen(input)-1] = '\0';
     211       */
     212
     213       if (Verbose == 1) {
     214         printf("input=%s\n", input);
     215       }
     216
     217       result = SQ_execute_query(con, input);
     218
     219       if (result == NULL) {
     220         fprintf(stderr, "ERROR %d: %s\n", SQ_errno(con), SQ_error(con));
     221         continue;
     222       }
     223
     224       for (i=0; i < SQ_get_column_count(result); i++) {
     225         str = SQ_get_column_label(result, i);
     226         if (Short != 1) {
     227           if (str != NULL) {
     228             printf("%s\t", str);
     229           }
     230           else {
     231             printf("%s\t", "NuLL");
     232           }
     233         }
     234         free(str);
     235       }
     236       if (Short != 1) {
     237         printf("\n");
     238       }
     239
     240       SQ_free_result(result);
     241     }
     242
     243     close(infile);
     244   } /* TEST4 */
     245
     246   /* TEST5 */
     247   if (Test[5] == 1) {
     248     print_title(TEST5);
     249
     250     if (Infile_name != NULL) {
     251       infile = fopen(Infile_name, "r");
     252
     253       if (infile == NULL) {
     254         perror("Couldn't load infile");
     255         return -1;
     256       }
     257     }
     258
     259     while (fgets(input, STR_L, infile)) {
     260       /* strip the \n */
     261       input[strlen(input)-1] = '\0';
     262
     263       if (Verbose == 1) {
     264         printf("input=%s\n", input);
     265       }
     266
     267       result = SQ_execute_query(con, input);
     268
     269       if (result != NULL) {
     270         str = SQ_result_to_string(result);
     271         if (Short != 1) {
     272           printf(str);
     273         }
     274         free(str);
     275       }
     276       else {
     277         fprintf(stderr, "ERROR %d: %s\n", SQ_errno(con), SQ_error(con));
     278       }
     279
     280       SQ_free_result(result);
     281
     282       /* Get some info */
     283       str = SQ_info_to_string(con);
     284       if (Short != 1) {
     285         printf(str);
     286       }
     287       free(str);
     288
     289     }
     290
     291     close(infile);
     292   } /* TEST5 */
     293
     294   /* Close connection */
     295   SQ_close_connection(con);
     296
     297   return 0;
     298
     299 } /* main() */
     300

/* [<][>][^][v][top][bottom][index][help] */