~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/lib/dbqp_modes/sysbench/sysbench_test_execution.py

  • Committer: patrick crews
  • Date: 2011-10-05 20:40:33 UTC
  • mfrom: (2337.1.24 dbqp_revamp2)
  • mto: This revision was merged to the branch mainline in revision 2435.
  • Revision ID: gleebix@gmail.com-20111005204033-5m6kvcii1q87yur6
Merge with trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
 
37
37
import lib.test_mgmt.test_execution as test_execution
38
38
 
39
 
class sysbenchTestExecutor(test_execution.testExecutor):
 
39
class testExecutor(test_execution.testExecutor):
40
40
    """ sysbench-specific testExecutor 
41
41
        
42
42
    """
69
69
        sysbench_output = open(sysbench_outfile,'w')
70
70
        sysbench_cmd = ' '.join([self.current_testcase.test_command,'prepare'])      
71
71
        self.logging.info("Preparing database for sysbench run...")
72
 
        if self.debug:
73
 
            self.logging.debug(sysbench_cmd)
 
72
        self.logging.debug(sysbench_cmd)
74
73
        sysbench_subproc = subprocess.Popen( sysbench_cmd
75
74
                                         , shell=True
76
75
                                         #, cwd=os.getcwd()
85
84
        sysbench_file = open(sysbench_outfile,'r')
86
85
        output = ''.join(sysbench_file.readlines())
87
86
        sysbench_file.close()
88
 
        if self.debug:
89
 
            self.logging.debug("sysbench_retcode: %d" %(retcode))
90
 
            self.logging.debug(output)
 
87
        self.logging.debug("sysbench_retcode: %d" %(retcode))
 
88
        self.logging.debug(output)
91
89
        if retcode:
92
90
            self.logging.error("sysbench_prepare failed with retcode %d:" %(retcode))
93
91
            self.logging.error(output)   
123
121
        sysbench_output.close()
124
122
        sysbench_file = open(sysbench_outfile,'r')
125
123
        output = ''.join(sysbench_file.readlines())
126
 
        if self.debug:
127
 
            self.logging.debug(output)
 
124
        self.logging.debug(output)
128
125
        sysbench_file.close()
129
126
 
130
 
        if self.debug:
131
 
            self.logging.debug("sysbench_retcode: %d" %(retcode))
 
127
        self.logging.debug("sysbench_retcode: %d" %(retcode))
132
128
        self.current_test_retcode = retcode
133
129
        self.current_test_output = output
134
130
        self.current_test_exec_time = execution_time
164
160
        else:
165
161
            return 'fail'
166
162
 
167
 
    def handle_system_reqs(self):
168
 
        """ We check our test case and see what we need to do
169
 
            system-wise to get ready.  This is likely to be 
170
 
            mode-dependent and this is just a placeholder
171
 
            method
172
 
 
173
 
        """
174
 
 
175
 
        self.process_environment_reqs()
176
 
        self.process_symlink_reqs()
177
 
        self.process_master_sh()  
178
 
        return
179
 
 
180
 
    def process_master_sh(self):
181
 
        """ We do what we need to if we have a master.sh file """
182
 
        if self.current_testcase.master_sh:
183
 
            retcode, output = self.system_manager.execute_cmd("/bin/sh %s" %(self.current_testcase.master_sh))
184
 
            if self.debug:
185
 
                self.logging.info("retcode: %retcode")
186
 
                self.logging.info("%output")
187
 
 
188
 
    def process_environment_reqs(self):
189
 
        """ We generate the ENV vars we need set
190
 
            and then ask systemManager to do so
191
 
 
192
 
        """
193
 
        env_reqs = {  'DRIZZLETEST_VARDIR': self.master_server.vardir
194
 
                   ,  'DRIZZLE_TMP_DIR': self.master_server.tmpdir
195
 
                   ,  'MASTER_MYSOCK': self.master_server.socket_file
196
 
                   ,  'MASTER_MYPORT': str(self.master_server.master_port)
197
 
                   ,  'MC_PORT': str(self.master_server.mc_port)
198
 
                   ,  'PBMS_PORT': str(self.master_server.pbms_port)
199
 
                   ,  'RABBITMQ_NODE_PORT': str(self.master_server.rabbitmq_node_port)
200
 
                   ,  'DRIZZLE_TCP_PORT': str(self.master_server.drizzle_tcp_port)
201
 
                   ,  'EXE_DRIZZLE': self.master_server.drizzle_client
202
 
                   ,  'MASTER_SERVER_SLAVE_CONFIG' : self.master_server.slave_config_file
203
 
                   ,  'DRIZZLE_DUMP': "%s --no-defaults -uroot -p%d" %( self.master_server.drizzledump
204
 
                                                        , self.master_server.master_port)
205
 
                   ,  'DRIZZLE_SLAP': "%s -uroot -p%d" %( self.master_server.drizzleslap
206
 
                                                        , self.master_server.master_port)
207
 
                   ,  'DRIZZLE_IMPORT': "%s -uroot -p%d" %( self.master_server.drizzleimport
208
 
                                                          , self.master_server.master_port)
209
 
                   ,  'DRIZZLE': "%s -uroot -p%d" %( self.master_server.drizzle_client
210
 
                                                   , self.master_server.master_port)
211
 
                   ,  'DRIZZLE_BASEDIR' : self.system_manager.code_tree.basedir
212
 
                   ,  'DRIZZLE_TRX_READER' : self.system_manager.code_tree.drizzle_trx_reader
213
 
                   }     
214
 
 
215
 
 
216
 
        self.working_environment = self.system_manager.create_working_environment(env_reqs)
217
 
 
218
 
 
219
 
    def process_symlink_reqs(self):
220
 
        """ Create any symlinks we may need """
221
 
        needed_symlinks = []
222
 
 
223
 
        self.system_manager.create_symlinks(needed_symlinks)
224
 
 
225
 
    
226
 
   
227
 
 
228