diff --git a/.bzrignore b/.bzrignore index e07aa0cf86a..c90b5c651ab 100644 --- a/.bzrignore +++ b/.bzrignore @@ -7,6 +7,8 @@ *.d *.da *.exe +*.gcda +*.gcno *.gcov *.idb *.la diff --git a/BUILD/compile-pentium-gcov b/BUILD/compile-pentium-gcov index b024bba49bf..ca37f78e283 100755 --- a/BUILD/compile-pentium-gcov +++ b/BUILD/compile-pentium-gcov @@ -14,7 +14,7 @@ export LDFLAGS="-fprofile-arcs -ftest-coverage" # The -fprofile-arcs and -ftest-coverage options cause GCC to instrument the # code with profiling information used by gcov. # the -DDISABLE_TAO_ASM is needed to avoid build failures in Yassl. -extra_flags="$pentium_cflags -fprofile-arcs -ftest-coverage -DDISABLE_TAO_ASM" +extra_flags="$pentium_cflags -fprofile-arcs -ftest-coverage -DDISABLE_TAO_ASM -DHAVE_MUTEX_THREAD_ONLY" extra_configs="$pentium_configs $debug_configs --disable-shared $static_link" extra_configs="$extra_configs $max_configs" diff --git a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result index bb6c2c3beee..7237cf11fc0 100644 --- a/mysql-test/r/show_check.result +++ b/mysql-test/r/show_check.result @@ -623,4 +623,10 @@ delete from mysql.db where user='mysqltest_4'; delete from mysql.tables_priv where user='mysqltest_4'; flush privileges; drop database mysqltest; +show full plugin; +show warnings; +Level Code Message +Warning 1541 The syntax 'SHOW PLUGIN' is deprecated and will be removed in MySQL 5.2. Please use 'SHOW PLUGINS' instead. +show plugin; +show plugins; End of 5.1 tests diff --git a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test index 2f44f4e97c5..94894ef50de 100644 --- a/mysql-test/t/show_check.test +++ b/mysql-test/t/show_check.test @@ -445,4 +445,17 @@ delete from mysql.tables_priv where user='mysqltest_4'; flush privileges; drop database mysqltest; +# +# Ensure that show plugin code is tested +# + +--disable_result_log +show full plugin; +--enable_result_log +show warnings; +--disable_result_log +show plugin; +show plugins; +--enable_result_log + --echo End of 5.1 tests diff --git a/mysys/my_handler.c b/mysys/my_handler.c index da619a49ffd..bfec44d57a4 100644 --- a/mysys/my_handler.c +++ b/mysys/my_handler.c @@ -548,7 +548,8 @@ HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, uchar *a) case HA_KEYTYPE_DOUBLE: a= end; break; - case HA_KEYTYPE_END: + case HA_KEYTYPE_END: /* purecov: inspected */ + /* keep compiler happy */ DBUG_ASSERT(0); break; } diff --git a/sql/filesort.cc b/sql/filesort.cc index e712bed9e13..f41d72ac07a 100644 --- a/sql/filesort.cc +++ b/sql/filesort.cc @@ -688,9 +688,17 @@ static void make_sortkey(register SORTPARAM *param, bzero((char*) to-1,sort_field->length+1); else { + /* purecov: begin deadcode */ + /* + This should only happen during extreme conditions if we run out + of memory or have an item marked not null when it can be null. + This code is here mainly to avoid a hard crash in this case. + */ + DBUG_ASSERT(0); DBUG_PRINT("warning", ("Got null on something that shouldn't be null")); bzero((char*) to,sort_field->length); // Avoid crash + /* purecov: end */ } break; } @@ -699,7 +707,7 @@ static void make_sortkey(register SORTPARAM *param, diff=(int) (sort_field_length - length); if (diff < 0) { - diff=0; /* purecov: inspected */ + diff=0; length= sort_field_length; } if (sort_field->suffix_length) diff --git a/sql/ha_ndbcluster_binlog.cc b/sql/ha_ndbcluster_binlog.cc index b18fa8ec931..b88002b8529 100644 --- a/sql/ha_ndbcluster_binlog.cc +++ b/sql/ha_ndbcluster_binlog.cc @@ -125,6 +125,7 @@ static TABLE_LIST binlog_tables; */ #ifndef DBUG_OFF +/* purecov: begin deadcode */ static void print_records(TABLE *table, const char *record) { for (uint j= 0; j < table->s->fields; j++) @@ -144,6 +145,7 @@ static void print_records(TABLE *table, const char *record) DBUG_PRINT("info",("[%u]field_ptr[0->%d]: %s", j, n, buf)); } } +/* purecov: end */ #else #define print_records(a,b) #endif diff --git a/sql/log_event.cc b/sql/log_event.cc index 7cffa552954..36805e0043d 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -5918,6 +5918,7 @@ int Table_map_log_event::exec_event(st_relay_log_info *rli) if (col <= tsh->fields) { + /* purecov: begin inspected */ /* If we get here, the number of columns in the event didn't match the number of columns in the table on the slave, *or* @@ -5950,6 +5951,7 @@ int Table_map_log_event::exec_event(st_relay_log_info *rli) thd->query_error= 1; error= ERR_BAD_TABLE_DEF; goto err; + /* purecov: end */ } /* diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 4ab1b365f73..6e57993a61a 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -3223,9 +3223,11 @@ server."); /* fall back to the log files if tables are not present */ if (have_csv_db == SHOW_OPTION_NO) { + /* purecov: begin inspected */ sql_print_error("CSV engine is not present, falling back to the " "log files"); log_output_options= (log_output_options & ~LOG_TABLE) | LOG_FILE; + /* purecov: end */ } logger.set_handlers(LOG_FILE, opt_slow_log ? log_output_options:LOG_NONE, diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 1ecc7b78315..b80e9015d24 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -5218,7 +5218,7 @@ static bool execute_sqlcom_select(THD *thd, TABLE_LIST *all_tables) even if the query itself redirects the output. */ if (!(result= new select_send())) - return 1; + return 1; /* purecov: inspected */ thd->send_explain_fields(result); res= mysql_explain_union(thd, &thd->lex->unit, result); if (lex->describe & DESCRIBE_EXTENDED) @@ -5237,7 +5237,7 @@ static bool execute_sqlcom_select(THD *thd, TABLE_LIST *all_tables) else { if (!result && !(result= new select_send())) - return 1; + return 1; /* purecov: inspected */ query_cache_store_query(thd, all_tables); res= handle_select(thd, lex, result, 0); if (result != lex->result)