Commit a927b788 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

component/mariadb: add a test for MariaDB itself.

parent cb74d639
......@@ -38,6 +38,8 @@ mariadb-client-test = mariadb-client-test
pre-configure =
d() { x=$1; shift; [ "`grep -c "$@"`" = $x ]; sed -i "/$1/d" "$2"; }
d 1 '\bSET(PLUGIN_AUTH_PAM YES CACHE BOOL "")' cmake/build_configurations/mysql_release.cmake
${:pre-configure-extra}
pre-configure-extra =
d 5 '^ *\b\(ADD_SUBDIRECTORY(\(mysql-test\|tests\)\|my_safe_process\|${:mariadb-client-test}\)\b' CMakeLists.txt
d 1 '\bINSTALL_MYSQL_TEST\b' cmake/plugin.cmake
configure-command = ${cmake:location}/bin/cmake
......
[buildout]
extends =
../../stack/slapos.cfg
buildout.cfg
parts =
mariadb
[mariadb]
shared = false
pre-configure-extra =
##############################################################################
#
# Copyright (c) 2024 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
##############################################################################
from setuptools import setup, find_packages
version = '0.0.1.dev0'
name = 'slapos.test.mariadb'
long_description = open("README.md").read()
setup(name=name,
version=version,
description="Test for SlapOS' MariaDB",
long_description=long_description,
long_description_content_type='text/markdown',
maintainer="Nexedi",
maintainer_email="info@nexedi.com",
url="https://lab.nexedi.com/nexedi/slapos",
packages=find_packages(),
install_requires=[
'slapos.core',
'slapos.libnetworkcache',
'erp5.util',
],
zip_safe=True,
test_suite='test',
)
##############################################################################
#
# Copyright (c) 2024 Nexedi SA and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
##############################################################################
import hashlib
import os
import shutil
import subprocess
import tempfile
from slapos.testing.testcase import installSoftwareUrlList, makeModuleSetUpAndTestCaseClass
software_release_url = os.path.abspath(
os.path.join(os.path.dirname(__file__), '..', 'test.cfg'))
setUpModule, InstanceTestCase = makeModuleSetUpAndTestCaseClass(
os.path.abspath(software_release_url))
class TestMariaDB(InstanceTestCase):
request_instance = False
def test(self):
mariadb_path = os.path.join(
self.slap.software_directory,
hashlib.md5(self.getSoftwareURL().encode()).hexdigest(),
'parts',
'mariadb',
)
with tempfile.TemporaryDirectory() as tmp_dir:
shutil.copytree(
mariadb_path,
tmp_dir,
symlinks=True,
dirs_exist_ok=True,
)
test_dir = os.path.join(tmp_dir, 'mariadb-test')
if not os.path.isdir(test_dir): # BBB MariaDB < 11
test_dir = os.path.join(tmp_dir, 'mysql-test')
os.chdir(test_dir)
skip_test_list = [
'spider', # fail if 'failed to retrieve the MAC address'.
'mysqld--help-aria', # fail if 'failed to retrieve the MAC address'.
'mysqldump-header', # fail with our -DDEFAULT_CHARSET=utf8 build.
'ssl_autoverify', # fail without Net/SSLeay.pm.
]
result = subprocess.run(
['./mtr', '--parallel=10', '--force', '--max-test-fail=40', '--mem',
'--skip-test=(%s)' % ('|'.join(skip_test_list))],
capture_output=True,
)
self.assertEqual(result.returncode, 0, result.stdout)
......@@ -87,6 +87,11 @@ setup = ${slapos-repository:location}/software/jstestnode/test/
egg = slapos.test.kvm
setup = ${slapos-repository:location}/software/kvm/test/
[slapos.test.mariadb-setup]
<= setup-develop-egg
egg = slapos.test.mariadb
setup = ${slapos-repository:location}/component/mariadb/test/
[slapos.test.monitor-setup]
<= setup-develop-egg
egg = slapos.test.monitor
......@@ -387,6 +392,7 @@ eggs +=
${slapos.test.jstestnode-setup:egg}
${slapos.test.jupyter-setup:egg}
${slapos.test.kvm-setup:egg}
${slapos.test.mariadb-setup:egg}
${slapos.test.matomo-setup:egg}
${slapos.test.metabase-setup:egg}
${slapos.test.monitor-setup:egg}
......@@ -480,6 +486,7 @@ tests =
jstestnode ${slapos.test.jstestnode-setup:setup}
jupyter ${slapos.test.jupyter-setup:setup}
kvm ${slapos.test.kvm-setup:setup}
mariadb ${slapos.test.mariadb-setup:setup}
matomo ${slapos.test.matomo-setup:setup}
metabase ${slapos.test.metabase-setup:setup}
monitor ${slapos.test.monitor-setup:setup}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment