Received: by 10.223.185.116 with SMTP id b49csp8235472wrg; Thu, 1 Mar 2018 20:44:23 -0800 (PST) X-Google-Smtp-Source: AG47ELsdp8o2FnVMhg77DiJV6SQGb16SprM1xplZft1TbUMQ+WOa0I71xkeKCkoPgtZSrsXkdm9l X-Received: by 2002:a17:902:43e4:: with SMTP id j91-v6mr4055881pld.153.1519965863694; Thu, 01 Mar 2018 20:44:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519965863; cv=none; d=google.com; s=arc-20160816; b=py+qjrRLWh/qLm8WysaWSQQ1xKvQix3+TwX2eM4YBwlYyqJnbR+mgEKOCSwI6KhtXb wqTbbbf1VRutiHtN6TQgAriMIcZ7XShKWncqTifnhZyVJegrDblno32YBgzb2BQREyv4 H44ccW63N9h/fCvV47PslxMub+p/m90iAz+wBez0QRcZWIcvzKwC4+HNkEuCf5v+gsRe j2TbNbAKYw5iSd8UHBjp9jKKqZWBfd2VRoFzAVR9TVlFwzeTWoJODqtzEjrOm18Jf4hu DB/bV1mGe3Cmqr577o/gQPtcxxhS+ddXqsxm4t3n3Wm0jPM8NbXG1PI+oFRPbLFRl/EP +NDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:dkim-filter :arc-authentication-results; bh=vO+CONu9EvAUZfRJqDT+CIrQF6YVBUOKNPLNjHMlLtU=; b=lo8SKsPKmxeMLIkWkFMC5sdn0PuOBzREgHQ5M2pmn1aYJ6QEkEOyd46LILGJmy86+s TOaf40r2Ho7ZRw9EK9kLrQ560NXQAlkEVWUn/fI+nEysOpc0BAkLnQG7wmvqKeSBbmrc jjkyxtT4j41gkD4eLUrLTEYl6HperwdureMoifibXvxzbHmEe7KCtJ+sjLzcrOG3KuG6 ttOnG1OoNCiT9RvmL3Vy4ka23vedZWKCoac0ycdc99oYYu5mqx8/RjKnC/gJZuxtTiSb FA7DCmHYlwo5738W2/Xo2MWeY0a1xmzbvDczTxIKxTiP4XkmGCVEd5idvd6GLgQoHVkX J9TQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=JEeVgNm0; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h125si4209778pfc.133.2018.03.01.20.44.09; Thu, 01 Mar 2018 20:44:23 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=JEeVgNm0; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1422678AbeCBEd5 (ORCPT + 99 others); Thu, 1 Mar 2018 23:33:57 -0500 Received: from conuserg-08.nifty.com ([210.131.2.75]:53155 "EHLO conuserg-08.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1164986AbeCBEdr (ORCPT ); Thu, 1 Mar 2018 23:33:47 -0500 Received: from pug.e01.socionext.com (p14092-ipngnfx01kyoto.kyoto.ocn.ne.jp [153.142.97.92]) (authenticated) by conuserg-08.nifty.com with ESMTP id w224WURL022085; Fri, 2 Mar 2018 13:32:38 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-08.nifty.com w224WURL022085 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1519965159; bh=vO+CONu9EvAUZfRJqDT+CIrQF6YVBUOKNPLNjHMlLtU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JEeVgNm0qFsYK2Y+Er1BHsUq6jTDo4OSxeWmiKwHoFHH/K58E9ln4Yzoe/OqwoRvO l6eZkD+Vqe/2TAfsgIJ6fBftOVxtCtdtD1uo9uPdC4QF9GSQVkYoko8ZpZUTf3YiDg GCw/7uXk6xf0GtyQs31b0PgH50mQjNG/Sr6OxBD/olYCa+P4jLMUIdUPnHvQAz+eyA wJePKavROdMtWpNno8F0kWirOx1CR6BUJKCjrbHAZ9Ekf64iS60WGXzl5Ve1hpLrSo cZhUIiPlFJOHVDbXYt7oRFE0PcgjxOLj5zWd71/VbK8yQ4CQN/gN4gEyqGMZjh3umf XKN6vOL5sz0Xg== X-Nifty-SrcIP: [153.142.97.92] From: Masahiro Yamada To: linux-kbuild@vger.kernel.org Cc: Sam Ravnborg , Michal Marek , Ulf Magnusson , Randy Dunlap , "Luis R . Rodriguez" , Masahiro Yamada , linux-kernel@vger.kernel.org Subject: [PATCH v2 10/11] kconfig: unittest: test if recursive dependencies are detected Date: Fri, 2 Mar 2018 13:32:00 +0900 Message-Id: <1519965121-12017-11-git-send-email-yamada.masahiro@socionext.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1519965121-12017-1-git-send-email-yamada.masahiro@socionext.com> References: <1519965121-12017-1-git-send-email-yamada.masahiro@socionext.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Recursive dependency should be detected and warned. Test this. (This indirectly tests the line number increments.) Signed-off-by: Masahiro Yamada Reviewed-by: Ulf Magnusson --- Changes in v2: - Fix missing end quote - coding style clean-up based on PEP8, PEP257 scripts/kconfig/tests/warn_recursive_dep/Kconfig | 62 ++++++++++++++++++++++ .../kconfig/tests/warn_recursive_dep/__init__.py | 9 ++++ .../tests/warn_recursive_dep/expected_stderr | 30 +++++++++++ 3 files changed, 101 insertions(+) create mode 100644 scripts/kconfig/tests/warn_recursive_dep/Kconfig create mode 100644 scripts/kconfig/tests/warn_recursive_dep/__init__.py create mode 100644 scripts/kconfig/tests/warn_recursive_dep/expected_stderr diff --git a/scripts/kconfig/tests/warn_recursive_dep/Kconfig b/scripts/kconfig/tests/warn_recursive_dep/Kconfig new file mode 100644 index 0000000..a65bfcb --- /dev/null +++ b/scripts/kconfig/tests/warn_recursive_dep/Kconfig @@ -0,0 +1,62 @@ +# 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 diff --git a/scripts/kconfig/tests/warn_recursive_dep/__init__.py b/scripts/kconfig/tests/warn_recursive_dep/__init__.py new file mode 100644 index 0000000..adb2195 --- /dev/null +++ b/scripts/kconfig/tests/warn_recursive_dep/__init__.py @@ -0,0 +1,9 @@ +""" +Warn recursive inclusion. + +Recursive dependency should be warned. +""" + +def test(conf): + assert conf.oldaskconfig() == 0 + assert conf.stderr_contains('expected_stderr') diff --git a/scripts/kconfig/tests/warn_recursive_dep/expected_stderr b/scripts/kconfig/tests/warn_recursive_dep/expected_stderr new file mode 100644 index 0000000..3de807d --- /dev/null +++ b/scripts/kconfig/tests/warn_recursive_dep/expected_stderr @@ -0,0 +1,30 @@ +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 -- 2.7.4