History

kconfig: tests: test if recursive dependencies are detected

Recursive dependency should be detected and warned. Test this. This indirectly tests the line number increments.

Masahiro Yamada committed 8 years ago

Commit 29c434f1 parent 3e4888c3 files · +101 −0Browse files

Showing the changes to scripts (3 of 3 files). Show all

Unified · Split

3 files
  1. scripts/kconfig/tests/warn_recursive_dep/Kconfig +62 −0
  2. scripts/kconfig/tests/warn_recursive_dep/__init__.py +9 −0
  3. scripts/kconfig/tests/warn_recursive_dep/expected_stderr +30 −0
scripts/kconfig/tests/warn_recursive_dep/Kconfig+62−0
@@ -0,0 +1,62 @@
1# depends on itself
2
3config A
4 bool "A"
5 depends on A
6
7# select itself
8
9config B
10 bool
11 select B
12
13# depends on each other
14
15config C1
16 bool "C1"
17 depends on C2
18
19config C2
20 bool "C2"
21 depends on C1
22
23# depends on and select
24
25config D1
26 bool "D1"
27 depends on D2
28 select D2
29
30config D2
31 bool
32
33# depends on and imply
34# This is not recursive dependency
35
36config E1
37 bool "E1"
38 depends on E2
39 imply E2
40
41config E2
42 bool "E2"
43
44# property
45
46config F1
47 bool "F1"
48 default F2
49
50config F2
51 bool "F2"
52 depends on F1
53
54# menu
55
56menu "menu depending on its content"
57 depends on G
58
59config G
60 bool "G"
61
62endmenu
scripts/kconfig/tests/warn_recursive_dep/__init__.py+9−0
@@ -0,0 +1,9 @@
1"""
2Warn recursive inclusion.
3
4Recursive dependency should be warned.
5"""
6
7def test(conf):
8 assert conf.oldaskconfig() == 0
9 assert conf.stderr_contains('expected_stderr')
scripts/kconfig/tests/warn_recursive_dep/expected_stderr+30−0
@@ -0,0 +1,30 @@
1Kconfig:9:error: recursive dependency detected!
2Kconfig:9: symbol B is selected by B
3For a resolution refer to Documentation/kbuild/kconfig-language.txt
4subsection "Kconfig recursive dependency limitations"
5
6Kconfig:3:error: recursive dependency detected!
7Kconfig:3: symbol A depends on A
8For a resolution refer to Documentation/kbuild/kconfig-language.txt
9subsection "Kconfig recursive dependency limitations"
10
11Kconfig:15:error: recursive dependency detected!
12Kconfig:15: symbol C1 depends on C2
13Kconfig:19: symbol C2 depends on C1
14For a resolution refer to Documentation/kbuild/kconfig-language.txt
15subsection "Kconfig recursive dependency limitations"
16
17Kconfig:30:error: recursive dependency detected!
18Kconfig:30: symbol D2 is selected by D1
19Kconfig:25: symbol D1 depends on D2
20For a resolution refer to Documentation/kbuild/kconfig-language.txt
21subsection "Kconfig recursive dependency limitations"
22
23Kconfig:59:error: recursive dependency detected!
24Kconfig:59: symbol G depends on G
25For a resolution refer to Documentation/kbuild/kconfig-language.txt
26subsection "Kconfig recursive dependency limitations"
27
28Kconfig:50:error: recursive dependency detected!
29Kconfig:50: symbol F2 depends on F1
30Kconfig:48: symbol F1 default value contains F2