Merge lp:~patrick-crews/drizzle/dbqp_engine_and_repeat into lp:drizzle/7.0

Proposed by Patrick Crews
Status: Merged
Approved by: Lee Bieber
Approved revision: 2171
Merged at revision: 2175
Proposed branch: lp:~patrick-crews/drizzle/dbqp_engine_and_repeat
Merge into: lp:drizzle/7.0
Diff against target: 188 lines (+49/-12)
7 files modified
docs/testing/dbqp.rst (+5/-0)
tests/dbqp.py (+4/-2)
tests/lib/server_mgmt/drizzled.py (+9/-2)
tests/lib/server_mgmt/server_management.py (+10/-2)
tests/lib/test_mgmt/execution_management.py (+1/-0)
tests/lib/test_mgmt/test_execution.py (+7/-5)
tests/lib/test_run_options.py (+13/-1)
To merge this branch: bzr merge lp:~patrick-crews/drizzle/dbqp_engine_and_repeat
Reviewer Review Type Date Requested Status
Drizzle Developers Pending
Review via email: mp+50078@code.launchpad.net

Description of the change

Adds repeat option and fixes --default-storage-engine

To post a comment you must log in.
2171. By Patrick Crews

Minor tweak for gdb

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'docs/testing/dbqp.rst'
2--- docs/testing/dbqp.rst 2011-02-12 00:01:28 +0000
3+++ docs/testing/dbqp.rst 2011-02-17 00:34:16 +0000
4@@ -254,6 +254,11 @@
5 sort the testcases so that they are executed optimally
6 for the given mode [False]
7
8+.. option:: --repeat=REPEAT
9+ Run each test case the specified number of times. For
10+ a given sequence, the first test will be run n times,
11+ then the second, etc [1]
12+
13 Options for defining the code that will be under test
14 -----------------------------------------------------
15
16
17=== modified file 'tests/dbqp.py'
18--- tests/dbqp.py 2011-02-09 17:41:08 +0000
19+++ tests/dbqp.py 2011-02-17 00:34:16 +0000
20@@ -82,8 +82,10 @@
21 # TODO - make a more robust cleanup
22 # At the moment, runaway servers are our biggest concern
23 if server_manager and not variables['startandexit']:
24- server_manager.cleanup()
25-
26+ if variables['gdb']:
27+ server_manager.cleanup_all_servers)
28+ else:
29+ server_manager.cleanup()
30 if not variables['startandexit']:
31 if test_manager:
32 fail_count = test_manager.has_failing_tests()
33
34=== modified file 'tests/lib/server_mgmt/drizzled.py'
35--- tests/lib/server_mgmt/drizzled.py 2011-02-11 23:56:37 +0000
36+++ tests/lib/server_mgmt/drizzled.py 2011-02-17 00:34:16 +0000
37@@ -40,8 +40,13 @@
38
39 """
40
41- def __init__(self, name, server_manager, server_options
42- , requester, workdir_root):
43+ def __init__( self
44+ , name
45+ , server_manager
46+ , default_storage_engine
47+ , server_options
48+ , requester
49+ , workdir_root):
50 self.skip_keys = [ 'server_manager'
51 , 'system_manager'
52 , 'dirset'
53@@ -55,6 +60,7 @@
54 self.initial_run = 1
55 self.owner = requester
56 self.server_options = server_options
57+ self.default_storage_engine = default_storage_engine
58 self.server_manager = server_manager
59 # We register with server_manager asap
60 self.server_manager.log_server(self, requester)
61@@ -168,6 +174,7 @@
62 , "--mysql-unix-socket-protocol.path=%s" %(self.socket_file)
63 , "--pid-file=%s" %(self.pid_file)
64 , "--drizzle-protocol.port=%d" %(self.drizzle_tcp_port)
65+ , "--default-storage-engine=%s" %(self.default_storage_engine)
66 , "--datadir=%s" %(self.datadir)
67 , "--tmpdir=%s" %(self.tmpdir)
68 , self.secure_file_string
69
70=== modified file 'tests/lib/server_mgmt/server_management.py'
71--- tests/lib/server_mgmt/server_management.py 2011-02-11 23:56:37 +0000
72+++ tests/lib/server_mgmt/server_management.py 2011-02-17 00:34:16 +0000
73@@ -52,6 +52,7 @@
74 self.logging = system_manager.logging
75 self.gdb = self.system_manager.gdb
76 self.code_tree = system_manager.code_tree
77+ self.default_storage_engine = variables['defaultengine']
78 self.user_server_opts = variables['drizzledoptions']
79 self.servers = {}
80 # We track this
81@@ -59,6 +60,8 @@
82 self.mutex = thread.allocate_lock()
83 self.timer_increment = .5
84
85+ self.logging.info("Using default-storage-engine: %s" %(self.default_storage_engine))
86+
87 if self.debug:
88 self.logging.debug_class(self)
89
90@@ -104,8 +107,12 @@
91 # initialize our new server_object
92 if self.code_tree.type == 'Drizzle':
93 from lib.server_mgmt.drizzled import drizzleServer as server_type
94- new_server = server_type( server_name, self, server_options
95- , requester, workdir )
96+ new_server = server_type( server_name
97+ , self
98+ , self.default_storage_engine
99+ , server_options
100+ , requester
101+ , workdir )
102 self.add_server(requester, new_server)
103 return new_server
104
105@@ -332,6 +339,7 @@
106 remove_options = [ '--restart'
107 , '--skip-stack-trace'
108 , '--skip-core-file'
109+ , '--'
110 ]
111 for remove_option in remove_options:
112 if remove_option in server_options:
113
114=== modified file 'tests/lib/test_mgmt/execution_management.py'
115--- tests/lib/test_mgmt/execution_management.py 2011-02-04 20:41:08 +0000
116+++ tests/lib/test_mgmt/execution_management.py 2011-02-17 00:34:16 +0000
117@@ -61,6 +61,7 @@
118 self.verbose = variables['verbose']
119 self.force = variables['force']
120 self.record_flag = variables['record']
121+ self.testcase_repeat_count = variables['repeat']
122 # We are currently single-threaded execution-wise
123 # but in the future, we will likely need to revamp
124 # how we deal with start-and-exit if we have multiple
125
126=== modified file 'tests/lib/test_mgmt/test_execution.py'
127--- tests/lib/test_mgmt/test_execution.py 2011-02-11 23:56:37 +0000
128+++ tests/lib/test_mgmt/test_execution.py 2011-02-17 00:34:16 +0000
129@@ -51,6 +51,7 @@
130 self.status = 0 # not running
131 self.execution_manager = execution_manager
132 self.system_manager = self.execution_manager.system_manager
133+ self.testcase_repeat_count = self.execution_manager.testcase_repeat_count
134 self.cmd_prefix = self.system_manager.cmd_prefix
135 self.logging = self.system_manager.logging
136 self.test_manager = self.execution_manager.test_manager
137@@ -149,11 +150,12 @@
138 self.get_testCase()
139 self.handle_system_reqs()
140 self.handle_server_reqs(start_and_exit)
141- self.execute_testCase()
142- self.record_test_result()
143- if self.current_test_status == 'fail' and not self.execution_manager.force:
144- self.logging.error("Failed test. Use --force to execute beyond the first test failure")
145- keep_running = 0
146+ for i in range(self.testcase_repeat_count):
147+ self.execute_testCase()
148+ self.record_test_result()
149+ if self.current_test_status == 'fail' and not self.execution_manager.force:
150+ self.logging.error("Failed test. Use --force to execute beyond the first test failure")
151+ keep_running = 0
152 self.status = 0
153
154 def execute_testCase(self):
155
156=== modified file 'tests/lib/test_run_options.py'
157--- tests/lib/test_run_options.py 2011-02-11 23:56:37 +0000
158+++ tests/lib/test_run_options.py 2011-02-17 00:34:16 +0000
159@@ -51,8 +51,13 @@
160 variables = {}
161 variables = vars(args)
162 variables['test_cases']= test_cases
163+ # This code should become a function once
164+ # enough thought has been given to it
165 if variables['manualgdb']:
166 variables['gdb']=True
167+ if variables['repeat'] <= 0:
168+ print "Setting --repeat=1. You chose a silly value that I will ignore :P"
169+ variables['repeat'] = 1
170 return variables
171
172 # Create the CLI option parser
173@@ -184,7 +189,14 @@
174 , help = "sort the testcases so that they are executed optimally for the given mode [%default]"
175 )
176
177-
178+test_control_group.add_option(
179+ "--repeat"
180+ , dest="repeat"
181+ , type='int'
182+ , action="store"
183+ , default=1
184+ , help = "Run each test case the specified number of times. For a given sequence, the first test will be run n times, then the second, etc [%default]"
185+ )
186
187 parser.add_option_group(test_control_group)
188 # end test_control_group

Subscribers

People subscribed via source and target branches