SHA256
1
0
forked from pool/mariadb

Accepting request 755371 from home:pgajdos

- added rpm test macros: %mysql_testserver_start,
  %mysql_testserver_cconf, %mysql_testserver_stop
  First two consuments are python-sortinghat and python-mysqlclient.

OBS-URL: https://build.opensuse.org/request/show/755371
OBS-URL: https://build.opensuse.org/package/show/server:database/mariadb?expand=0&rev=241
This commit is contained in:
Martin Pluskal 2019-12-10 09:51:33 +00:00 committed by Git OBS Bridge
parent 2933da7de9
commit a46f46d4ab
3 changed files with 123 additions and 0 deletions

99
macros.mariadb-test Normal file
View File

@ -0,0 +1,99 @@
%__mysql_test_run_dir /tmp/mysql
%__mysql_test_user abuild
%__mysql_test_pass abuildpw
%__mysql_test_cconf abuild-myclient.cnf
%__mysql_test_port 63306
#
# macro: mysql_testserver_start -- start a test mysqld instance
#
# usage: %mysql_test_start -u <user> -p <password> -t <port>
#
%mysql_testserver_start(u:p:t:) \
TEST_RUN_DIR=%{__mysql_test_run_dir} \
TEST_USER="%{-u:%{-u*}}" \
if [ -z "$TEST_USER" ]; then \
TEST_USER='%{__mysql_test_user}' \
fi \
TEST_PASS="%{-p:%{-p*}}" \
if [ -z "$TEST_PASS" ]; then \
TEST_PASS='%{__mysql_test_pass}' \
fi \
TEST_PORT="%{-t:%{-t*}}" \
if [ -z "$TEST_PORT" ]; then \
TEST_PORT='%{__mysql_test_port}' \
fi \
\
[ -d $TEST_RUN_DIR ] && rm -r $TEST_RUN_DIR \
mkdir -p $TEST_RUN_DIR/datadir{,-private} \
\
cat << EOF > $TEST_RUN_DIR/my.cnf \
[client] \
socket = $TEST_RUN_DIR/mysql.sock \
port = $TEST_PORT \
[mysqld] \
user = $TEST_USER \
log-error = $TEST_RUN_DIR/mysqld.log \
secure_file_priv = $TEST_RUN_DIR/datadir-private \
datadir = $TEST_RUN_DIR/datadir \
server-id = 1 \
socket = $TEST_RUN_DIR/mysql.sock \
port = $TEST_PORT \
sql_mode = '' \
EOF\
\
echo '>>> Initializing databases' \
mysql_install_db --defaults-file=$TEST_RUN_DIR/my.cnf \
\
echo '>>> Invoking mysqld' \
/usr/sbin/mysqld --defaults-file=$TEST_RUN_DIR/my.cnf& \
sleep 2 \
\
echo '>>> Creating authentication database' \
mysqladmin --defaults-file=$TEST_RUN_DIR/my.cnf --user root password 'roots_secret' \
mysqladmin --defaults-file=$TEST_RUN_DIR/my.cnf --user root --password='roots_secret' create testhat \
mysql --defaults-file=$TEST_RUN_DIR/my.cnf --user root --password='roots_secret' -e "CREATE USER '$TEST_USER'@'localhost' IDENTIFIED BY '$TEST_PASS'" \
mysql --defaults-file=$TEST_RUN_DIR/my.cnf --user root --password='roots_secret' -e "GRANT ALL PRIVILEGES ON * . * TO '$TEST_USER'@'localhost'" \
mysql --defaults-file=$TEST_RUN_DIR/my.cnf --user root --password='roots_secret' -e "FLUSH PRIVILEGES" \
%nil
#
# macro mysql_testserver_cconf -- generate client access conf
#
%mysql_testserver_cconf(n:t:) \
TEST_RUN_DIR=%{__mysql_test_run_dir} \
TEST_CCONF="%{-n:%{-n*}}" \
if [ -z "$TEST_CCONF" ]; then \
TEST_CCONF='%{__mysql_test_cconf}' \
fi \
TEST_PORT="%{-t:%{-t*}}" \
if [ -z "$TEST_PORT" ]; then \
TEST_PORT='%{__mysql_test_port}' \
fi \
cat << EOF > $TEST_CCONF \
[client] \
user = abuild \
password = abuildpw \
database = test \
socket = $TEST_RUN_DIR/mysql.sock \
port = $TEST_PORT \
EOF\
%nil
#
# macro: mysql_testserver_stop -- start a test mysqld instance
#
# usage: %mysql_test_stop
#
%mysql_testserver_stop() \
TEST_RUN_DIR=%{__mysql_test_run_dir} \
echo '>>> Shutting the mysql server down' \
cat << EOF > $TEST_RUN_DIR/shutdown.sql \
SHUTDOWN; \
EOF\
mysql --defaults-file=$TEST_RUN_DIR/my.cnf --user root --password='roots_secret' < $TEST_RUN_DIR/shutdown.sql \
%nil

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Thu Dec 5 10:41:56 UTC 2019 - pgajdos@suse.com
- added rpm test macros: %mysql_testserver_start,
%mysql_testserver_cconf, %mysql_testserver_stop
First two consuments are python-sortinghat and python-mysqlclient.
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Nov 19 17:16:49 UTC 2019 - Kristyna Streitova <kstreitova@suse.com> Tue Nov 19 17:16:49 UTC 2019 - Kristyna Streitova <kstreitova@suse.com>

View File

@ -71,6 +71,7 @@ Source15: mariadb.service
Source16: mariadb.target Source16: mariadb.target
Source17: mysql-systemd-helper Source17: mysql-systemd-helper
Source18: mariadb@.service Source18: mariadb@.service
Source19: macros.mariadb-test
Source50: suse_skipped_tests.list Source50: suse_skipped_tests.list
Patch1: mariadb-10.2.4-logrotate.patch Patch1: mariadb-10.2.4-logrotate.patch
Patch3: mariadb-10.1.1-mysqld_multi-features.patch Patch3: mariadb-10.1.1-mysqld_multi-features.patch
@ -214,6 +215,13 @@ Obsoletes: libmysqld-devel < %{version}-%{release}
This package contains the development header files and libraries This package contains the development header files and libraries
for developing applications that embed the MariaDB. for developing applications that embed the MariaDB.
%package rpm-macros
Summary: MariaDB RPM macros
Requires: %{name}
%description rpm-macros
Provides macros usable in rpm spec files.
%package client %package client
Summary: Client for MariaDB Summary: Client for MariaDB
Group: Productivity/Databases/Clients Group: Productivity/Databases/Clients
@ -651,6 +659,11 @@ rm -rf '%{buildroot}'%{_datadir}/mysql/{solaris,SELinux}
# Create the directory specified in 'secure-file-priv' option # Create the directory specified in 'secure-file-priv' option
mkdir -p '%{buildroot}'%{_localstatedir}/lib/mysql-files mkdir -p '%{buildroot}'%{_localstatedir}/lib/mysql-files
# install rpm macros file
mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d
install -m 644 %{SOURCE19} %{buildroot}%{_rpmconfigdir}/macros.d
%check %check
cd build cd build
@ -815,6 +828,10 @@ exit 0
%{_datadir}/mysql/systemd/mariadb.service %{_datadir}/mysql/systemd/mariadb.service
%{_datadir}/mysql/systemd/mariadb@.service %{_datadir}/mysql/systemd/mariadb@.service
%files rpm-macros
%dir %{_rpmconfigdir}/macros.d
%{_rpmconfigdir}/macros.d/macros.mariadb-test
%files -n libmariadbd%{soname} %files -n libmariadbd%{soname}
%{_libdir}/libmariadbd.so.* %{_libdir}/libmariadbd.so.*