static int run_sql_fix_privilege_tables(void) { int found_real_errors= 0; const char **query_ptr; DYNAMIC_STRING ds_script; DYNAMIC_STRING ds_result; DBUG_ENTER("run_sql_fix_privilege_tables"); if (init_dynamic_string(&ds_script, "", 65536, 1024)) die("Out of memory"); if (init_dynamic_string(&ds_result, "", 512, 512)) die("Out of memory"); verbose("Running 'mysql_fix_privilege_tables'..."); /* Individual queries can not be executed independently by invoking a forked mysql client, because the script uses session variables and prepared statements. */ for ( query_ptr= &mysql_fix_privilege_tables[0]; *query_ptr != NULL; query_ptr++ ) { dynstr_append(&ds_script, *query_ptr); } run_query(ds_script.str, &ds_result, /* Collect result */ TRUE); { /* Scan each line of the result for real errors and ignore the expected one(s) like "Duplicate column name", "Unknown column" and "Duplicate key name" since they just indicate the system tables are already up to date */ char *line= ds_result.str; do { if (!is_expected_error(line)) { /* Something unexpected failed, dump error line to screen */ found_real_errors++; print_line(line); } else if ((strncmp(line, "WARNING", 7) == 0) || (strncmp(line, "Warning", 7) == 0)) { print_line(line); } } while ((line= get_line(line)) && *line); } dynstr_free(&ds_result); dynstr_free(&ds_script); DBUG_RETURN(found_real_errors); }
void Fatal_extension( rtems_fatal_source source, bool is_internal, rtems_fatal_code error ) { print_test_begin_message(); printk( "Fatal error (%s) hit\n", FATAL_ERROR_DESCRIPTION ); if ( source != FATAL_ERROR_EXPECTED_SOURCE ){ printk( "ERROR==> Fatal Extension source Expected ("); Put_Source( FATAL_ERROR_EXPECTED_SOURCE ); printk( ") received ("); Put_Source( source ); printk( ")\n" ); } if ( is_internal != FATAL_ERROR_EXPECTED_IS_INTERNAL ) { if ( is_internal == TRUE ) printk( "ERROR==> Fatal Extension is internal set to TRUE expected FALSE\n" ); else printk( "ERROR==> Fatal Extension is internal set to FALSE expected TRUE\n" ); } #ifdef FATAL_ERROR_EXPECTED_ERROR if ( error != FATAL_ERROR_EXPECTED_ERROR ) { printk( "ERROR==> Fatal Error Expected ("); Put_Error( source, FATAL_ERROR_EXPECTED_ERROR ); printk( ") received ("); Put_Error( source, error ); printk( ")\n" ); } #endif /* FATAL_ERROR_EXPECTED_ERROR */ if ( source == FATAL_ERROR_EXPECTED_SOURCE && is_internal == FATAL_ERROR_EXPECTED_IS_INTERNAL && is_expected_error( error ) ) { rtems_test_endk(); } }
static int run_sql_fix_privilege_tables(void) { int found_real_errors= 0; DYNAMIC_STRING ds_result; DBUG_ENTER("run_sql_fix_privilege_tables"); if (init_dynamic_string(&ds_result, "", 512, 512)) die("Out of memory"); verbose("Phase 3/3: Running 'mysql_fix_privilege_tables'..."); run_query(mysql_fix_privilege_tables, &ds_result, /* Collect result */ TRUE); { /* Scan each line of the result for real errors and ignore the expected one(s) like "Duplicate column name", "Unknown column" and "Duplicate key name" since they just indicate the system tables are already up to date */ char *line= ds_result.str; do { if (!is_expected_error(line)) { /* Something unexpected failed, dump error line to screen */ found_real_errors++; print_line(line); } else if (strncmp(line, "WARNING", 7) == 0) { print_line(line); } } while ((line= get_line(line)) && *line); } dynstr_free(&ds_result); DBUG_RETURN(found_real_errors); }