forked from pfqgauxfb/code-analysis
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
3.3 KiB
66 lines
3.3 KiB
|
|
# python3 -m pytest test-qml.py
|
|
|
|
import os
|
|
from testutils import cppcheck
|
|
|
|
__script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
# there are unused functions. But fillSampleData is not unused because that is referenced from main.qml
|
|
__project_dir = os.path.join(__script_dir, 'QML-Samples-TableView')
|
|
__project_dir_sep = __project_dir + os.path.sep
|
|
|
|
|
|
def test_unused_functions():
|
|
ret, stdout, stderr = cppcheck(['-q', '--template=simple', '--library=qt', '--enable=unusedFunction', '-j1', __project_dir])
|
|
# there are unused functions. But fillSampleData is not unused because that is referenced from main.qml
|
|
assert stdout.splitlines() == []
|
|
assert stderr.splitlines() == [
|
|
"{}samplemodel.cpp:9:0: style: The function 'rowCount' is never used. [unusedFunction]".format(__project_dir_sep),
|
|
"{}samplemodel.cpp:15:0: style: The function 'data' is never used. [unusedFunction]".format(__project_dir_sep),
|
|
"{}samplemodel.cpp:38:0: style: The function 'roleNames' is never used. [unusedFunction]".format(__project_dir_sep)
|
|
]
|
|
assert ret == 0, stdout
|
|
|
|
|
|
def test_unused_functions_j():
|
|
ret, stdout, stderr = cppcheck(['-q', '--template=simple', '--library=qt', '--enable=unusedFunction', '-j2', __project_dir])
|
|
assert stdout.splitlines() == [
|
|
"cppcheck: unusedFunction check can't be used with '-j' option. Disabling unusedFunction check."
|
|
]
|
|
assert stderr.splitlines() == []
|
|
assert ret == 0, stdout # TODO: abil out on this
|
|
|
|
|
|
# TODO: fillSampleData is not unused
|
|
def test_unused_functions_builddir(tmpdir):
|
|
build_dir = os.path.join(tmpdir, 'b1')
|
|
os.mkdir(build_dir)
|
|
ret, stdout, stderr = cppcheck(['-q', '--template=simple', '--library=qt', '--enable=unusedFunction', '--cppcheck-build-dir={}'.format(build_dir), __project_dir])
|
|
assert stdout.splitlines() == []
|
|
assert stderr.splitlines() == [
|
|
"{}samplemodel.cpp:15:0: style: The function 'data' is never used. [unusedFunction]".format(__project_dir_sep),
|
|
"{}samplemodel.cpp:47:0: style: The function 'fillSampleData' is never used. [unusedFunction]".format(__project_dir_sep),
|
|
"{}samplemodel.cpp:38:0: style: The function 'roleNames' is never used. [unusedFunction]".format(__project_dir_sep),
|
|
"{}samplemodel.cpp:9:0: style: The function 'rowCount' is never used. [unusedFunction]".format(__project_dir_sep),
|
|
]
|
|
assert ret == 0, stdout
|
|
|
|
|
|
# TODO: fillSampleData is not unused
|
|
def test_unused_functions_builddir_j(tmpdir):
|
|
build_dir = os.path.join(tmpdir, 'b1')
|
|
os.mkdir(build_dir)
|
|
ret, stdout, stderr = cppcheck(['-q', '--template=simple', '--library=qt', '--enable=unusedFunction', '-j2', '--cppcheck-build-dir={}'.format(build_dir), __project_dir])
|
|
assert stdout.splitlines() == []
|
|
assert stderr.splitlines() == [
|
|
"{}samplemodel.cpp:15:0: style: The function 'data' is never used. [unusedFunction]".format(__project_dir_sep),
|
|
"{}samplemodel.cpp:47:0: style: The function 'fillSampleData' is never used. [unusedFunction]".format(__project_dir_sep),
|
|
"{}samplemodel.cpp:38:0: style: The function 'roleNames' is never used. [unusedFunction]".format(__project_dir_sep),
|
|
"{}samplemodel.cpp:9:0: style: The function 'rowCount' is never used. [unusedFunction]".format(__project_dir_sep),
|
|
]
|
|
assert ret == 0, stdout
|
|
|
|
# TODO: test with project file
|
|
# TODO: test with FileSettings
|