57
57
from tools .targets import TARGET_MAP , Target
58
58
from tools .config import Config
59
59
import tools .test_configs as TestConfig
60
- from tools .test_db import BaseDBAccess
61
60
from tools .build_api import build_project , build_mbed_libs , build_lib
62
61
from tools .build_api import get_target_supported_toolchains
63
62
from tools .build_api import write_build_report
@@ -185,7 +184,6 @@ def __init__(self,
185
184
_clean = False ,
186
185
_parser = None ,
187
186
_opts = None ,
188
- _opts_db_url = None ,
189
187
_opts_log_file_name = None ,
190
188
_opts_report_html_file_name = None ,
191
189
_opts_report_junit_file_name = None ,
@@ -244,7 +242,6 @@ def __init__(self,
244
242
self .test_spec = _test_spec
245
243
246
244
# Settings passed e.g. from command line
247
- self .opts_db_url = _opts_db_url
248
245
self .opts_log_file_name = _opts_log_file_name
249
246
self .opts_report_html_file_name = _opts_report_html_file_name
250
247
self .opts_report_junit_file_name = _opts_report_junit_file_name
@@ -284,21 +281,6 @@ def __init__(self,
284
281
# File / screen logger initialization
285
282
self .logger = CLITestLogger (file_name = self .opts_log_file_name ) # Default test logger
286
283
287
- # Database related initializations
288
- self .db_logger = factory_db_logger (self .opts_db_url )
289
- self .db_logger_build_id = None # Build ID (database index of build_id table)
290
- # Let's connect to database to set up credentials and confirm database is ready
291
- if self .db_logger :
292
- self .db_logger .connect_url (self .opts_db_url ) # Save db access info inside db_logger object
293
- if self .db_logger .is_connected ():
294
- # Get hostname and uname so we can use it as build description
295
- # when creating new build_id in external database
296
- (_hostname , _uname ) = self .db_logger .get_hostname ()
297
- _host_location = os .path .dirname (os .path .abspath (__file__ ))
298
- build_id_type = None if self .opts_only_build_tests is None else self .db_logger .BUILD_ID_TYPE_BUILD_ONLY
299
- self .db_logger_build_id = self .db_logger .get_next_build_id (_hostname , desc = _uname , location = _host_location , type = build_id_type )
300
- self .db_logger .disconnect ()
301
-
302
284
def dump_options (self ):
303
285
""" Function returns data structure with common settings passed to SingelTestRunner
304
286
It can be used for example to fill _extra fields in database storing test suite single run data
@@ -307,8 +289,7 @@ def dump_options(self):
307
289
or
308
290
data_str = json.dumps(self.dump_options())
309
291
"""
310
- result = {"db_url" : str (self .opts_db_url ),
311
- "log_file_name" : str (self .opts_log_file_name ),
292
+ result = {"log_file_name" : str (self .opts_log_file_name ),
312
293
"shuffle_test_order" : str (self .opts_shuffle_test_order ),
313
294
"shuffle_test_seed" : str (self .opts_shuffle_test_seed ),
314
295
"test_by_names" : str (self .opts_test_by_names ),
@@ -416,27 +397,6 @@ def execute_thread_slice(self, q, target, toolchains, clean, test_ids, build_rep
416
397
417
398
if self .opts_shuffle_test_order :
418
399
random .shuffle (test_map_keys , self .shuffle_random_func )
419
- # Update database with shuffle seed f applicable
420
- if self .db_logger :
421
- self .db_logger .reconnect ();
422
- if self .db_logger .is_connected ():
423
- self .db_logger .update_build_id_info (
424
- self .db_logger_build_id ,
425
- _shuffle_seed = self .shuffle_random_func ())
426
- self .db_logger .disconnect ();
427
-
428
- if self .db_logger :
429
- self .db_logger .reconnect ();
430
- if self .db_logger .is_connected ():
431
- # Update MUTs and Test Specification in database
432
- self .db_logger .update_build_id_info (
433
- self .db_logger_build_id ,
434
- _muts = self .muts , _test_spec = self .test_spec )
435
- # Update Extra information in database (some options passed to test suite)
436
- self .db_logger .update_build_id_info (
437
- self .db_logger_build_id ,
438
- _extra = json .dumps (self .dump_options ()))
439
- self .db_logger .disconnect ();
440
400
441
401
valid_test_map_keys = self .get_valid_tests (test_map_keys , target , toolchain , test_ids , self .opts_include_non_automated )
442
402
skipped_test_map_keys = self .get_skipped_tests (test_map_keys , valid_test_map_keys )
@@ -656,12 +616,6 @@ def execute(self):
656
616
self .execute_thread_slice (q , target , toolchains , clean , test_ids , self .build_report , self .build_properties )
657
617
q .get ()
658
618
659
- if self .db_logger :
660
- self .db_logger .reconnect ();
661
- if self .db_logger .is_connected ():
662
- self .db_logger .update_build_id_info (self .db_logger_build_id , _status_fk = self .db_logger .BUILD_ID_STATUS_COMPLETED )
663
- self .db_logger .disconnect ();
664
-
665
619
return self .test_summary , self .shuffle_random_seed , self .test_summary_ext , self .test_suite_properties_ext , self .build_report , self .build_properties
666
620
667
621
def get_valid_tests (self , test_map_keys , target , toolchain , test_ids , include_non_automated ):
@@ -885,9 +839,6 @@ def handle_mut(self, mut, data, target_name, toolchain_name, test_loops=1):
885
839
mcu = mut ['mcu' ]
886
840
copy_method = mut .get ('copy_method' ) # Available board configuration selection e.g. core selection etc.
887
841
888
- if self .db_logger :
889
- self .db_logger .reconnect ()
890
-
891
842
selected_copy_method = self .opts_copy_method if copy_method is None else copy_method
892
843
893
844
# Tests can be looped so test results must be stored for the same test
@@ -986,27 +937,10 @@ def handle_mut(self, mut, data, target_name, toolchain_name, test_loops=1):
986
937
single_test_result , target_name_unique , toolchain_name , test_id ,
987
938
test_description , elapsed_time , single_timeout ))
988
939
989
- # Update database entries for ongoing test
990
- if self .db_logger and self .db_logger .is_connected ():
991
- test_type = 'SingleTest'
992
- self .db_logger .insert_test_entry (self .db_logger_build_id ,
993
- target_name ,
994
- toolchain_name ,
995
- test_type ,
996
- test_id ,
997
- single_test_result ,
998
- single_test_output ,
999
- elapsed_time ,
1000
- single_timeout ,
1001
- test_index )
1002
-
1003
940
# If we perform waterfall test we test until we get OK and we stop testing
1004
941
if self .opts_waterfall_test and single_test_result == self .TEST_RESULT_OK :
1005
942
break
1006
943
1007
- if self .db_logger :
1008
- self .db_logger .disconnect ()
1009
-
1010
944
return (self .shape_global_test_loop_result (test_all_result , self .opts_waterfall_test and self .opts_consolidate_waterfall_test ),
1011
945
target_name_unique ,
1012
946
toolchain_name ,
@@ -1658,46 +1592,6 @@ def log_line(self, LogType, log_line, timestamp=True, line_delim='\n'):
1658
1592
pass
1659
1593
return log_line_str
1660
1594
1661
-
1662
- def factory_db_logger (db_url ):
1663
- """ Factory database driver depending on database type supplied in database connection string db_url
1664
- """
1665
- if db_url is not None :
1666
- from tools .test_mysql import MySQLDBAccess
1667
- connection_info = BaseDBAccess ().parse_db_connection_string (db_url )
1668
- if connection_info is not None :
1669
- (db_type , username , password , host , db_name ) = BaseDBAccess ().parse_db_connection_string (db_url )
1670
- if db_type == 'mysql' :
1671
- return MySQLDBAccess ()
1672
- return None
1673
-
1674
-
1675
- def detect_database_verbose (db_url ):
1676
- """ uses verbose mode (prints) database detection sequence to check it database connection string is valid
1677
- """
1678
- result = BaseDBAccess ().parse_db_connection_string (db_url )
1679
- if result is not None :
1680
- # Parsing passed
1681
- (db_type , username , password , host , db_name ) = result
1682
- #print "DB type '%s', user name '%s', password '%s', host '%s', db name '%s'"% result
1683
- # Let's try to connect
1684
- db_ = factory_db_logger (db_url )
1685
- if db_ is not None :
1686
- print ("Connecting to database '%s'..." % db_url )
1687
- db_ .connect (host , username , password , db_name )
1688
- if db_ .is_connected ():
1689
- print ("ok" )
1690
- print ("Detecting database..." )
1691
- print (db_ .detect_database (verbose = True ))
1692
- print ("Disconnecting..." )
1693
- db_ .disconnect ()
1694
- print ("done" )
1695
- else :
1696
- print ("Database type '%s' unknown" % db_type )
1697
- else :
1698
- print ("Parse error: '%s' - DB Url error" % db_url )
1699
-
1700
-
1701
1595
def get_module_avail (module_name ):
1702
1596
""" This function returns True if module_name is already imported module
1703
1597
"""
@@ -1987,10 +1881,6 @@ def get_default_test_options_parser():
1987
1881
type = int ,
1988
1882
help = 'You can increase global timeout for each test by specifying additional test timeout in seconds' )
1989
1883
1990
- parser .add_argument ('--db' ,
1991
- dest = 'db_url' ,
1992
- help = 'This specifies what database test suite uses to store its state. To pass DB connection info use database connection string. Example: \' mysql://username:[email protected] /db_name\' ' )
1993
-
1994
1884
parser .add_argument ('-l' , '--log' ,
1995
1885
dest = 'log_file_name' ,
1996
1886
help = 'Log events to external file (note not all console entries may be visible in log file)' )
0 commit comments