Skip to content

Commit 6d754fe

Browse files
bridadantheotherjimmy
authored andcommitted
Remove database code from singletest api
1 parent a40b273 commit 6d754fe

File tree

5 files changed

+1
-555
lines changed

5 files changed

+1
-555
lines changed

tools/README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,7 @@ Quick navigation:
3838
| `test` | unit tests for tools |
3939
| `test_api.py` | part of pre-greentea greentea |
4040
| `test_configs` | configuration files used by `mbed test` |
41-
| `test_db.py` | part of pre-greentea greentea |
4241
| `test_exporters.py` | part of pre-greentea greentea |
43-
| `test_mysql.py` | part of pre-greentea greentea |
4442
| `tests.py` | implementation of `mbed test --greentea` |
4543
| `toolchains` | API for calling the selected compiler |
4644
| `utils.py` | General purpose utilities like file moving |

tools/singletest.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565
# Imports from TEST API
6666
from tools.test_api import SingleTestRunner
6767
from tools.test_api import singletest_in_cli_mode
68-
from tools.test_api import detect_database_verbose
6968
from tools.test_api import get_json_data_from_file
7069
from tools.test_api import get_avail_tests_summary_table
7170
from tools.test_api import get_default_test_options_parser
@@ -109,10 +108,6 @@ def get_version():
109108
print "Version %d.%d"% get_version()
110109
exit(0)
111110

112-
if opts.db_url and opts.verbose_test_configuration_only:
113-
detect_database_verbose(opts.db_url)
114-
exit(0)
115-
116111
# Print summary / information about automation test status
117112
if opts.test_automation_report:
118113
print get_avail_tests_summary_table(platform_filter=opts.general_filter_regex)
@@ -227,7 +222,6 @@ def get_version():
227222
_clean=opts.clean,
228223
_parser=parser,
229224
_opts=opts,
230-
_opts_db_url=opts.db_url,
231225
_opts_log_file_name=opts.log_file_name,
232226
_opts_report_html_file_name=opts.report_html_file_name,
233227
_opts_report_junit_file_name=opts.report_junit_file_name,

tools/test_api.py

Lines changed: 1 addition & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
from tools.targets import TARGET_MAP, Target
5858
from tools.config import Config
5959
import tools.test_configs as TestConfig
60-
from tools.test_db import BaseDBAccess
6160
from tools.build_api import build_project, build_mbed_libs, build_lib
6261
from tools.build_api import get_target_supported_toolchains
6362
from tools.build_api import write_build_report
@@ -185,7 +184,6 @@ def __init__(self,
185184
_clean=False,
186185
_parser=None,
187186
_opts=None,
188-
_opts_db_url=None,
189187
_opts_log_file_name=None,
190188
_opts_report_html_file_name=None,
191189
_opts_report_junit_file_name=None,
@@ -244,7 +242,6 @@ def __init__(self,
244242
self.test_spec = _test_spec
245243

246244
# Settings passed e.g. from command line
247-
self.opts_db_url = _opts_db_url
248245
self.opts_log_file_name = _opts_log_file_name
249246
self.opts_report_html_file_name = _opts_report_html_file_name
250247
self.opts_report_junit_file_name = _opts_report_junit_file_name
@@ -284,21 +281,6 @@ def __init__(self,
284281
# File / screen logger initialization
285282
self.logger = CLITestLogger(file_name=self.opts_log_file_name) # Default test logger
286283

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-
302284
def dump_options(self):
303285
""" Function returns data structure with common settings passed to SingelTestRunner
304286
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):
307289
or
308290
data_str = json.dumps(self.dump_options())
309291
"""
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),
312293
"shuffle_test_order" : str(self.opts_shuffle_test_order),
313294
"shuffle_test_seed" : str(self.opts_shuffle_test_seed),
314295
"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
416397

417398
if self.opts_shuffle_test_order:
418399
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();
440400

441401
valid_test_map_keys = self.get_valid_tests(test_map_keys, target, toolchain, test_ids, self.opts_include_non_automated)
442402
skipped_test_map_keys = self.get_skipped_tests(test_map_keys, valid_test_map_keys)
@@ -656,12 +616,6 @@ def execute(self):
656616
self.execute_thread_slice(q, target, toolchains, clean, test_ids, self.build_report, self.build_properties)
657617
q.get()
658618

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-
665619
return self.test_summary, self.shuffle_random_seed, self.test_summary_ext, self.test_suite_properties_ext, self.build_report, self.build_properties
666620

667621
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):
885839
mcu = mut['mcu']
886840
copy_method = mut.get('copy_method') # Available board configuration selection e.g. core selection etc.
887841

888-
if self.db_logger:
889-
self.db_logger.reconnect()
890-
891842
selected_copy_method = self.opts_copy_method if copy_method is None else copy_method
892843

893844
# 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):
986937
single_test_result, target_name_unique, toolchain_name, test_id,
987938
test_description, elapsed_time, single_timeout))
988939

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-
1003940
# If we perform waterfall test we test until we get OK and we stop testing
1004941
if self.opts_waterfall_test and single_test_result == self.TEST_RESULT_OK:
1005942
break
1006943

1007-
if self.db_logger:
1008-
self.db_logger.disconnect()
1009-
1010944
return (self.shape_global_test_loop_result(test_all_result, self.opts_waterfall_test and self.opts_consolidate_waterfall_test),
1011945
target_name_unique,
1012946
toolchain_name,
@@ -1658,46 +1592,6 @@ def log_line(self, LogType, log_line, timestamp=True, line_delim='\n'):
16581592
pass
16591593
return log_line_str
16601594

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-
17011595
def get_module_avail(module_name):
17021596
""" This function returns True if module_name is already imported module
17031597
"""
@@ -1987,10 +1881,6 @@ def get_default_test_options_parser():
19871881
type=int,
19881882
help='You can increase global timeout for each test by specifying additional test timeout in seconds')
19891883

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-
19941884
parser.add_argument('-l', '--log',
19951885
dest='log_file_name',
19961886
help='Log events to external file (note not all console entries may be visible in log file)')

tools/test_db.py

Lines changed: 0 additions & 165 deletions
This file was deleted.

0 commit comments

Comments
 (0)