/* Test program for Bug#53899 - compile with gcc -o53899 `mysql_config --cflags --libs` 53899.c - run server with --wait_timeout=1 - run this client against server */ #include #include #include #include #include #define ZERO(F) \ if (F) {\ printf("Error: 0 != %s\n", #F);\ printf("MySQL error: %d - %s\n", mysql_errno(mysql), mysql_error(mysql));\ exit(1);\ } else\ printf("OK: %s\n", #F); #define SZERO(F) \ if (F) {\ printf("Error: 0 != %s\n", #F);\ printf("MySQL stmt error: %d - %s\n", mysql_stmt_errno(stmt), mysql_stmt_error(stmt));\ } else\ printf("OK: %s\n", #F); #define NONZERO(F) \ if (!(F)) {\ printf("Error: 0 == %s\n", #F);\ exit(1);\ } else\ printf("OK: %s\n", #F); #define SELECT "SELECT 1" int main (void) { MYSQL *mysql; MYSQL_STMT *stmt; my_bool reconnect= 1; NONZERO(mysql= mysql_init(NULL)); ZERO(mysql_options(mysql, MYSQL_OPT_RECONNECT, &reconnect)); NONZERO(mysql_real_connect(mysql, "127.0.0.1", NULL, NULL, "test", 0, NULL, 0)); NONZERO(stmt= mysql_stmt_init(mysql)); ZERO(mysql_stmt_prepare(stmt, SELECT, strlen(SELECT))); printf("sleeping\n"); sleep(2); // error message expected but wrong errno SZERO(mysql_stmt_execute(stmt)); mysql_close(mysql); return 0; }