Re: [PATCH] dt-bindings: Improve validation build error handling

From: Rob Herring
Date: Thu Nov 14 2019 - 11:34:55 EST


On Thu, Nov 14, 2019 at 9:21 AM Jeffrey Hugo <jhugo@xxxxxxxxxxxxxx> wrote:
>
> On 11/13/2019 2:05 PM, Rob Herring wrote:
> > Schema errors can cause make to exit before useful information is
> > printed. This leaves developers wondering what's wrong. It can be
> > overcome passing '-k' to make, but that's not an obvious solution.
> > There's 2 scenarios where this happens.
> >
> > When using DT_SCHEMA_FILES to validate with a single schema, any error
> > in the schema results in processed-schema.yaml being empty causing a
> > make error. The result is the specific errors in the schema are never
> > shown because processed-schema.yaml is the first target built. Simply
> > making processed-schema.yaml last in extra-y ensures the full schema
> > validation with detailed error messages happen first.
> >
> > The 2nd problem is while schema errors are ignored for
> > processed-schema.yaml, full validation of the schema still runs in
> > parallel and any schema validation errors will still stop the build when
> > running validation of dts files. The fix is to not add the schema
> > examples to extra-y in this case. This means 'dtbs_check' is no longer a
> > superset of 'dt_binding_check'. Update the documentation to make this
> > clear.
> >
> > Cc: Jeffrey Hugo <jhugo@xxxxxxxxxxxxxx>
> > Cc: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> > Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
>
> I injected a syntax error into a random binding file, and compared the
> output with and without this patch. This patch makes a massive
> improvement in giving the user the necessary information to identify and
> fix issues. Thanks!

BTW, update dtschema and you'll get better (or more at least) messages
when 'is not valid under any of the given schemas' errors occur.

> Tested-by: Jeffrey Hugo <jhugo@xxxxxxxxxxxxxx>

Thanks.

Rob