Fixed tmux pane size handling
This commit is contained in:
parent
10ae59be19
commit
932669844b
2 changed files with 19 additions and 15 deletions
|
|
@ -638,9 +638,9 @@ def fix_tmux_panes(state, tmux_layout):
|
||||||
|
|
||||||
# Get pane size
|
# Get pane size
|
||||||
x, y = tmux_get_pane_size(pane_id=target)
|
x, y = tmux_get_pane_size(pane_id=target)
|
||||||
if v.get('x', False) and v.get['x'] != x:
|
if v.get('x', False) and v['x'] != x:
|
||||||
needs_fixed = True
|
needs_fixed = True
|
||||||
if v.get('y', False) and v.get['y'] != y:
|
if v.get('y', False) and v['y'] != y:
|
||||||
needs_fixed = True
|
needs_fixed = True
|
||||||
|
|
||||||
# Bail?
|
# Bail?
|
||||||
|
|
@ -895,7 +895,7 @@ def run_badblocks_test(state, test):
|
||||||
pipe=True)
|
pipe=True)
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
test.badblocks_proc.wait(timeout=10)
|
test.badblocks_proc.wait(timeout=1)
|
||||||
except subprocess.TimeoutExpired:
|
except subprocess.TimeoutExpired:
|
||||||
fix_tmux_panes(state, test.tmux_layout)
|
fix_tmux_panes(state, test.tmux_layout)
|
||||||
else:
|
else:
|
||||||
|
|
@ -1108,8 +1108,7 @@ def run_io_benchmark(state, test):
|
||||||
offset += test.dev.dd_chunk_blocks + skip
|
offset += test.dev.dd_chunk_blocks + skip
|
||||||
|
|
||||||
# Fix panes
|
# Fix panes
|
||||||
if i % 5 == 0:
|
fix_tmux_panes(state, test.tmux_layout)
|
||||||
fix_tmux_panes(state, test.tmux_layout)
|
|
||||||
|
|
||||||
except DeviceTooSmallError:
|
except DeviceTooSmallError:
|
||||||
# Device too small, skipping test
|
# Device too small, skipping test
|
||||||
|
|
@ -1276,8 +1275,7 @@ def run_mprime_test(state, test):
|
||||||
update_sensor_data(test.sensor_data)
|
update_sensor_data(test.sensor_data)
|
||||||
|
|
||||||
# Fix panes
|
# Fix panes
|
||||||
if i % 10 == 0:
|
fix_tmux_panes(state, test.tmux_layout)
|
||||||
fix_tmux_panes(state, test.tmux_layout)
|
|
||||||
|
|
||||||
# Wait
|
# Wait
|
||||||
sleep(1)
|
sleep(1)
|
||||||
|
|
@ -1474,10 +1472,17 @@ def run_nvme_smart_tests(state, test):
|
||||||
cmd = ['sudo', 'smartctl', '--test=short', test.dev.path]
|
cmd = ['sudo', 'smartctl', '--test=short', test.dev.path]
|
||||||
run_program(cmd, check=False)
|
run_program(cmd, check=False)
|
||||||
|
|
||||||
# Monitor progress (in 5 second increments)
|
# Monitor progress
|
||||||
try:
|
try:
|
||||||
for i in range(int(test.timeout*60/5)):
|
for i in range(int(test.timeout*60)):
|
||||||
sleep(5)
|
sleep(1)
|
||||||
|
|
||||||
|
# Fix panes
|
||||||
|
fix_tmux_panes(state, test.tmux_layout)
|
||||||
|
|
||||||
|
# Only update SMART progress every 5 seconds
|
||||||
|
if i % 5 != 0:
|
||||||
|
continue
|
||||||
|
|
||||||
# Update SMART data
|
# Update SMART data
|
||||||
test.dev.get_smart_details()
|
test.dev.get_smart_details()
|
||||||
|
|
@ -1498,10 +1503,6 @@ def run_nvme_smart_tests(state, test):
|
||||||
if 'remaining_percent' in test.dev.smart_self_test['status']:
|
if 'remaining_percent' in test.dev.smart_self_test['status']:
|
||||||
_self_test_started = True
|
_self_test_started = True
|
||||||
|
|
||||||
# Fix panes
|
|
||||||
if i % 2 == 0:
|
|
||||||
fix_tmux_panes(state, test.tmux_layout)
|
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
test.aborted = True
|
test.aborted = True
|
||||||
test.report = test.dev.generate_attribute_report()
|
test.report = test.dev.generate_attribute_report()
|
||||||
|
|
|
||||||
|
|
@ -12,14 +12,17 @@ def tmux_get_pane_size(pane_id=None):
|
||||||
"""Get target, or current, pane size, returns tuple."""
|
"""Get target, or current, pane size, returns tuple."""
|
||||||
x = -1
|
x = -1
|
||||||
y = -1
|
y = -1
|
||||||
cmd = ['tmux', 'display', '-p', '#{pane_width}x#{pane_height}']
|
cmd = ['tmux', 'display', '-p']
|
||||||
if pane_id:
|
if pane_id:
|
||||||
cmd.extend(['-t', pane_id])
|
cmd.extend(['-t', pane_id])
|
||||||
|
cmd.append('#{pane_width} #{pane_height}')
|
||||||
|
|
||||||
# Run cmd and set x & y
|
# Run cmd and set x & y
|
||||||
result = run_program(cmd, check=False)
|
result = run_program(cmd, check=False)
|
||||||
try:
|
try:
|
||||||
x, y = result.stdout.decode().strip().split()
|
x, y = result.stdout.decode().strip().split()
|
||||||
|
x = int(x)
|
||||||
|
y = int(y)
|
||||||
except Exception:
|
except Exception:
|
||||||
# Ignore and return unrealistic values
|
# Ignore and return unrealistic values
|
||||||
pass
|
pass
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue