From 0b43d63e5a8ed62cac87b1eea1ac833859655e72 Mon Sep 17 00:00:00 2001 From: Sebastien Robin <seb@nexedi.com> Date: Wed, 27 Feb 2013 18:37:22 +0100 Subject: [PATCH] add a test to print sql bench result (cloud performance testing) --- product/ERP5Type/tests/_testSQLBench.py | 61 +++++++++++++++++++++++++ tests/__init__.py | 2 +- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 product/ERP5Type/tests/_testSQLBench.py diff --git a/product/ERP5Type/tests/_testSQLBench.py b/product/ERP5Type/tests/_testSQLBench.py new file mode 100644 index 0000000000..44a331375e --- /dev/null +++ b/product/ERP5Type/tests/_testSQLBench.py @@ -0,0 +1,61 @@ +############################################################################## +# +# Copyright (c) 2013 Nexedi SA and Contributors. All Rights Reserved. +# Sebastien Robin <seb@nexedi.com> +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability 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 +# garantees 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 2 +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +import os +import subprocess +import unittest + +class TestSQLBench(unittest.TestCase): + """Tests to get sqlbench values + """ + def test_sqlbench(self): + """ + launch sql bench test to check speed of hardware. There is quite dirty + launch of bench depending on many environ variables. However this allows + to get a quick solution + """ + home = os.environ['REAL_INSTANCE_HOME'] + sql_connection_string = os.environ['erp5_sql_connection_string'] + database_and_server, user, password = sql_connection_string.split(' ') + database, host = database_and_server.split('@') + software_home = os.environ['OPENSSL_BINARY'].replace( + "parts/openssl/bin/openssl", "") + mariadb_folder = software_home + '/parts/mariadb' + perl_command = software_home + "/parts/perl/bin/perl" + command_list = [perl_command, + mariadb_folder + '/sql-bench/test-alter-table', + '--database', database, + '--host', host, '--user', user, '--password', password] + print command_list + process = subprocess.Popen(command_list, + cwd = mariadb_folder + '/sql-bench/', + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + output, error = process.communicate() + self.assertEquals(0, len(error)) + self.assertTrue(output.find("Total time: ")>=0) + print output diff --git a/tests/__init__.py b/tests/__init__.py index ae16d80275..f0b592bbb8 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -55,7 +55,7 @@ class PERF(_ERP5): class CloudPERF(_ERP5): def getTestList(self): - return ['_testPystone'] + return ['_testPystone', '_testSQLBench'] class ERP5(_ERP5): mysql_db_count = 3 -- 2.30.9