mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-28 04:43:54 -06:00
tests/functional: remove duplicated 'which' function impl
Put the 'which' function into shared code. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20241217155953.3950506-5-berrange@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
c27f452d61
commit
0da341a78f
4 changed files with 13 additions and 25 deletions
|
@ -10,6 +10,6 @@ from .asset import Asset
|
||||||
from .config import BUILD_DIR
|
from .config import BUILD_DIR
|
||||||
from .cmd import has_cmd, has_cmds, run_cmd, is_readable_executable_file, \
|
from .cmd import has_cmd, has_cmds, run_cmd, is_readable_executable_file, \
|
||||||
interrupt_interactive_console_until_pattern, wait_for_console_pattern, \
|
interrupt_interactive_console_until_pattern, wait_for_console_pattern, \
|
||||||
exec_command, exec_command_and_wait_for_pattern, get_qemu_img
|
exec_command, exec_command_and_wait_for_pattern, get_qemu_img, which
|
||||||
from .testcase import QemuBaseTest, QemuUserTest, QemuSystemTest
|
from .testcase import QemuBaseTest, QemuUserTest, QemuSystemTest
|
||||||
from .linuxkernel import LinuxKernelTest
|
from .linuxkernel import LinuxKernelTest
|
||||||
|
|
|
@ -18,6 +18,16 @@ import subprocess
|
||||||
|
|
||||||
from .config import BUILD_DIR
|
from .config import BUILD_DIR
|
||||||
|
|
||||||
|
def which(tool):
|
||||||
|
""" looks up the full path for @tool, returns None if not found
|
||||||
|
or if @tool does not have executable permissions.
|
||||||
|
"""
|
||||||
|
paths=os.getenv('PATH')
|
||||||
|
for p in paths.split(os.path.pathsep):
|
||||||
|
p = os.path.join(p, tool)
|
||||||
|
if os.path.exists(p) and os.access(p, os.X_OK):
|
||||||
|
return p
|
||||||
|
return None
|
||||||
|
|
||||||
def has_cmd(name, args=None):
|
def has_cmd(name, args=None):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -47,7 +47,7 @@ from typing import (
|
||||||
)
|
)
|
||||||
from qemu.machine import QEMUMachine
|
from qemu.machine import QEMUMachine
|
||||||
from unittest import skipIf
|
from unittest import skipIf
|
||||||
from qemu_test import QemuSystemTest, Asset
|
from qemu_test import QemuSystemTest, Asset, which
|
||||||
|
|
||||||
deps = ["xorriso", "mformat"] # dependent tools needed in the test setup/box.
|
deps = ["xorriso", "mformat"] # dependent tools needed in the test setup/box.
|
||||||
supported_platforms = ['x86_64'] # supported test platforms.
|
supported_platforms = ['x86_64'] # supported test platforms.
|
||||||
|
@ -55,17 +55,6 @@ supported_platforms = ['x86_64'] # supported test platforms.
|
||||||
# default timeout of 120 secs is sometimes not enough for bits test.
|
# default timeout of 120 secs is sometimes not enough for bits test.
|
||||||
BITS_TIMEOUT = 200
|
BITS_TIMEOUT = 200
|
||||||
|
|
||||||
def which(tool):
|
|
||||||
""" looks up the full path for @tool, returns None if not found
|
|
||||||
or if @tool does not have executable permissions.
|
|
||||||
"""
|
|
||||||
paths=os.getenv('PATH')
|
|
||||||
for p in paths.split(os.path.pathsep):
|
|
||||||
p = os.path.join(p, tool)
|
|
||||||
if os.path.exists(p) and os.access(p, os.X_OK):
|
|
||||||
return p
|
|
||||||
return None
|
|
||||||
|
|
||||||
def missing_deps():
|
def missing_deps():
|
||||||
""" returns True if any of the test dependent tools are absent.
|
""" returns True if any of the test dependent tools are absent.
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
from unittest import skipIf, skipUnless
|
from unittest import skipIf, skipUnless
|
||||||
from qemu_test import QemuSystemTest, Asset
|
from qemu_test import QemuSystemTest, Asset
|
||||||
from qemu_test import wait_for_console_pattern, exec_command
|
from qemu_test import wait_for_console_pattern, exec_command, which
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
import subprocess
|
import subprocess
|
||||||
|
@ -19,17 +19,6 @@ from datetime import datetime
|
||||||
|
|
||||||
deps = ["xorriso"] # dependent tools needed in the test setup/box.
|
deps = ["xorriso"] # dependent tools needed in the test setup/box.
|
||||||
|
|
||||||
def which(tool):
|
|
||||||
""" looks up the full path for @tool, returns None if not found
|
|
||||||
or if @tool does not have executable permissions.
|
|
||||||
"""
|
|
||||||
paths=os.getenv('PATH')
|
|
||||||
for p in paths.split(os.path.pathsep):
|
|
||||||
p = os.path.join(p, tool)
|
|
||||||
if os.path.exists(p) and os.access(p, os.X_OK):
|
|
||||||
return p
|
|
||||||
return None
|
|
||||||
|
|
||||||
def missing_deps():
|
def missing_deps():
|
||||||
""" returns True if any of the test dependent tools are absent.
|
""" returns True if any of the test dependent tools are absent.
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue