187
188
self.charsetdir = self.system_manager.find_path([os.path.join(self.basedir, 'mysql/charsets')
188
189
, os.path.join(self.basedir, 'sql/share/charsets')
189
190
, os.path.join(self.basedir, 'share/charsets')])
191
self.langdir = self.system_manager.find_path([os.path.join(self.basedir, 'share/mysql')
192
, os.path.join(self.basedir, 'sql/share')
193
, os.path.join(self.basedir, 'share')])
191
196
self.srcdir = self.system_manager.find_path([self.basedir])
192
197
self.suite_paths = variables['suitepaths']
240
244
self.server_platform = None
241
245
self.server_compile_comment = None
242
246
self.type = 'mysql'
244
247
self.process_server_version()
245
248
self.ld_lib_paths = self.get_ld_lib_paths()
249
self.bootstrap_path = os.path.join( self.system_manager.workdir
250
, 'mysql_bootstrap.sql' )
251
self.generate_bootstrap()
289
295
, os.path.join(self.basedir,"lib/mysql")]
290
296
return ld_lib_paths
298
def generate_bootstrap(self):
299
""" We do the voodoo that we need to in order to create the bootstrap
303
found_new_sql = False
304
# determine if we have a proper area for our sql or if we
305
# use the rigged method from 5.0 / 5.1
306
# first we search various possible locations
307
test_file = "mysql_system_tables.sql"
308
for candidate_dir in [ "mysql"
313
candidate_path = os.path.join(self.basedir, candidate_dir, test_file)
314
if os.path.exists(candidate_path):
315
bootstrap_file = open(self.bootstrap_path,'w')
316
bootstrap_file.write("use mysql\n")
317
for sql_file in [ 'mysql_system_tables.sql' #official mysql system tables
318
, 'mysql_system_tables_data.sql' #initial data for sys tables
319
, 'mysql_test_data_timezone.sql' # subset of full tz table data for testing
320
, 'fill_help_tables.sql' # fill help tables populated only w/ src dist(?)
322
sql_file_path = os.path.join(self.basedir,candidate_dir,sql_file)
323
sql_file_handle = open(sql_file_path,'r')
324
bootstrap_file.write(sql_file_handle.readlines())
325
sql_file_handle.close()
328
if not found_new_sql:
329
# Install the system db's from init_db.sql
330
# that is in early 5.1 and 5.0 versions of MySQL
331
sql_file_path = os.path.join(self.basedir,'mysql-test/lib/init_db.sql')
332
self.logging.info("Attempting to use bootstrap file - %s" %(sql_file_path))
334
in_file = open(sql_file_path,'r')
335
bootstrap_file = open(self.bootstrap_path,'w')
336
bootstrap_file.write(in_file.readlines())
339
self.logging.error("Cannot find data for generating bootstrap file")
340
self.logging.error("Cannot proceed without this, system exiting...")
342
# Remove anonymous users
343
bootstrap_file.write("DELETE FROM mysql.user where user= '';\n")
344
# Create mtr database
345
bootstrap_file.write("CREATE DATABASE mtr;\n")
346
for sql_file in [ 'mtr_warnings.sql' # help tables + data for warning detection / suppression
347
, 'mtr_check.sql' # Procs for checking proper restore post-testcase
349
sql_file_path = os.path.join(self.basedir,'mysql-test/include',sql_file)
350
sql_file_handle = open(sql_file_path,'r')
351
bootstrap_file.write(sql_file_handle.readlines())
352
sql_file_handle.close()
353
bootstrap_file.close()