Skip to content

Commit f390e82

Browse files
authored
fix return code processing (#16245)
1 parent 47f90aa commit f390e82

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

ydb/tests/olap/lib/ydb_cli.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,8 @@ def _init_iter(self, iter_num: int) -> None:
144144
if iter_num not in self.result.iterations:
145145
self.result.iterations[iter_num] = YdbCliHelper.Iteration()
146146

147-
def _process_returncode(self, returncode) -> None:
147+
def _parse_stderr(self, stderr: str) -> None:
148+
self.result.stderr = stderr
148149
begin_str = f'{self.query_num}:'
149150
end_str = 'Query text:'
150151
iter_str = 'iteration '
@@ -167,6 +168,8 @@ def _process_returncode(self, returncode) -> None:
167168
self._init_iter(iter)
168169
self.result.iterations[iter].error_message = msg
169170
self._add_error(f'Iteration {iter}: {msg}')
171+
172+
def _process_returncode(self, returncode) -> None:
170173
if returncode != 0 and len([x for x in filter(lambda x: x.error_message or x.warning_message, self.result.iterations.values())]) == 0:
171174
self._add_error(f'Invalid return code: {returncode} instead 0. stderr: {self.result.stderr}')
172175

@@ -239,7 +242,8 @@ def _check_nodes(self):
239242
node_errors.append(f'Node {node} is down')
240243
self._add_error('\n'.join(node_errors))
241244

242-
def _parse_stdout(self):
245+
def _parse_stdout(self, stdout: str) -> None:
246+
self.result.stdout = stdout
243247
for line in self.result.stdout.splitlines():
244248
m = re.search(r'iteration ([0-9]*):\s*ok\s*([\.0-9]*)s', line)
245249
if m is not None:
@@ -269,25 +273,21 @@ def _get_cmd(self) -> list[str]:
269273
cmd += ['--scale', str(self.scale)]
270274
return cmd
271275

272-
def _exec_cli(self) -> None:
273-
process = yatest.common.process.execute(self._get_cmd(), check_exit_code=False)
274-
self.result.stdout = process.stdout.decode('utf-8', 'replace')
275-
self.result.stderr = process.stderr.decode('utf-8', 'replace')
276-
self._process_returncode(process.returncode)
277-
self._parse_stdout()
278-
279276
def process(self) -> YdbCliHelper.WorkloadRunResult:
280277
try:
281278
wait_error = YdbCluster.wait_ydb_alive(int(os.getenv('WAIT_CLUSTER_ALIVE_TIMEOUT', 20 * 60)), self.db_path)
282279
if wait_error is not None:
283280
self.result.error_message = wait_error
284281
else:
285282
self._nodes_info = self._get_nodes_info()
286-
self._exec_cli()
283+
process = yatest.common.process.execute(self._get_cmd(), check_exit_code=False)
284+
self._parse_stderr(process.stderr.decode('utf-8', 'replace'))
285+
self._parse_stdout(process.stdout.decode('utf-8', 'replace'))
287286
self._check_nodes()
288287
self._load_stats()
289288
self._load_query_out()
290289
self._load_plans()
290+
self._process_returncode(process.returncode)
291291
except BaseException as e:
292292
self._add_error(str(e))
293293
self.result.traceback = e.__traceback__

0 commit comments

Comments
 (0)