[MCOL-4674] Fix ColumnStore to run MTR tests in a build directory Created: 2021-04-12  Updated: 2021-05-27  Resolved: 2021-04-15

Status: Closed
Project: MariaDB ColumnStore
Component/s: mtr
Affects Version/s: 5.6.1, 6.1.1
Fix Version/s: 5.6.1, 6.1.1

Type: Task Priority: Major
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Blocks
is blocked by MDEV-25393 Fix mysql-test/lib/mtr_cases.pm to se... Closed
Relates
relates to MCOL-4659 Server MTR failures on ColumnStore tests Open
relates to MCOL-4736 Fix cross-engine mtr tests to run wit... Closed

 Description   

ColumnStore test currently do not work in a build directory.
One cannot do just:

make
cd mysql-test
./mtr --suite=columnstore/basic

There are three problems:

1. Dynamic library location

The dynamic library ha_columnstore.so is generated as

storage/columnstore/columnstore/lib/ha_columnstore.so

.
This location is not standard. MTR expects plugin dynamic libraries to be generated in the top plugin directory, which should be storage/columnstore in case of ColumnStore. We should fix CMake files to generate the shared library as

storage/columnstore/ha_columnstore.so

2. Test location

Tests themselves reside inside the storage/columnstore/columnstore/mtr/ directory. This is also not expected. MTR searches for tests inside /mysql-test/ subdirectories in plugins. For example, ConnectSE tests reside in storage/connect/mysql-test/connect.

We should rename

storage/columnstore/columnstore/mtr

to

storage/columnstore/columnstore/mysql-test

in order to respect MariaDB location convention.

3. Test search paths in mysql-test/lib/mtr_cases.pm in the server repository

This problem should be fixed inside the server repository and is reported as MDEV-25393



 Comments   
Comment by Roman [ 2021-04-13 ]

Actually this looks like a workaround and not the long-term solution. We need to remove contents of the storage/columnstore in MDB and move CMakeLists.txt from storage/columnstore into our engine repo. The current engine repo root will be moved into src directory. With the change the new directories hierarchy in the engine repo will look like this:
mysql-test
src <<< the current engine repo root goes here
CMakeList.txt
MDB will be able to clone our repo w/o having an intermediate storage/columnstore directory.

Generated at Thu Feb 08 02:52:07 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.