Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-25393

Fix mysql-test/lib/mtr_cases.pm to search tests in submodules

Details

    • Task
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 10.5.10
    • Tests
    • None

    Description

      This task is a dependency for MCOL-4674.
      It's not possible to run ColumnStore MTR tests using:

      cd mysql-test
      ./mtr columnstore/basic
      

      Two problems are reported in MCOL-4674 and should be fixed inside ColumnStore repository.

      The third problem should be fixed in the server repository:

      Currently mysql-test/lib/mtr_cases.pm searches tests in:

      storage/XXX/mysql-test/XXX
      

      and therefore supports only these cases:

      • both plugin sources and MTR tests for this plugin are in the server repository (e.g. storage/connect)
      • the plugin sources are inside a submodule, but the plugin tests are in the server repository (e.g. storage/rocksdb)

      but it does not support the case when:

      • both plugin sources and MTR tests for this plugin reside in a submodule (e.g. storage/columnstore)

      We should fix mtr_cases.pm to additionally search for tests in:

      storage/XXX/XXX/mysql-test/XXX
      

      This fix for mtr_cases.pm does the job:

      diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm
      index b61333535dc..dd003dea31d 100644
      --- a/mysql-test/lib/mtr_cases.pm
      +++ b/mysql-test/lib/mtr_cases.pm
      @@ -64,8 +64,8 @@ my $plugin_suitedir_regex;
       my $overlay_regex;
       
       if (-d '../sql') {
      -  @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test');
      -  $overlay_regex= '\b(?:storage|plugin)/(\w+)/mysql-test\b';
      +  @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test', 'storage/*/*/mysql-test', );
      +  $overlay_regex= '\b(?:storage|plugin|storage[/][^/]*)/(\w+)/mysql-test\b';
       } else {
         @plugin_suitedirs= ('mysql-test/plugin/*');
         $overlay_regex= '\bmysql-test/plugin/(\w+)\b';
      

      Attachments

        Issue Links

          Activity

            bar Alexander Barkov created issue -
            bar Alexander Barkov made changes -
            Field Original Value New Value
            Description This task is a dependency for MCOL-4674.

            Currently one cannot run ColumnStore MTR tests using:
            {code}
            cd mysql-test
            ./mtr columnstore/basic
            {code}

            Two problems are reported in MCOL-4674 and should be fixed inside ColumnStore repository.

            The third problem should be fixed in the server repository:


            Currently {{mysql-test/lib/mtr_cases.pm}} searches tests in:
            {noformat}
            storage/XXX/mysql-test/XXX
            {noformat}
            and therefore supports only these cases:
            - both plugin sources and MTR tests for this plugin are in the server repository (e.g. storage/connect)
            - the plugin source is inside a submodule, but the plugin tests are in the server repository (e.g. storage/rocksdb)

            but it does not support the case when:
            - both plugin sources and MTR tests for this plugin reside in a submodule

            We should fix {{mtr_cases.pm}} to additionally search for tests in:
            {noformat}
            storage/XXX/XXX/mysql-test/XXX
            {noformat}

            This fix for {{mtr_cases.pm}} does the job:

            {noformat}
            diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm
            index b61333535dc..dd003dea31d 100644
            --- a/mysql-test/lib/mtr_cases.pm
            +++ b/mysql-test/lib/mtr_cases.pm
            @@ -64,8 +64,8 @@ my $plugin_suitedir_regex;
             my $overlay_regex;
             
             if (-d '../sql') {
            - @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test');
            - $overlay_regex= '\b(?:storage|plugin)/(\w+)/mysql-test\b';
            + @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test', 'storage/*/*/mysql-test', );
            + $overlay_regex= '\b(?:storage|plugin|storage[/][^/]*)/(\w+)/mysql-test\b';
             } else {
               @plugin_suitedirs= ('mysql-test/plugin/*');
               $overlay_regex= '\bmysql-test/plugin/(\w+)\b';
            {noformat}
            This task is a dependency for MCOL-4674.
            It's not possible to run ColumnStore MTR tests using:
            {code}
            cd mysql-test
            ./mtr columnstore/basic
            {code}

            Two problems are reported in MCOL-4674 and should be fixed inside ColumnStore repository.

            The third problem should be fixed in the server repository:


            Currently {{mysql-test/lib/mtr_cases.pm}} searches tests in:
            {noformat}
            storage/XXX/mysql-test/XXX
            {noformat}
            and therefore supports only these cases:
            - both plugin sources and MTR tests for this plugin are in the server repository (e.g. storage/connect)
            - the plugin source is inside a submodule, but the plugin tests are in the server repository (e.g. storage/rocksdb)

            but it does not support the case when:
            - both plugin sources and MTR tests for this plugin reside in a submodule

            We should fix {{mtr_cases.pm}} to additionally search for tests in:
            {noformat}
            storage/XXX/XXX/mysql-test/XXX
            {noformat}

            This fix for {{mtr_cases.pm}} does the job:

            {noformat}
            diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm
            index b61333535dc..dd003dea31d 100644
            --- a/mysql-test/lib/mtr_cases.pm
            +++ b/mysql-test/lib/mtr_cases.pm
            @@ -64,8 +64,8 @@ my $plugin_suitedir_regex;
             my $overlay_regex;
             
             if (-d '../sql') {
            - @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test');
            - $overlay_regex= '\b(?:storage|plugin)/(\w+)/mysql-test\b';
            + @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test', 'storage/*/*/mysql-test', );
            + $overlay_regex= '\b(?:storage|plugin|storage[/][^/]*)/(\w+)/mysql-test\b';
             } else {
               @plugin_suitedirs= ('mysql-test/plugin/*');
               $overlay_regex= '\bmysql-test/plugin/(\w+)\b';
            {noformat}
            bar Alexander Barkov made changes -
            Description This task is a dependency for MCOL-4674.
            It's not possible to run ColumnStore MTR tests using:
            {code}
            cd mysql-test
            ./mtr columnstore/basic
            {code}

            Two problems are reported in MCOL-4674 and should be fixed inside ColumnStore repository.

            The third problem should be fixed in the server repository:


            Currently {{mysql-test/lib/mtr_cases.pm}} searches tests in:
            {noformat}
            storage/XXX/mysql-test/XXX
            {noformat}
            and therefore supports only these cases:
            - both plugin sources and MTR tests for this plugin are in the server repository (e.g. storage/connect)
            - the plugin source is inside a submodule, but the plugin tests are in the server repository (e.g. storage/rocksdb)

            but it does not support the case when:
            - both plugin sources and MTR tests for this plugin reside in a submodule

            We should fix {{mtr_cases.pm}} to additionally search for tests in:
            {noformat}
            storage/XXX/XXX/mysql-test/XXX
            {noformat}

            This fix for {{mtr_cases.pm}} does the job:

            {noformat}
            diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm
            index b61333535dc..dd003dea31d 100644
            --- a/mysql-test/lib/mtr_cases.pm
            +++ b/mysql-test/lib/mtr_cases.pm
            @@ -64,8 +64,8 @@ my $plugin_suitedir_regex;
             my $overlay_regex;
             
             if (-d '../sql') {
            - @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test');
            - $overlay_regex= '\b(?:storage|plugin)/(\w+)/mysql-test\b';
            + @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test', 'storage/*/*/mysql-test', );
            + $overlay_regex= '\b(?:storage|plugin|storage[/][^/]*)/(\w+)/mysql-test\b';
             } else {
               @plugin_suitedirs= ('mysql-test/plugin/*');
               $overlay_regex= '\bmysql-test/plugin/(\w+)\b';
            {noformat}
            This task is a dependency for MCOL-4674.
            It's not possible to run ColumnStore MTR tests using:
            {code}
            cd mysql-test
            ./mtr columnstore/basic
            {code}

            Two problems are reported in MCOL-4674 and should be fixed inside ColumnStore repository.

            The third problem should be fixed in the server repository:


            Currently {{mysql-test/lib/mtr_cases.pm}} searches tests in:
            {noformat}
            storage/XXX/mysql-test/XXX
            {noformat}
            and therefore supports only these cases:
            - both plugin sources and MTR tests for this plugin are in the server repository (e.g. storage/connect)
            - the plugin sources are inside a submodule, but the plugin tests are in the server repository (e.g. storage/rocksdb)

            but it does not support the case when:
            - both plugin sources and MTR tests for this plugin reside in a submodule

            We should fix {{mtr_cases.pm}} to additionally search for tests in:
            {noformat}
            storage/XXX/XXX/mysql-test/XXX
            {noformat}

            This fix for {{mtr_cases.pm}} does the job:

            {noformat}
            diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm
            index b61333535dc..dd003dea31d 100644
            --- a/mysql-test/lib/mtr_cases.pm
            +++ b/mysql-test/lib/mtr_cases.pm
            @@ -64,8 +64,8 @@ my $plugin_suitedir_regex;
             my $overlay_regex;
             
             if (-d '../sql') {
            - @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test');
            - $overlay_regex= '\b(?:storage|plugin)/(\w+)/mysql-test\b';
            + @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test', 'storage/*/*/mysql-test', );
            + $overlay_regex= '\b(?:storage|plugin|storage[/][^/]*)/(\w+)/mysql-test\b';
             } else {
               @plugin_suitedirs= ('mysql-test/plugin/*');
               $overlay_regex= '\bmysql-test/plugin/(\w+)\b';
            {noformat}
            bar Alexander Barkov made changes -
            Description This task is a dependency for MCOL-4674.
            It's not possible to run ColumnStore MTR tests using:
            {code}
            cd mysql-test
            ./mtr columnstore/basic
            {code}

            Two problems are reported in MCOL-4674 and should be fixed inside ColumnStore repository.

            The third problem should be fixed in the server repository:


            Currently {{mysql-test/lib/mtr_cases.pm}} searches tests in:
            {noformat}
            storage/XXX/mysql-test/XXX
            {noformat}
            and therefore supports only these cases:
            - both plugin sources and MTR tests for this plugin are in the server repository (e.g. storage/connect)
            - the plugin sources are inside a submodule, but the plugin tests are in the server repository (e.g. storage/rocksdb)

            but it does not support the case when:
            - both plugin sources and MTR tests for this plugin reside in a submodule

            We should fix {{mtr_cases.pm}} to additionally search for tests in:
            {noformat}
            storage/XXX/XXX/mysql-test/XXX
            {noformat}

            This fix for {{mtr_cases.pm}} does the job:

            {noformat}
            diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm
            index b61333535dc..dd003dea31d 100644
            --- a/mysql-test/lib/mtr_cases.pm
            +++ b/mysql-test/lib/mtr_cases.pm
            @@ -64,8 +64,8 @@ my $plugin_suitedir_regex;
             my $overlay_regex;
             
             if (-d '../sql') {
            - @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test');
            - $overlay_regex= '\b(?:storage|plugin)/(\w+)/mysql-test\b';
            + @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test', 'storage/*/*/mysql-test', );
            + $overlay_regex= '\b(?:storage|plugin|storage[/][^/]*)/(\w+)/mysql-test\b';
             } else {
               @plugin_suitedirs= ('mysql-test/plugin/*');
               $overlay_regex= '\bmysql-test/plugin/(\w+)\b';
            {noformat}
            This task is a dependency for MCOL-4674.
            It's not possible to run ColumnStore MTR tests using:
            {code}
            cd mysql-test
            ./mtr columnstore/basic
            {code}

            Two problems are reported in MCOL-4674 and should be fixed inside ColumnStore repository.

            The third problem should be fixed in the server repository:


            Currently {{mysql-test/lib/mtr_cases.pm}} searches tests in:
            {noformat}
            storage/XXX/mysql-test/XXX
            {noformat}
            and therefore supports only these cases:
            - both plugin sources and MTR tests for this plugin are in the server repository (e.g. storage/connect)
            - the plugin sources are inside a submodule, but the plugin tests are in the server repository (e.g. storage/rocksdb)

            but it does not support the case when:
            - both plugin sources and MTR tests for this plugin reside in a submodule (e.g. storage/columnstore)

            We should fix {{mtr_cases.pm}} to additionally search for tests in:
            {noformat}
            storage/XXX/XXX/mysql-test/XXX
            {noformat}

            This fix for {{mtr_cases.pm}} does the job:

            {noformat}
            diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm
            index b61333535dc..dd003dea31d 100644
            --- a/mysql-test/lib/mtr_cases.pm
            +++ b/mysql-test/lib/mtr_cases.pm
            @@ -64,8 +64,8 @@ my $plugin_suitedir_regex;
             my $overlay_regex;
             
             if (-d '../sql') {
            - @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test');
            - $overlay_regex= '\b(?:storage|plugin)/(\w+)/mysql-test\b';
            + @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test', 'storage/*/*/mysql-test', );
            + $overlay_regex= '\b(?:storage|plugin|storage[/][^/]*)/(\w+)/mysql-test\b';
             } else {
               @plugin_suitedirs= ('mysql-test/plugin/*');
               $overlay_regex= '\bmysql-test/plugin/(\w+)\b';
            {noformat}
            bar Alexander Barkov made changes -
            bar Alexander Barkov made changes -
            Description This task is a dependency for MCOL-4674.
            It's not possible to run ColumnStore MTR tests using:
            {code}
            cd mysql-test
            ./mtr columnstore/basic
            {code}

            Two problems are reported in MCOL-4674 and should be fixed inside ColumnStore repository.

            The third problem should be fixed in the server repository:


            Currently {{mysql-test/lib/mtr_cases.pm}} searches tests in:
            {noformat}
            storage/XXX/mysql-test/XXX
            {noformat}
            and therefore supports only these cases:
            - both plugin sources and MTR tests for this plugin are in the server repository (e.g. storage/connect)
            - the plugin sources are inside a submodule, but the plugin tests are in the server repository (e.g. storage/rocksdb)

            but it does not support the case when:
            - both plugin sources and MTR tests for this plugin reside in a submodule (e.g. storage/columnstore)

            We should fix {{mtr_cases.pm}} to additionally search for tests in:
            {noformat}
            storage/XXX/XXX/mysql-test/XXX
            {noformat}

            This fix for {{mtr_cases.pm}} does the job:

            {noformat}
            diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm
            index b61333535dc..dd003dea31d 100644
            --- a/mysql-test/lib/mtr_cases.pm
            +++ b/mysql-test/lib/mtr_cases.pm
            @@ -64,8 +64,8 @@ my $plugin_suitedir_regex;
             my $overlay_regex;
             
             if (-d '../sql') {
            - @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test');
            - $overlay_regex= '\b(?:storage|plugin)/(\w+)/mysql-test\b';
            + @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test', 'storage/*/*/mysql-test', );
            + $overlay_regex= '\b(?:storage|plugin|storage[/][^/]*)/(\w+)/mysql-test\b';
             } else {
               @plugin_suitedirs= ('mysql-test/plugin/*');
               $overlay_regex= '\bmysql-test/plugin/(\w+)\b';
            {noformat}
            This task is a dependency for MCOL-4674.
            It's not possible to run ColumnStore MTR tests using:
            {code}
            cd mysql-test
            ./mtr columnstore/basic
            {code}

            Two problems are reported in MCOL-4674 and should be fixed inside ColumnStore repository.

            The third problem should be fixed in the server repository:


            Currently *{{mysql-test/lib/mtr_cases.pm}}* searches tests in:
            {noformat}
            storage/XXX/mysql-test/XXX
            {noformat}
            and therefore supports only these cases:
            - both plugin sources and MTR tests for this plugin are in the server repository (e.g. storage/connect)
            - the plugin sources are inside a submodule, but the plugin tests are in the server repository (e.g. storage/rocksdb)

            but it does not support the case when:
            - both plugin sources and MTR tests for this plugin reside in a submodule (e.g. storage/columnstore)

            We should fix {{mtr_cases.pm}} to additionally search for tests in:
            {noformat}
            storage/XXX/XXX/mysql-test/XXX
            {noformat}

            This fix for {{mtr_cases.pm}} does the job:

            {noformat}
            diff --git a/mysql-test/lib/mtr_cases.pm b/mysql-test/lib/mtr_cases.pm
            index b61333535dc..dd003dea31d 100644
            --- a/mysql-test/lib/mtr_cases.pm
            +++ b/mysql-test/lib/mtr_cases.pm
            @@ -64,8 +64,8 @@ my $plugin_suitedir_regex;
             my $overlay_regex;
             
             if (-d '../sql') {
            - @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test');
            - $overlay_regex= '\b(?:storage|plugin)/(\w+)/mysql-test\b';
            + @plugin_suitedirs= ('storage/*/mysql-test', 'plugin/*/mysql-test', 'storage/*/*/mysql-test', );
            + $overlay_regex= '\b(?:storage|plugin|storage[/][^/]*)/(\w+)/mysql-test\b';
             } else {
               @plugin_suitedirs= ('mysql-test/plugin/*');
               $overlay_regex= '\bmysql-test/plugin/(\w+)\b';
            {noformat}
            bar Alexander Barkov made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            bar Alexander Barkov made changes -
            issue.field.resolutiondate 2021-04-13 15:48:19.0 2021-04-13 15:48:19.689
            bar Alexander Barkov made changes -
            Fix Version/s 10.5.10 [ 25204 ]
            Fix Version/s 10.5 [ 23123 ]
            Resolution Fixed [ 1 ]
            Status In Progress [ 3 ] Closed [ 6 ]
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 120928 ] MariaDB v4 [ 134427 ]

            People

              bar Alexander Barkov
              bar Alexander Barkov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.