mirror of
https://github.com/virt-manager/virt-manager.git
synced 2024-12-22 13:34:07 +03:00
meson: add tests
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
parent
f41deedd52
commit
5f34dea0ed
12
meson.build
12
meson.build
@ -59,3 +59,15 @@ if git
|
|||||||
|
|
||||||
meson.add_dist_script(meson_dist_prog.full_path(), spec_file)
|
meson.add_dist_script(meson_dist_prog.full_path(), spec_file)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if get_option('tests').auto()
|
||||||
|
use_tests = git
|
||||||
|
elif get_option('tests').enabled()
|
||||||
|
use_tests = true
|
||||||
|
else
|
||||||
|
use_tests = false
|
||||||
|
endif
|
||||||
|
|
||||||
|
if use_tests
|
||||||
|
subdir('tests')
|
||||||
|
endif
|
||||||
|
@ -3,3 +3,5 @@ option('compile-schemas', type: 'boolean', value: true, description: 'whether to
|
|||||||
|
|
||||||
option('default-graphics', type: 'combo', choices: ['spice', 'vnc'], value: 'spice', description: 'default graphics type')
|
option('default-graphics', type: 'combo', choices: ['spice', 'vnc'], value: 'spice', description: 'default graphics type')
|
||||||
option('default-hvs', type: 'array', choices: ['qemu', 'xen', 'lxc', 'bhyve', 'vz'], description: 'list of hypervisors shown in "Open Connection" wizard')
|
option('default-hvs', type: 'array', choices: ['qemu', 'xen', 'lxc', 'bhyve', 'vz'], description: 'list of hypervisors shown in "Open Connection" wizard')
|
||||||
|
|
||||||
|
option('tests', type: 'feature', value: 'auto', description: 'whether to run tests')
|
||||||
|
71
setup.py
71
setup.py
@ -75,76 +75,6 @@ class TestCommand(setuptools.Command):
|
|||||||
"See CONTRIBUTING.md for more info.")
|
"See CONTRIBUTING.md for more info.")
|
||||||
|
|
||||||
|
|
||||||
class CheckPylint(setuptools.Command):
|
|
||||||
user_options = [
|
|
||||||
("jobs=", "j", "use multiple processes to speed up Pylint"),
|
|
||||||
]
|
|
||||||
description = "Check code using pylint and pycodestyle"
|
|
||||||
|
|
||||||
def initialize_options(self):
|
|
||||||
self.jobs = None
|
|
||||||
|
|
||||||
def finalize_options(self):
|
|
||||||
if self.jobs is not None:
|
|
||||||
self.jobs = int(self.jobs)
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
import pylint.lint
|
|
||||||
import pycodestyle
|
|
||||||
|
|
||||||
lintfiles = [
|
|
||||||
# Put this first so pylint learns what Gtk version we
|
|
||||||
# want to lint against
|
|
||||||
"virtManager/virtmanager.py",
|
|
||||||
"setup.py",
|
|
||||||
"tests",
|
|
||||||
"virtinst",
|
|
||||||
"virtManager"]
|
|
||||||
|
|
||||||
spellfiles = lintfiles[:]
|
|
||||||
spellfiles += list(glob.glob("*.md"))
|
|
||||||
spellfiles += list(glob.glob("man/*.rst"))
|
|
||||||
spellfiles += ["data/virt-manager.appdata.xml.in",
|
|
||||||
"data/virt-manager.desktop.in",
|
|
||||||
"data/org.virt-manager.virt-manager.gschema.xml",
|
|
||||||
"virt-manager.spec"]
|
|
||||||
spellfiles.remove("NEWS.md")
|
|
||||||
|
|
||||||
try:
|
|
||||||
import codespell_lib
|
|
||||||
# pylint: disable=protected-access
|
|
||||||
print("running codespell")
|
|
||||||
codespell_lib._codespell.main(
|
|
||||||
'-I', 'tests/data/codespell_dict.txt',
|
|
||||||
'--skip', '*.pyc,*.iso,*.xml', *spellfiles)
|
|
||||||
except ImportError:
|
|
||||||
print("codespell is not installed. skipping...")
|
|
||||||
except Exception as e:
|
|
||||||
print("Error running codespell: %s" % e)
|
|
||||||
|
|
||||||
output_format = sys.stdout.isatty() and "colorized" or "text"
|
|
||||||
|
|
||||||
print("running pycodestyle")
|
|
||||||
style_guide = pycodestyle.StyleGuide(
|
|
||||||
config_file='setup.cfg',
|
|
||||||
format="pylint",
|
|
||||||
paths=lintfiles,
|
|
||||||
)
|
|
||||||
report = style_guide.check_files()
|
|
||||||
if style_guide.options.count:
|
|
||||||
sys.stderr.write(str(report.total_errors) + '\n')
|
|
||||||
|
|
||||||
print("running pylint")
|
|
||||||
pylint_opts = [
|
|
||||||
"--rcfile", ".pylintrc",
|
|
||||||
"--output-format=%s" % output_format,
|
|
||||||
]
|
|
||||||
if self.jobs is not None:
|
|
||||||
pylint_opts += ["--jobs=%d" % self.jobs]
|
|
||||||
|
|
||||||
pylint.lint.Run(lintfiles + pylint_opts)
|
|
||||||
|
|
||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
name="virt-manager",
|
name="virt-manager",
|
||||||
version=BuildConfig.version,
|
version=BuildConfig.version,
|
||||||
@ -157,7 +87,6 @@ setuptools.setup(
|
|||||||
cmdclass={
|
cmdclass={
|
||||||
'install_egg_info': my_egg_info,
|
'install_egg_info': my_egg_info,
|
||||||
|
|
||||||
'pylint': CheckPylint,
|
|
||||||
'rpm': my_rpm,
|
'rpm': my_rpm,
|
||||||
'test': TestCommand,
|
'test': TestCommand,
|
||||||
},
|
},
|
||||||
|
64
tests/meson.build
Normal file
64
tests/meson.build
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
lint_files = [
|
||||||
|
'tests',
|
||||||
|
'virtinst',
|
||||||
|
'virtManager',
|
||||||
|
]
|
||||||
|
|
||||||
|
spell_files = lint_files + [
|
||||||
|
'*.md',
|
||||||
|
'man/*.rst',
|
||||||
|
'data/virt-manager.appdata.xml.in',
|
||||||
|
'data/virt-manager.desktop.in',
|
||||||
|
'data/org.virt-manager.virt-manager.gschema.xml',
|
||||||
|
'virt-manager.spec.in',
|
||||||
|
]
|
||||||
|
|
||||||
|
pylint_prog = find_program(['pylint', 'pylint-3'])
|
||||||
|
# meson sets this MALLOC_PERTURB_ to random value by default but it
|
||||||
|
# doesn't work correctly with pylint so we need to override it
|
||||||
|
nomalloc = environment({'MALLOC_PERTURB_': '0'})
|
||||||
|
test(
|
||||||
|
'pylint',
|
||||||
|
pylint_prog,
|
||||||
|
args: [
|
||||||
|
lint_files,
|
||||||
|
'--rcfile', '.pylintrc',
|
||||||
|
],
|
||||||
|
env: nomalloc,
|
||||||
|
workdir: meson.project_source_root(),
|
||||||
|
timeout: 300,
|
||||||
|
)
|
||||||
|
|
||||||
|
pytest_prog = find_program(['pytest', 'pytest-3'])
|
||||||
|
test(
|
||||||
|
'pytest',
|
||||||
|
pytest_prog,
|
||||||
|
workdir: meson.project_source_root(),
|
||||||
|
timeout: 300,
|
||||||
|
)
|
||||||
|
|
||||||
|
pycodestyle_prog = find_program(['pycodestyle', 'pycodestyle-3'])
|
||||||
|
test(
|
||||||
|
'pycodestyle',
|
||||||
|
pycodestyle_prog,
|
||||||
|
args: [
|
||||||
|
'--config', 'setup.cfg',
|
||||||
|
'--format', 'pylint',
|
||||||
|
lint_files,
|
||||||
|
],
|
||||||
|
workdir: meson.project_source_root(),
|
||||||
|
)
|
||||||
|
|
||||||
|
codespell_prog = find_program('codespell', required:false)
|
||||||
|
if codespell_prog.found()
|
||||||
|
test(
|
||||||
|
'codespell',
|
||||||
|
codespell_prog,
|
||||||
|
args: [
|
||||||
|
'--ignore-words', 'tests/data/codespell_dict.txt',
|
||||||
|
'--skip', '*.pyc,*.iso,*.xml,NEWS.md',
|
||||||
|
spell_files,
|
||||||
|
],
|
||||||
|
workdir: meson.project_source_root(),
|
||||||
|
)
|
||||||
|
endif
|
@ -107,7 +107,8 @@ machine).
|
|||||||
%meson \
|
%meson \
|
||||||
-Ddefault-hvs=%{default_hvs} \
|
-Ddefault-hvs=%{default_hvs} \
|
||||||
-Dupdate-icon-cache=false \
|
-Dupdate-icon-cache=false \
|
||||||
-Dcompile-schemas=false
|
-Dcompile-schemas=false \
|
||||||
|
-Dtests=disabled
|
||||||
%meson_build
|
%meson_build
|
||||||
|
|
||||||
%install
|
%install
|
||||||
|
Loading…
Reference in New Issue
Block a user