Bug #40446 mysql-test-run --gcov is broken
Submitted: 30 Oct 2008 19:09 Modified: 18 Mar 2009 14:37
Reporter: Sergey Petrunya Email Updates:
Status: Closed Impact on me:
None 
Category:Tools: MTR / mysql-test-run Severity:S3 (Non-critical)
Version:4.1, 5.0, 5.1, 6.0 bzr OS:Any
Assigned to: Ingo Strüwing CPU Architecture:Any

[30 Oct 2008 19:09] Sergey Petrunya
Description:
mysql-test-run --gcov is broken. It doesn't produce gcov errors but prints loads of errors instead. It seems the problem is in mysql-test-run.

How to repeat:
Get the current 6.0 tree
Compile it with ./BUILD/compile-pentium-gcov
cd mysql-test
./mysql-test-run -gcov t/alias.test 2>&1 | tee /tmp/out2

Logging: ./mysql-test-run -gcov t/alias.test
MySQL Version 6.0.8
Using dynamic switching of binlog format
Using ndbcluster when necessary, mysqld supports it
Setting mysqld to support SSL connections
Binaries are debug compiled
Using MTR_BUILD_THREAD      = 0
Using MASTER_MYPORT         = 9306
Using MASTER_MYPORT1        = 9307
Using SLAVE_MYPORT          = 9308
Using SLAVE_MYPORT1         = 9309
Using SLAVE_MYPORT2         = 9310
Using NDBCLUSTER_PORT       = 9311
Using NDBCLUSTER_PORT_SLAVE = 9312
sh: line 1: -or: command not found
rm: missing operand
Try `rm --help' for more information.
Killing Possible Leftover Processes
Removing Stale Files
Creating Directories
Installing Master Database
=======================================================

TEST                           RESULT         TIME (ms)
-------------------------------------------------------

main.alias                     [ pass ]             77
-------------------------------------------------------
Stopping All Servers
Collecting source coverage info...
sh: -c: line 0: syntax error near unexpected token `>>'
sh: -c: line 0: `1 strings-not-used.h 2>>  >>'
sh: -c: line 0: syntax error near unexpected token `>>'
sh: -c: line 0: `1 t_ctype.h 2>>  >>'
sh: -c: line 0: syntax error near unexpected token `>>'
sh: -c: line 0: `1 bchange.c 2>>  >>'
sh: -c: line 0: syntax error near unexpected token `>>'
sh: -c: line 0: `1 bcmp.c 2>>  >>'
sh: -c: line 0: syntax error near unexpected token `>>'
sh: -c: line 0: `1 bcopy-duff.c 2>>  >>'
sh: -c: line 0: syntax error near unexpected token `>>'
sh: -c: line 0: `1 bfill.c 2>>  >>'
sh: -c: line 0: syntax error near unexpected token `>>'
sh: -c: line 0: `1 bmove.c 2>>  >>'
sh: -c: line 0: syntax error near unexpected token `>>'
sh: -c: line 0: `1 bmove512.c 2>>  >>'
sh: -c: line 0: syntax error near unexpected token `>>'
sh: -c: line 0: `1 bmove_upp.c 2>>  >>'
sh: -c: line 0: syntax error near unexpected token `>>'
sh: -c: line 0: `1 bzero.c 2>>  >>'
....
several screenfulls more of this
...
sh: -c: line 0: syntax error near unexpected token `>>'
sh: -c: line 0: `1 password.c 2>>  >>'
sh: -c: line 0: syntax error near unexpected token `>>'
sh: -c: line 0: `1 sql_state.c 2>>  >>'
sh: -c: line 0: syntax error near unexpected token `>>'
sh: -c: line 0: `1 udf_example.c 2>>  >>'
gcov info in , errors in 
All 1 tests were successful.
The servers were restarted 1 times
Spent 0.077 of 13 seconds executing testcases
[1 Nov 2008 18:30] Sveta Smirnova
Thank you for the report.

Verified as described. All versions are affected.
[4 Feb 2009 11:11] Ingo Strüwing
Please re-triage. I suggest W5: There is an excellent workaround:

Branch bzr+ssh://bk-internal.mysql.com/data1/bzrroot/internals/
It contains the tool DGcov as dev/dgcov/dgcov.pl
It is documented at http://forge.mysql.com/wiki/DGCov
Basic usage is:

  BUILD/compile-pentium-gcov
  perl ~/internals/dev/dgcov/dgcov.pl --purge
  tests
  perl ~/internals/dev/dgcov/dgcov.pl [-u]

The advantage is that you can run miltiple tests, even manual ones, between --purge and the final call to dcgov.pl. You can even repeat --purge at any time, and later dgcov.pl will show what has been covered since the last --purge.

I am not sure, what mtr --gcov has been designed for. I never ever used it.
[25 Feb 2009 21:21] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/67611

2780 Ingo Struewing	2009-02-25
      Bug#40446 - mysql-test-run --gcov is broken
      
      Some variable values were missing and perl constructs failed.
      
      Initialized the variables and refactored the gcov functions.
     @ .bzrignore
        Bug#40446 - mysql-test-run --gcov is broken
        Added gcov log files.
     @ mysql-test/lib/mtr_gcov.pl
        Bug#40446 - mysql-test-run --gcov is broken
        Refactored the gcov functions.
     @ mysql-test/mysql-test-run.pl
        Bug#40446 - mysql-test-run --gcov is broken
        Initialized gcov variables.
        Added usage information.
[27 Feb 2009 9:42] Bjørn Munch
I'm not familiar with gcov but presume the logic is OK and has been tested. Some comments:

- You have changed the header of some subs:

  -sub gcov_prepare ($) {
  +sub gcov_prepare ($)
  +{

This should best be avoided.

- Solaris find does not support -or, use -o instead

- Minor quibble: there's no need for " in chdir("$d").
[27 Feb 2009 10:05] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/67816

2779 Ingo Struewing	2009-02-27
      Bug#40446 - mysql-test-run --gcov is broken
      
      Some variable values were missing and perl constructs failed.
      
      Initialized the variables and refactored the gcov functions.
     @ .bzrignore
        Bug#40446 - mysql-test-run --gcov is broken
        Added gcov log files.
     @ mysql-test/lib/mtr_gcov.pl
        Bug#40446 - mysql-test-run --gcov is broken
        Refactored the gcov functions.
     @ mysql-test/mysql-test-run.pl
        Bug#40446 - mysql-test-run --gcov is broken
        Initialized gcov variables.
        Added usage information.
[27 Feb 2009 10:30] Bjørn Munch
Patch looks OK now. Eh, since this is MTR2, versions 4.1 and 5.0 do not apply, as MTR2 does not exist there.
[27 Feb 2009 11:13] Ingo Strüwing
This fix is for MTR2. It will go into 5.1 and up only.
[27 Feb 2009 11:21] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/67835

2827 Ingo Struewing	2009-02-27
      Bug#40446 - mysql-test-run --gcov is broken
      
      Some variable values were missing and perl constructs failed.
      
      Initialized the variables and refactored the gcov functions.
     @ .bzrignore
        Bug#40446 - mysql-test-run --gcov is broken
        Added gcov log files.
     @ mysql-test/lib/mtr_gcov.pl
        Bug#40446 - mysql-test-run --gcov is broken
        Refactored the gcov functions.
     @ mysql-test/mysql-test-run.pl
        Bug#40446 - mysql-test-run --gcov is broken
        Initialized gcov variables.
        Added usage information.
[27 Feb 2009 13:13] Ingo Strüwing
Queued to mysql-6.0-bugteam and mysql-5.1-bugteam.
[13 Mar 2009 19:05] Bugs System
Pushed into 5.1.33 (revid:joro@sun.com-20090313111355-7bsi1hgkvrg8pdds) (version source revid:staale.smedseng@sun.com-20090227160332-3k1kc0rao6y07cbp) (merge vers: 5.1.33) (pib:6)
[14 Mar 2009 23:59] Paul DuBois
Test suite changes. No changelog entry needed.

Setting report to NDI pending push into 6.0.x.
[18 Mar 2009 13:18] Bugs System
Pushed into 6.0.11-alpha (revid:joro@sun.com-20090318122208-1b5kvg6zeb4hxwp9) (version source revid:ingo.struewing@sun.com-20090227125658-k4cj7xgkg1qkvmyt) (merge vers: 6.0.10-alpha) (pib:6)
[18 Mar 2009 14:37] Paul DuBois
Test suite changes. No changelog entry needed.
[9 May 2009 16:42] Bugs System
Pushed into 5.1.34-ndb-6.2.18 (revid:jonas@mysql.com-20090508185236-p9b3as7qyauybefl) (version source revid:jonas@mysql.com-20090508100057-30ote4xggi4nq14v) (merge vers: 5.1.33-ndb-6.2.18) (pib:6)
[9 May 2009 17:40] Bugs System
Pushed into 5.1.34-ndb-6.3.25 (revid:jonas@mysql.com-20090509063138-1u3q3v09wnn2txyt) (version source revid:jonas@mysql.com-20090508175813-s6yele2z3oh6o99z) (merge vers: 5.1.33-ndb-6.3.25) (pib:6)
[9 May 2009 18:37] Bugs System
Pushed into 5.1.34-ndb-7.0.6 (revid:jonas@mysql.com-20090509154927-im9a7g846c6u1hzc) (version source revid:jonas@mysql.com-20090509073226-09bljakh9eppogec) (merge vers: 5.1.33-ndb-7.0.6) (pib:6)