• Daniel Black's avatar
    MDEV-15503: mtr fix --strace · 866e5c25
    Daniel Black authored
    $glob_mysql_test_dir was the wrong directory for strace output as
    it was for in-tree builds only so failed for:
    * out of tree builds
    * --parallel; and
    * --mem
    
    strace output wasn't saved.
    
    strace-option never replaced existing arguments (so ammended
    documentation).
    
    strace-client didn't accept an argument as described.
    
    Replaced specification of client with this with 'stracer' to be
    consistent with --debugger option.
    
    For consistency with debugger options, --client-strace was added to
    execute the strace on the mysqltest.
    
    Example: Running one test
    
    $ ./mtr --strace --client-strace funcs_1.is_table_constraints
    Logging: ./mtr  --strace --client-strace funcs_1.is_table_constraints
    vardir: /home/anel/mariadb/5.5/mysql-test/var
    Checking leftover processes...
    Removing old var directory...
     - WARNING: Using the 'mysql-test/var' symlink
    Creating var directory '/home/anel/mariadb/5.5/mysql-test/var'...
    Checking supported features...
    MariaDB Version 5.5.67-MariaDB-debug
    Installing system database...
     - SSL connections supported
     - binaries are debug compiled
    Collecting tests...
    
    ==============================================================================
    
    TEST                                      RESULT   TIME (ms) or COMMENT
    --------------------------------------------------------------------------
    
    worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019
    funcs_1.is_table_constraints             [ pass ]   1270
    --------------------------------------------------------------------------
    The servers were restarted 0 times
    Spent 1.270 of 3 seconds executing testcases
    
    Completed: All 1 tests were successful
    
    $ find -L . -name \*strace -ls
          653     56 -rw-r--r--   1 anel     anel        57147 Nov 29 15:08 ./var/log/mysqltest.strace
          646   1768 -rw-r--r--   1 anel     anel      1809855 Nov 29 15:08 ./var/log/mysqld.1.strace
    
    Example: Running test in parallel
    
    $ mysql-test/mtr --strace --client-strace  --mem --parallel=3  main.select
    Logging: /home/dan/software_projects/mariadb-server/mysql-test/mysql-test-run.pl  --strace --client-strace --mem --parallel=3 main.select
    vardir: /home/dan/software_projects/build-mariadb-10.3/mysql-test/var
    Checking leftover processes...
    Removing old var directory...
    Creating var directory '/home/dan/software_projects/build-mariadb-10.3/mysql-test/var'...
     - symlinking 'var' to '/dev/shm/var_auto_0v2E'
    Checking supported features...
    MariaDB Version 5.5.67-MariaDB
     - SSL connections supported
    Collecting tests...
    Installing system database...
    
    ==============================================================================
    
    TEST                                  WORKER RESULT   TIME (ms) or COMMENT
    --------------------------------------------------------------------------
    
    worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019
    worker[3]  - 'localhost:16040' was not free
    worker[2] Using MTR_BUILD_THREAD 301, with reserved ports 16020..16039
    worker[3] Using MTR_BUILD_THREAD 303, with reserved ports 16060..16079
    main.select                              w1 [ pass ]   7310
    --------------------------------------------------------------------------
    The servers were restarted 0 times
    Spent 7.310 of 11 seconds executing testcases
    
    Completed: All 1 tests were successful.
    
    $ find mysql-test/var/ -name \*strace -ls
      5213766   1212 -rw-r--r--   1  dan      dan       1237817 May 20 16:47 mysql-test/var/1/log/mysqltest.strace
      5214733  13016 -rw-r--r--   1  dan      dan      13328335 May 20 16:47 mysql-test/var/1/log/mysqld.1.strace
    
    $ mysql-test/mtr --strace --client-strace --strace-option='-e' --strace-option='trace=openat'  --mem --parallel=3  main.select
    ...
    $ find mysql-test/var/ -name \*strace -ls
      5220790      8 -rw-r--r--   1  dan      dan          6291 May 20 17:02 mysql-test/var/3/log/mysqltest.strace
      5224140    308 -rw-r--r--   1  dan      dan        314356 May 20 17:02 mysql-test/var/3/log/mysqld.1.strace
    $ more mysql-test/var/3/mysqltest.strace
    1692  openat(AT_FDCWD, "/home/dan/software_projects/mariadb-server/libmysql/.libs/tls/x86_64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) =
    -1 ENOENT (No such file or directory)
    1692  openat(AT_FDCWD, "/home/dan/software_projects/mariadb-server/libmysql/.libs/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOE
    NT (No such file or directory)
    
    Closes #600
    866e5c25
mysql-test-run.pl 191 KB