Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 29c434f3 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

kconfig: tests: test if recursive dependencies are detected



Recursive dependency should be detected and warned.  Test this.

This indirectly tests the line number increments.

Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: default avatarUlf Magnusson <ulfalizer@gmail.com>
parent 3e4888c2
Loading
Loading
Loading
Loading
+62 −0
Original line number Diff line number Diff line
# depends on itself

config A
	bool "A"
	depends on A

# select itself

config B
	bool
	select B

# depends on each other

config C1
	bool "C1"
	depends on C2

config C2
	bool "C2"
	depends on C1

# depends on and select

config D1
	bool "D1"
	depends on D2
	select D2

config D2
	bool

# depends on and imply
# This is not recursive dependency

config E1
	bool "E1"
	depends on E2
	imply E2

config E2
	bool "E2"

# property

config F1
	bool "F1"
	default F2

config F2
	bool "F2"
	depends on F1

# menu

menu "menu depending on its content"
	depends on G

config G
	bool "G"

endmenu
+9 −0
Original line number Diff line number Diff line
"""
Warn recursive inclusion.

Recursive dependency should be warned.
"""

def test(conf):
    assert conf.oldaskconfig() == 0
    assert conf.stderr_contains('expected_stderr')
+30 −0
Original line number Diff line number Diff line
Kconfig:9:error: recursive dependency detected!
Kconfig:9:	symbol B is selected by B
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"

Kconfig:3:error: recursive dependency detected!
Kconfig:3:	symbol A depends on A
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"

Kconfig:15:error: recursive dependency detected!
Kconfig:15:	symbol C1 depends on C2
Kconfig:19:	symbol C2 depends on C1
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"

Kconfig:30:error: recursive dependency detected!
Kconfig:30:	symbol D2 is selected by D1
Kconfig:25:	symbol D1 depends on D2
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"

Kconfig:59:error: recursive dependency detected!
Kconfig:59:	symbol G depends on G
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"

Kconfig:50:error: recursive dependency detected!
Kconfig:50:	symbol F2 depends on F1
Kconfig:48:	symbol F1 default value contains F2