diff options
| -rw-r--r-- | kconfiglib.py | 17 | ||||
| -rw-r--r-- | tests/Kmisc | 7 | ||||
| -rw-r--r-- | testsuite.py | 8 |
3 files changed, 29 insertions, 3 deletions
diff --git a/kconfiglib.py b/kconfiglib.py index 4d46f29..152c7af 100644 --- a/kconfiglib.py +++ b/kconfiglib.py @@ -1325,9 +1325,12 @@ error, and you should e-mail kconfiglib@gmail.com. linenr) elif tokens.check(T_ALLNOCONFIG_Y): - self._warn("the 'allnoconfig_y' option is not supported.", - filename, - linenr) + if not isinstance(stmt, Symbol): + _parse_error(line, + "the 'allnoconfig_y' option is only valid for symbols.", + filename, + linenr) + stmt.allnoconfig_y = True else: _parse_error(line, "unrecognized option.", filename, linenr) @@ -2765,6 +2768,11 @@ class Symbol(Item, _HasVisibility): and sym.get_parent().get_selection() is sym'.""" return self.is_choice_symbol_ and self.parent.get_selection() is self + def is_allnoconfig_y(self): + """Returns True if the symbol has the 'allnoconfig_y' option set; + otherwise, returns False.""" + return self.allnoconfig_y + def __str__(self): """Returns a string containing various information about the symbol.""" return self.config._get_sym_or_choice_str(self) @@ -2862,6 +2870,9 @@ class Symbol(Item, _HasVisibility): # Does the symbol get its value from the environment? self.is_from_env = False + # Does the symbol have the 'allnoconfig_y' option set? + self.allnoconfig_y = False + def _invalidate(self): if self.is_special_: return diff --git a/tests/Kmisc b/tests/Kmisc index 725f661..d2e55b2 100644 --- a/tests/Kmisc +++ b/tests/Kmisc @@ -64,3 +64,10 @@ config FROM_ENV config FROM_ENV_MISSING string option env="MISSING_ENV_VAR" + +config NOT_ALLNOCONFIG_Y + bool "not allnoconfig_y" + +config ALLNOCONFIG_Y + bool "allnoconfig_y" + option allnoconfig_y diff --git a/testsuite.py b/testsuite.py index be0082e..1fe0f24 100644 --- a/testsuite.py +++ b/testsuite.py @@ -1195,6 +1195,13 @@ def run_selftests(): verify(not sym.is_choice_symbol(), "{0} should not be a choice symbol".format(sym_name)) + print "Testing is_allnoconfig_y()..." + + verify(not c["NOT_ALLNOCONFIG_Y"].is_allnoconfig_y(), + "NOT_ALLNOCONFIG_Y should not be allnoconfig_y") + verify(c["ALLNOCONFIG_Y"].is_allnoconfig_y(), + "ALLNOCONFIG_Y should be allnoconfig_y") + print "Testing UNAME_RELEASE value..." verify_value("UNAME_RELEASE", os.uname()[2]) @@ -1760,6 +1767,7 @@ def test_call_all(conf): s.is_defined() s.is_from_environment() s.is_modifiable() + s.is_allnoconfig_y() s.unset_user_value() # Check get_ref/def_location() sanity |
