[OE-core] [PATCH] sanity.bbclass: uppercase check for machine and distro
Martin Hundebøll
mnhu at prevas.dk
Mon Sep 25 05:18:35 UTC 2017
On 2017-09-24 21:52, Yeoh Ee Peng wrote:
> Uppercase in machine and distro will result in unexpected
> behavior.
Wouldn't other checks make sense as well; e.g. underscore or starting
with "pn-" ?
I'd prefer a whitelist check instead of an ever growing number of
blacklist checks.
// Martin
> QA check will produce error message if it verified that
> machine or distro is uppercase.
>
> Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh at intel.com>
> ---
> meta/classes/sanity.bbclass | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
> index 1feb794..82efaef 100644
> --- a/meta/classes/sanity.bbclass
> +++ b/meta/classes/sanity.bbclass
> @@ -694,6 +694,13 @@ def sanity_check_locale(d):
> except locale.Error:
> raise_sanity_error("You system needs to support the en_US.UTF-8 locale.", d)
>
> +def check_name_uppercase(type, name):
> + import re
> + messages = ""
> + if re.search('[A-Z]', name):
> + messages = messages + "%s: '%s' is uppercase. Please correct it to lowercase to avoid unexpected behavior.\n" % (type, name)
> + return messages
> +
> def check_sanity_everybuild(status, d):
> import os, stat
> # Sanity tests which test the users environment so need to run at each build (or are so cheap
> @@ -723,6 +730,7 @@ def check_sanity_everybuild(status, d):
> # need to take into account DISTRO renaming DISTRO
> distro = d.getVar('DISTRO')
> if distro and distro != "nodistro":
> + status.addresult(check_name_uppercase('DISTRO', d.getVar('DISTRO')))
> if not ( check_conf_exists("conf/distro/${DISTRO}.conf", d) or check_conf_exists("conf/distro/include/${DISTRO}.inc", d) ):
> status.addresult("DISTRO '%s' not found. Please set a valid DISTRO in your local.conf\n" % d.getVar("DISTRO"))
>
> @@ -743,6 +751,7 @@ def check_sanity_everybuild(status, d):
> # Check that the MACHINE is valid, if it is set
> machinevalid = True
> if d.getVar('MACHINE'):
> + status.addresult(check_name_uppercase('MACHINE', d.getVar('MACHINE')))
> if not check_conf_exists("conf/machine/${MACHINE}.conf", d):
> status.addresult('MACHINE=%s is invalid. Please set a valid MACHINE in your local.conf, environment or other configuration file.\n' % (d.getVar('MACHINE')))
> machinevalid = False
>
--
MARTIN HUNDEBØLL, Prevas A/S
Software Developer
Hedeager 3, DK-8200 Aarhus N
Phone +45 87438070
Mobile +45 25562438
Martin.Hundeboll at prevas.dk
www.prevas.com
More information about the Openembedded-core
mailing list