Skip to content

Commit b89715b

Browse files
committed
added test/cli/unused_function_test.py
1 parent 291d492 commit b89715b

5 files changed

Lines changed: 75 additions & 0 deletions

File tree

test/cli/unusedFunction/1.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#include "3.h"
2+
3+
// cppcheck-suppress unusedFunction
4+
void f1()
5+
{
6+
f3_1();
7+
}

test/cli/unusedFunction/2.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#include "3.h"
2+
3+
// cppcheck-suppress unusedFunction
4+
void f2()
5+
{
6+
f3_2();
7+
}

test/cli/unusedFunction/3.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
void f3_1() {}
2+
void f3_2() {}
3+
void f3_3() {}

test/cli/unusedFunction/3.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
void f3_1();
2+
void f3_2();
3+
void f3_3();

test/cli/unused_function_test.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
2+
# python3 -m pytest test-unused_function_test.py
3+
4+
import os
5+
from testutils import cppcheck
6+
7+
__script_dir = os.path.dirname(os.path.abspath(__file__))
8+
9+
PROJECT_DIR = os.path.join(__script_dir, 'unusedFunction')
10+
11+
12+
def test_unused_functions():
13+
ret, stdout, stderr = cppcheck(['-q', '--template=simple', '--enable=unusedFunction', '--inline-suppr', PROJECT_DIR])
14+
assert stdout.splitlines() == []
15+
assert stderr.splitlines() == [
16+
"{}/3.c:3:0: style: The function 'f3_3' is never used. [unusedFunction]".format(PROJECT_DIR)
17+
]
18+
assert ret == 0, stdout
19+
20+
21+
def test_unused_functions_j():
22+
ret, stdout, stderr = cppcheck(['-q', '--template=simple', '--enable=unusedFunction', '--inline-suppr', '-j2', PROJECT_DIR])
23+
assert stdout.splitlines() == [
24+
"cppcheck: unusedFunction check can't be used with '-j' option. Disabling unusedFunction check."
25+
]
26+
assert stderr.splitlines() == []
27+
assert ret == 0, stdout
28+
29+
30+
def test_unused_functions_builddir(tmpdir):
31+
build_dir = os.path.join(tmpdir, 'b1')
32+
os.mkdir(build_dir)
33+
ret, stdout, stderr = cppcheck(['-q', '--template=simple', '--enable=unusedFunction', '--inline-suppr', '--cppcheck-build-dir={}'.format(build_dir), PROJECT_DIR])
34+
assert stdout.splitlines() == []
35+
assert stderr.splitlines() == [
36+
"{}/3.c:3:0: style: The function 'f3_3' is never used. [unusedFunction]".format(PROJECT_DIR)
37+
]
38+
assert ret == 0, stdout
39+
40+
41+
# TODO: only f3_3 is unused
42+
def test_unused_functions_builddir_j(tmpdir):
43+
build_dir = os.path.join(tmpdir, 'b1')
44+
os.mkdir(build_dir)
45+
ret, stdout, stderr = cppcheck(['-q', '--template=simple', '--enable=unusedFunction', '--inline-suppr', '-j2', '--cppcheck-build-dir={}'.format(build_dir), PROJECT_DIR])
46+
assert stdout.splitlines() == []
47+
assert stderr.splitlines() == [
48+
"{}/1.c:4:0: style: The function 'f1' is never used. [unusedFunction]".format(PROJECT_DIR),
49+
"{}/2.c:4:0: style: The function 'f2' is never used. [unusedFunction]".format(PROJECT_DIR),
50+
"{}/3.c:3:0: style: The function 'f3_3' is never used. [unusedFunction]".format(PROJECT_DIR)
51+
]
52+
assert ret == 0, stdout
53+
54+
# TODO: test with project file
55+
# TODO: test with FileSettings

0 commit comments

Comments
 (0)