diff mbox series

[v2] meson: Use -b to ignore CR vs. CR-LF issues on Windows

Message ID 20200907174828.1768-1-luoyonggang@gmail.com (mailing list archive)
State New, archived
Headers show
Series [v2] meson: Use -b to ignore CR vs. CR-LF issues on Windows | expand

Commit Message

Yonggang Luo Sept. 7, 2020, 5:48 p.m. UTC
Or the tests result would cause following test failure:
Running test QAPI doc
  LINK    tests/check-qdict.exe

Comments

Yonggang Luo Sept. 7, 2020, 5:53 p.m. UTC | #1
Forgot your

On Tue, Sep 8, 2020 at 1:48 AM Yonggang Luo <luoyonggang@gmail.com> wrote:

> Or the tests result would cause following test failure:
> Running test QAPI doc
>   LINK    tests/check-qdict.exe
> ---
> C:/Users/ContainerAdministrator/AppData/Local/Temp/qemu-build/../cirrus-ci-build/tests/qapi-schema/doc-good.texi
>   2020-09-02 10:26:02.396028200 -0700
> +++
> C:/Users/ContainerAdministrator/AppData/Local/Temp/qemu-build/tests/qapi-schema/doc-good-qapi-doc.texi
>     2020-09-02 10:43:09.849568200 -0700
> @@ -1,319 +1,319 @@
> -@c AUTOMATICALLY GENERATED, DO NOT MODIFY
> -
> -@section Section
> -
> -@subsection Subsection
> -
> -@strong{strong} @emph{with emphasis}
> -@code{var} @{in braces@}
> -@itemize @bullet
> -@item
> -List item one
> -@item
> -Two, multiple
> -lines
> -
> -@item
> -Three
> -Still in list
> -
> -@end itemize
> -
> -Not in list
> -@itemize @minus
> -@item
> -Second list
> -Note: still in list
> -
> -@end itemize
> -
> -Note: not in list
> -@enumerate
> -@item
> -Third list
> -is numbered
> -
> -@item
> -another item
> -
> -@example
> -example
> -@end example
> -
> -@example
> -multiple lines
> -@end example
> -
> -
> -@end enumerate
> -
> -Returns: the King
> -Since: the first age
> -Notes:
> -
> -@enumerate
> -@item
> -Lorem ipsum dolor sit amet
> -
> -@item
> -Ut enim ad minim veniam
> -
> -@end enumerate
> -
> -Duis aute irure dolor
> -
> -Example:
> -
> --> in
> -<- out
> -Examples:
> -@itemize @minus
> -@item
> -@strong{verbatim}
> -@item
> -@{braces@}
> -@end itemize
> -
> -
> -
> -@deftp {Enum} Enum
> -
> -
> -
> -@b{Values:}
> -@table @asis
> -@item @code{one}
> -The @emph{one} @{and only@}
> -@*@b{If:} @code{defined(IFONE)}
> -@item @code{two}
> -Not documented
> -@end table
> -
> -@b{Features:}
> -@table @asis
> -@item @code{enum-feat}
> -Also @emph{one} @{and only@}
> -@end table
> -@code{two} is undocumented
> -
> -@b{If:} @code{defined(IFCOND)}
> -@end deftp
> -
> -
> -
> -@deftp {Object} Base
> -
> -
> -
> -@b{Members:}
> -@table @asis
> -@item @code{base1: Enum}
> -the first member
> -@end table
> -
> -@end deftp
> -
> -
> -
> -@deftp {Object} Variant1
> -
> -A paragraph
> -
> -Another paragraph (but no @code{var}: line)
> -
> -@b{Members:}
> -@table @asis
> -@item @code{var1: string}
> -Not documented
> -@*@b{If:} @code{defined(IFSTR)}
> -@end table
> -
> -@b{Features:}
> -@table @asis
> -@item @code{variant1-feat}
> -a feature
> -@item @code{member-feat}
> -a member feature
> -@end table
> -
> -@end deftp
> -
> -
> -
> -@deftp {Object} Variant2
> -
> -
> -
> -@end deftp
> -
> -
> -
> -@deftp {Object} Object
> -
> -
> -
> -@b{Members:}
> -@table @asis
> -@item The members of @code{Base}
> -@item The members of @code{Variant1} when @code{base1} is @t{"one"}
> -@item The members of @code{Variant2} when @code{base1} is @t{"two"}
> (@b{If:} @code{IFTWO})
> -@end table
> -
> -@b{Features:}
> -@table @asis
> -@item @code{union-feat1}
> -a feature
> -@end table
> -
> -@end deftp
> -
> -
> -
> -@deftp {Object} SugaredUnion
> -
> -
> -
> -@b{Members:}
> -@table @asis
> -@item @code{type}
> -One of @t{"one"}, @t{"two"}
> -@item @code{data: Variant1} when @code{type} is @t{"one"}
> -@item @code{data: Variant2} when @code{type} is @t{"two"} (@b{If:}
> @code{IFTWO})
> -@end table
> -
> -@b{Features:}
> -@table @asis
> -@item @code{union-feat2}
> -a feature
> -@end table
> -
> -@end deftp
> -
> -
> -
> -@deftp {Alternate} Alternate
> -
> -
> -
> -@b{Members:}
> -@table @asis
> -@item @code{i: int}
> -an integer
> -@code{b} is undocumented
> -@item @code{b: boolean}
> -Not documented
> -@end table
> -
> -@b{Features:}
> -@table @asis
> -@item @code{alt-feat}
> -a feature
> -@end table
> -
> -@end deftp
> -
> -
> -@subsection Another subsection
> -
> -
> -@deftypefn Command {} cmd
> -
> -
> -
> -@b{Arguments:}
> -@table @asis
> -@item @code{arg1: int}
> -the first argument
> -@item @code{arg2: string} (optional)
> -the second
> -argument
> -@item @code{arg3: boolean}
> -Not documented
> -@end table
> -
> -@b{Features:}
> -@table @asis
> -@item @code{cmd-feat1}
> -a feature
> -@item @code{cmd-feat2}
> -another feature
> -@end table
> -
> -@b{Note:}
> -@code{arg3} is undocumented
> -
> -@b{Returns:}
> -@code{Object}
> -
> -@b{TODO:}
> -frobnicate
> -
> -@b{Notes:}
> -@itemize @minus
> -@item
> -Lorem ipsum dolor sit amet
> -@item
> -Ut enim ad minim veniam
> -
> -@end itemize
> -
> -Duis aute irure dolor
> -
> -@b{Example:}
> -@example
> --> in
> -<- out
> -@end example
> -
> -@b{Examples:}
> -@example
> -- *verbatim*
> -- @{braces@}
> -@end example
> -
> -@b{Since:}
> -2.10
> -
> -@end deftypefn
> -
> -
> -
> -@deftypefn Command {} cmd-boxed
> -
> -If you're bored enough to read this, go see a video of boxed cats
> -
> -@b{Arguments:} the members of @code{Object}
> -
> -@b{Features:}
> -@table @asis
> -@item @code{cmd-feat1}
> -a feature
> -@item @code{cmd-feat2}
> -another feature
> -@end table
> -
> -@b{Example:}
> -@example
> --> in
> -
> -<- out
> -@end example
> -
> -@end deftypefn
> -
> -
> -
> -@deftypefn Event {} EVT-BOXED
> -
> -
> -
> -@b{Arguments:} the members of @code{Object}
> -
> -@b{Features:}
> -@table @asis
> -@item @code{feat3}
> -a feature
> -@end table
> -
> -@end deftypefn
> -
> +@c AUTOMATICALLY GENERATED, DO NOT MODIFY
> +
> +@section Section
> +
> +@subsection Subsection
> +
> +@strong{strong} @emph{with emphasis}
> +@code{var} @{in braces@}
> +@itemize @bullet
> +@item
> +List item one
> +@item
> +Two, multiple
> +lines
> +
> +@item
> +Three
> +Still in list
> +
> +@end itemize
> +
> +Not in list
> +@itemize @minus
> +@item
> +Second list
> +Note: still in list
> +
> +@end itemize
> +
> +Note: not in list
> +@enumerate
> +@item
> +Third list
> +is numbered
> +
> +@item
> +another item
> +
> +@example
> +example
> +@end example
> +
> +@example
> +multiple lines
> +@end example
> +
> +
> +@end enumerate
> +
> +Returns: the King
> +Since: the first age
> +Notes:
> +
> +@enumerate
> +@item
> +Lorem ipsum dolor sit amet
> +
> +@item
> +Ut enim ad minim veniam
> +
> +@end enumerate
> +
> +Duis aute irure dolor
> +
> +Example:
> +
> +-> in
> +<- out
> +Examples:
> +@itemize @minus
> +@item
> +@strong{verbatim}
> +@item
> +@{braces@}
> +@end itemize
> +
> +
> +
> +@deftp {Enum} Enum
> +
> +
> +
> +@b{Values:}
> +@table @asis
> +@item @code{one}
> +The @emph{one} @{and only@}
> +@*@b{If:} @code{defined(IFONE)}
> +@item @code{two}
> +Not documented
> +@end table
> +
> +@b{Features:}
> +@table @asis
> +@item @code{enum-feat}
> +Also @emph{one} @{and only@}
> +@end table
> +@code{two} is undocumented
> +
> +@b{If:} @code{defined(IFCOND)}
> +@end deftp
> +
> +
> +
> +@deftp {Object} Base
> +
> +
> +
> +@b{Members:}
> +@table @asis
> +@item @code{base1: Enum}
> +the first member
> +@end table
> +
> +@end deftp
> +
> +
> +
> +@deftp {Object} Variant1
> +
> +A paragraph
> +
> +Another paragraph (but no @code{var}: line)
> +
> +@b{Members:}
> +@table @asis
> +@item @code{var1: string}
> +Not documented
> +@*@b{If:} @code{defined(IFSTR)}
> +@end table
> +
> +@b{Features:}
> +@table @asis
> +@item @code{variant1-feat}
> +a feature
> +@item @code{member-feat}
> +a member feature
> +@end table
> +
> +@end deftp
> +
> +
> +
> +@deftp {Object} Variant2
> +
> +
> +
> +@end deftp
> +
> +
> +
> +@deftp {Object} Object
> +
> +
> +
> +@b{Members:}
> +@table @asis
> +@item The members of @code{Base}
> +@item The members of @code{Variant1} when @code{base1} is @t{"one"}
> +@item The members of @code{Variant2} when @code{base1} is @t{"two"}
> (@b{If:} @code{IFTWO})
> +@end table
> +
> +@b{Features:}
> +@table @asis
> +@item @code{union-feat1}
> +a feature
> +@end table
> +
> +@end deftp
> +
> +
> +
> +@deftp {Object} SugaredUnion
> +
> +
> +
> +@b{Members:}
> +@table @asis
> +@item @code{type}
> +One of @t{"one"}, @t{"two"}
> +@item @code{data: Variant1} when @code{type} is @t{"one"}
> +@item @code{data: Variant2} when @code{type} is @t{"two"} (@b{If:}
> @code{IFTWO})
> +@end table
> +
> +@b{Features:}
> +@table @asis
> +@item @code{union-feat2}
> +a feature
> +@end table
> +
> +@end deftp
> +
> +
> +
> +@deftp {Alternate} Alternate
> +
> +
> +
> +@b{Members:}
> +@table @asis
> +@item @code{i: int}
> +an integer
> +@code{b} is undocumented
> +@item @code{b: boolean}
> +Not documented
> +@end table
> +
> +@b{Features:}
> +@table @asis
> +@item @code{alt-feat}
> +a feature
> +@end table
> +
> +@end deftp
> +
> +
> +@subsection Another subsection
> +
> +
> +@deftypefn Command {} cmd
> +
> +
> +
> +@b{Arguments:}
> +@table @asis
> +@item @code{arg1: int}
> +the first argument
> +@item @code{arg2: string} (optional)
> +the second
> +argument
> +@item @code{arg3: boolean}
> +Not documented
> +@end table
> +
> +@b{Features:}
> +@table @asis
> +@item @code{cmd-feat1}
> +a feature
> +@item @code{cmd-feat2}
> +another feature
> +@end table
> +
> +@b{Note:}
> +@code{arg3} is undocumented
> +
> +@b{Returns:}
> +@code{Object}
> +
> +@b{TODO:}
> +frobnicate
> +
> +@b{Notes:}
> +@itemize @minus
> +@item
> +Lorem ipsum dolor sit amet
> +@item
> +Ut enim ad minim veniam
> +
> +@end itemize
> +
> +Duis aute irure dolor
> +
> +@b{Example:}
> +@example
> +-> in
> +<- out
> +@end example
> +
> +@b{Examples:}
> +@example
> +- *verbatim*
> +- @{braces@}
> +@end example
> +
> +@b{Since:}
> +2.10
> +
> +@end deftypefn
> +
> +
> +
> +@deftypefn Command {} cmd-boxed
> +
> +If you're bored enough to read this, go see a video of boxed cats
> +
> +@b{Arguments:} the members of @code{Object}
> +
> +@b{Features:}
> +@table @asis
> +@item @code{cmd-feat1}
> +a feature
> +@item @code{cmd-feat2}
> +another feature
> +@end table
> +
> +@b{Example:}
> +@example
> +-> in
> +
> +<- out
> +@end example
> +
> +@end deftypefn
> +
> +
> +
> +@deftypefn Event {} EVT-BOXED
> +
> +
> +
> +@b{Arguments:} the members of @code{Object}
> +
> +@b{Features:}
> +@table @asis
> +@item @code{feat3}
> +a feature
> +@end table
> +
> +@end deftypefn
> +
> make: *** [Makefile.mtest:85: check-qapi-doc] Error 1
> make: *** Waiting for unfinished jobs....
> Running test QAPI doc
> ---
> C:/Users/ContainerAdministrator/AppData/Local/Temp/qemu-build/../cirrus-ci-build/tests/qapi-schema/doc-good.texi
>   2020-09-02 10:26:02.396028200 -0700
> +++
> C:/Users/ContainerAdministrator/AppData/Local/Temp/qemu-build/tests/qapi-schema/doc-good-qapi-doc.texi
>     2020-09-02 10:43:09.849568200 -0700
> @@ -1,319 +1,319 @@
> -@c AUTOMATICALLY GENERATED, DO NOT MODIFY
> -
> -@section Section
> -
> -@subsection Subsection
> -
> -@strong{strong} @emph{with emphasis}
> -@code{var} @{in braces@}
> -@itemize @bullet
> -@item
> -List item one
> -@item
> -Two, multiple
> -lines
> -
> -@item
> -Three
> -Still in list
> -
> -@end itemize
> -
> -Not in list
> -@itemize @minus
> -@item
> -Second list
> -Note: still in list
> -
> -@end itemize
> -
> -Note: not in list
> -@enumerate
> -@item
> -Third list
> -is numbered
> -
> -@item
> -another item
> -
> -@example
> -example
> -@end example
> -
> -@example
> -multiple lines
> -@end example
> -
> -
> -@end enumerate
> -
> -Returns: the King
> -Since: the first age
> -Notes:
> -
> -@enumerate
> -@item
> -Lorem ipsum dolor sit amet
> -
> -@item
> -Ut enim ad minim veniam
> -
> -@end enumerate
> -
> -Duis aute irure dolor
> -
> -Example:
> -
> --> in
> -<- out
> -Examples:
> -@itemize @minus
> -@item
> -@strong{verbatim}
> -@item
> -@{braces@}
> -@end itemize
> -
> -
> -
> -@deftp {Enum} Enum
> -
> -
> -
> -@b{Values:}
> -@table @asis
> -@item @code{one}
> -The @emph{one} @{and only@}
> -@*@b{If:} @code{defined(IFONE)}
> -@item @code{two}
> -Not documented
> -@end table
> -
> -@b{Features:}
> -@table @asis
> -@item @code{enum-feat}
> -Also @emph{one} @{and only@}
> -@end table
> -@code{two} is undocumented
> -
> -@b{If:} @code{defined(IFCOND)}
> -@end deftp
> -
> -
> -
> -@deftp {Object} Base
> -
> -
> -
> -@b{Members:}
> -@table @asis
> -@item @code{base1: Enum}
> -the first member
> -@end table
> -
> -@end deftp
> -
> -
> -
> -@deftp {Object} Variant1
> -
> -A paragraph
> -
> -Another paragraph (but no @code{var}: line)
> -
> -@b{Members:}
> -@table @asis
> -@item @code{var1: string}
> -Not documented
> -@*@b{If:} @code{defined(IFSTR)}
> -@end table
> -
> -@b{Features:}
> -@table @asis
> -@item @code{variant1-feat}
> -a feature
> -@item @code{member-feat}
> -a member feature
> -@end table
> -
> -@end deftp
> -
> -
> -
> -@deftp {Object} Variant2
> -
> -
> -
> -@end deftp
> -
> -
> -
> -@deftp {Object} Object
> -
> -
> -
> -@b{Members:}
> -@table @asis
> -@item The members of @code{Base}
> -@item The members of @code{Variant1} when @code{base1} is @t{"one"}
> -@item The members of @code{Variant2} when @code{base1} is @t{"two"}
> (@b{If:} @code{IFTWO})
> -@end table
> -
> -@b{Features:}
> -@table @asis
> -@item @code{union-feat1}
> -a feature
> -@end table
> -
> -@end deftp
> -
> -
> -
> -@deftp {Object} SugaredUnion
> -
> -
> -
> -@b{Members:}
> -@table @asis
> -@item @code{type}
> -One of @t{"one"}, @t{"two"}
> -@item @code{data: Variant1} when @code{type} is @t{"one"}
> -@item @code{data: Variant2} when @code{type} is @t{"two"} (@b{If:}
> @code{IFTWO})
> -@end table
> -
> -@b{Features:}
> -@table @asis
> -@item @code{union-feat2}
> -a feature
> -@end table
> -
> -@end deftp
> -
> -
> -
> -@deftp {Alternate} Alternate
> -
> -
> -
> -@b{Members:}
> -@table @asis
> -@item @code{i: int}
> -an integer
> -@code{b} is undocumented
> -@item @code{b: boolean}
> -Not documented
> -@end table
> -
> -@b{Features:}
> -@table @asis
> -@item @code{alt-feat}
> -a feature
> -@end table
> -
> -@end deftp
> -
> -
> -@subsection Another subsection
> -
> -
> -@deftypefn Command {} cmd
> -
> -
> -
> -@b{Arguments:}
> -@table @asis
> -@item @code{arg1: int}
> -the first argument
> -@item @code{arg2: string} (optional)
> -the second
> -argument
> -@item @code{arg3: boolean}
> -Not documented
> -@end table
> -
> -@b{Features:}
> -@table @asis
> -@item @code{cmd-feat1}
> -a feature
> -@item @code{cmd-feat2}
> -another feature
> -@end table
> -
> -@b{Note:}
> -@code{arg3} is undocumented
> -
> -@b{Returns:}
> -@code{Object}
> -
> -@b{TODO:}
> -frobnicate
> -
> -@b{Notes:}
> -@itemize @minus
> -@item
> -Lorem ipsum dolor sit amet
> -@item
> -Ut enim ad minim veniam
> -
> -@end itemize
> -
> -Duis aute irure dolor
> -
> -@b{Example:}
> -@example
> --> in
> -<- out
> -@end example
> -
> -@b{Examples:}
> -@example
> -- *verbatim*
> -- @{braces@}
> -@end example
> -
> -@b{Since:}
> -2.10
> -
> -@end deftypefn
> -
> -
> -
> -@deftypefn Command {} cmd-boxed
> -
> -If you're bored enough to read this, go see a video of boxed cats
> -
> -@b{Arguments:} the members of @code{Object}
> -
> -@b{Features:}
> -@table @asis
> -@item @code{cmd-feat1}
> -a feature
> -@item @code{cmd-feat2}
> -another feature
> -@end table
> -
> -@b{Example:}
> -@example
> --> in
> -
> -<- out
> -@end example
> -
> -@end deftypefn
> -
> -
> -
> -@deftypefn Event {} EVT-BOXED
> -
> -
> -
> -@b{Arguments:} the members of @code{Object}
> -
> -@b{Features:}
> -@table @asis
> -@item @code{feat3}
> -a feature
> -@end table
> -
> -@end deftypefn
> -
> +@c AUTOMATICALLY GENERATED, DO NOT MODIFY
> +
> +@section Section
> +
> +@subsection Subsection
> +
> +@strong{strong} @emph{with emphasis}
> +@code{var} @{in braces@}
> +@itemize @bullet
> +@item
> +List item one
> +@item
> +Two, multiple
> +lines
> +
> +@item
> +Three
> +Still in list
> +
> +@end itemize
> +
> +Not in list
> +@itemize @minus
> +@item
> +Second list
> +Note: still in list
> +
> +@end itemize
> +
> +Note: not in list
> +@enumerate
> +@item
> +Third list
> +is numbered
> +
> +@item
> +another item
> +
> +@example
> +example
> +@end example
> +
> +@example
> +multiple lines
> +@end example
> +
> +
> +@end enumerate
> +
> +Returns: the King
> +Since: the first age
> +Notes:
> +
> +@enumerate
> +@item
> +Lorem ipsum dolor sit amet
> +
> +@item
> +Ut enim ad minim veniam
> +
> +@end enumerate
> +
> +Duis aute irure dolor
> +
> +Example:
> +
> +-> in
> +<- out
> +Examples:
> +@itemize @minus
> +@item
> +@strong{verbatim}
> +@item
> +@{braces@}
> +@end itemize
> +
> +
> +
> +@deftp {Enum} Enum
> +
> +
> +
> +@b{Values:}
> +@table @asis
> +@item @code{one}
> +The @emph{one} @{and only@}
> +@*@b{If:} @code{defined(IFONE)}
> +@item @code{two}
> +Not documented
> +@end table
> +
> +@b{Features:}
> +@table @asis
> +@item @code{enum-feat}
> +Also @emph{one} @{and only@}
> +@end table
> +@code{two} is undocumented
> +
> +@b{If:} @code{defined(IFCOND)}
> +@end deftp
> +
> +
> +
> +@deftp {Object} Base
> +
> +
> +
> +@b{Members:}
> +@table @asis
> +@item @code{base1: Enum}
> +the first member
> +@end table
> +
> +@end deftp
> +
> +
> +
> +@deftp {Object} Variant1
> +
> +A paragraph
> +
> +Another paragraph (but no @code{var}: line)
> +
> +@b{Members:}
> +@table @asis
> +@item @code{var1: string}
> +Not documented
> +@*@b{If:} @code{defined(IFSTR)}
> +@end table
> +
> +@b{Features:}
> +@table @asis
> +@item @code{variant1-feat}
> +a feature
> +@item @code{member-feat}
> +a member feature
> +@end table
> +
> +@end deftp
> +
> +
> +
> +@deftp {Object} Variant2
> +
> +
> +
> +@end deftp
> +
> +
> +
> +@deftp {Object} Object
> +
> +
> +
> +@b{Members:}
> +@table @asis
> +@item The members of @code{Base}
> +@item The members of @code{Variant1} when @code{base1} is @t{"one"}
> +@item The members of @code{Variant2} when @code{base1} is @t{"two"}
> (@b{If:} @code{IFTWO})
> +@end table
> +
> +@b{Features:}
> +@table @asis
> +@item @code{union-feat1}
> +a feature
> +@end table
> +
> +@end deftp
> +
> +
> +
> +@deftp {Object} SugaredUnion
> +
> +
> +
> +@b{Members:}
> +@table @asis
> +@item @code{type}
> +One of @t{"one"}, @t{"two"}
> +@item @code{data: Variant1} when @code{type} is @t{"one"}
> +@item @code{data: Variant2} when @code{type} is @t{"two"} (@b{If:}
> @code{IFTWO})
> +@end table
> +
> +@b{Features:}
> +@table @asis
> +@item @code{union-feat2}
> +a feature
> +@end table
> +
> +@end deftp
> +
> +
> +
> +@deftp {Alternate} Alternate
> +
> +
> +
> +@b{Members:}
> +@table @asis
> +@item @code{i: int}
> +an integer
> +@code{b} is undocumented
> +@item @code{b: boolean}
> +Not documented
> +@end table
> +
> +@b{Features:}
> +@table @asis
> +@item @code{alt-feat}
> +a feature
> +@end table
> +
> +@end deftp
> +
> +
> +@subsection Another subsection
> +
> +
> +@deftypefn Command {} cmd
> +
> +
> +
> +@b{Arguments:}
> +@table @asis
> +@item @code{arg1: int}
> +the first argument
> +@item @code{arg2: string} (optional)
> +the second
> +argument
> +@item @code{arg3: boolean}
> +Not documented
> +@end table
> +
> +@b{Features:}
> +@table @asis
> +@item @code{cmd-feat1}
> +a feature
> +@item @code{cmd-feat2}
> +another feature
> +@end table
> +
> +@b{Note:}
> +@code{arg3} is undocumented
> +
> +@b{Returns:}
> +@code{Object}
> +
> +@b{TODO:}
> +frobnicate
> +
> +@b{Notes:}
> +@itemize @minus
> +@item
> +Lorem ipsum dolor sit amet
> +@item
> +Ut enim ad minim veniam
> +
> +@end itemize
> +
> +Duis aute irure dolor
> +
> +@b{Example:}
> +@example
> +-> in
> +<- out
> +@end example
> +
> +@b{Examples:}
> +@example
> +- *verbatim*
> +- @{braces@}
> +@end example
> +
> +@b{Since:}
> +2.10
> +
> +@end deftypefn
> +
> +
> +
> +@deftypefn Command {} cmd-boxed
> +
> +If you're bored enough to read this, go see a video of boxed cats
> +
> +@b{Arguments:} the members of @code{Object}
> +
> +@b{Features:}
> +@table @asis
> +@item @code{cmd-feat1}
> +a feature
> +@item @code{cmd-feat2}
> +another feature
> +@end table
> +
> +@b{Example:}
> +@example
> +-> in
> +
> +<- out
> +@end example
> +
> +@end deftypefn
> +
> +
> +
> +@deftypefn Event {} EVT-BOXED
> +
> +
> +
> +@b{Arguments:} the members of @code{Object}
> +
> +@b{Features:}
> +@table @asis
> +@item @code{feat3}
> +a feature
> +@end table
> +
> +@end deftypefn
> +
> make: *** [Makefile.mtest:63: check-qapi-schema] Error 1
>
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> ---
>  tests/qapi-schema/meson.build | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/qapi-schema/meson.build b/tests/qapi-schema/meson.build
> index c87d141417..f1449298b0 100644
> --- a/tests/qapi-schema/meson.build
> +++ b/tests/qapi-schema/meson.build
> @@ -220,6 +220,6 @@ qapi_doc = custom_target('QAPI doc',
>
>  # "full_path()" needed here to work around
>  # https://github.com/mesonbuild/meson/issues/7585
> -test('QAPI doc', diff, args: ['-u', files('doc-good.texi'),
> qapi_doc[0].full_path()],
> +test('QAPI doc', diff, args: ['-b', '-u', files('doc-good.texi'),
> qapi_doc[0].full_path()],
>       depends: qapi_doc,
>       suite: ['qapi-schema', 'qapi-doc'])
> --
> 2.28.0.windows.1
>
>
Eric Blake Sept. 8, 2020, 12:42 p.m. UTC | #2
On 9/7/20 12:48 PM, Yonggang Luo wrote:
> Or the tests result would cause following test failure:
> Running test QAPI doc
>    LINK    tests/check-qdict.exe
> --- C:/Users/ContainerAdministrator/AppData/Local/Temp/qemu-build/../cirrus-ci-build/tests/qapi-schema/doc-good.texi	2020-09-02 10:26:02.396028200 -0700
> +++ C:/Users/ContainerAdministrator/AppData/Local/Temp/qemu-build/tests/qapi-schema/doc-good-qapi-doc.texi	2020-09-02 10:43:09.849568200 -0700
> @@ -1,319 +1,319 @@
> -@c AUTOMATICALLY GENERATED, DO NOT MODIFY
> -

> -
> +@c AUTOMATICALLY GENERATED, DO NOT MODIFY

> +@end deftypefn
> +
> make: *** [Makefile.mtest:85: check-qapi-doc] Error 1
> make: *** Waiting for unfinished jobs....

> 
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> ---
>   tests/qapi-schema/meson.build | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)

Commit message is tooooo long compared to the body of the patch.  I'd 
suggest:

meson: Use -b to ignore CR vs. CR-LF issues on Windows

On windows, a difference in line endings causes testsuite failures 
complaining that every single line in files such as 
'tests/qapi-schemadoc-good.texi' is wrong.  Fix it by adding -b to diff.

> 
> diff --git a/tests/qapi-schema/meson.build b/tests/qapi-schema/meson.build
> index c87d141417..f1449298b0 100644
> --- a/tests/qapi-schema/meson.build
> +++ b/tests/qapi-schema/meson.build
> @@ -220,6 +220,6 @@ qapi_doc = custom_target('QAPI doc',
>   
>   # "full_path()" needed here to work around
>   # https://github.com/mesonbuild/meson/issues/7585
> -test('QAPI doc', diff, args: ['-u', files('doc-good.texi'), qapi_doc[0].full_path()],
> +test('QAPI doc', diff, args: ['-b', '-u', files('doc-good.texi'), qapi_doc[0].full_path()],

The change itself is sensible, once the commit message is fixed, so for 
v3, you can add:

Reviewed-by: Eric Blake <eblake@redhat.com>

>        depends: qapi_doc,
>        suite: ['qapi-schema', 'qapi-doc'])
>
diff mbox series

Patch

--- C:/Users/ContainerAdministrator/AppData/Local/Temp/qemu-build/../cirrus-ci-build/tests/qapi-schema/doc-good.texi	2020-09-02 10:26:02.396028200 -0700
+++ C:/Users/ContainerAdministrator/AppData/Local/Temp/qemu-build/tests/qapi-schema/doc-good-qapi-doc.texi	2020-09-02 10:43:09.849568200 -0700
@@ -1,319 +1,319 @@ 
-@c AUTOMATICALLY GENERATED, DO NOT MODIFY
-
-@section Section
-
-@subsection Subsection
-
-@strong{strong} @emph{with emphasis}
-@code{var} @{in braces@}
-@itemize @bullet
-@item
-List item one
-@item
-Two, multiple
-lines
-
-@item
-Three
-Still in list
-
-@end itemize
-
-Not in list
-@itemize @minus
-@item
-Second list
-Note: still in list
-
-@end itemize
-
-Note: not in list
-@enumerate
-@item
-Third list
-is numbered
-
-@item
-another item
-
-@example
-example
-@end example
-
-@example
-multiple lines
-@end example
-
-
-@end enumerate
-
-Returns: the King
-Since: the first age
-Notes:
-
-@enumerate
-@item
-Lorem ipsum dolor sit amet
-
-@item
-Ut enim ad minim veniam
-
-@end enumerate
-
-Duis aute irure dolor
-
-Example:
-
--> in
-<- out
-Examples:
-@itemize @minus
-@item
-@strong{verbatim}
-@item
-@{braces@}
-@end itemize
-
-
-
-@deftp {Enum} Enum
-
-
-
-@b{Values:}
-@table @asis
-@item @code{one}
-The @emph{one} @{and only@}
-@*@b{If:} @code{defined(IFONE)}
-@item @code{two}
-Not documented
-@end table
-
-@b{Features:}
-@table @asis
-@item @code{enum-feat}
-Also @emph{one} @{and only@}
-@end table
-@code{two} is undocumented
-
-@b{If:} @code{defined(IFCOND)}
-@end deftp
-
-
-
-@deftp {Object} Base
-
-
-
-@b{Members:}
-@table @asis
-@item @code{base1: Enum}
-the first member
-@end table
-
-@end deftp
-
-
-
-@deftp {Object} Variant1
-
-A paragraph
-
-Another paragraph (but no @code{var}: line)
-
-@b{Members:}
-@table @asis
-@item @code{var1: string}
-Not documented
-@*@b{If:} @code{defined(IFSTR)}
-@end table
-
-@b{Features:}
-@table @asis
-@item @code{variant1-feat}
-a feature
-@item @code{member-feat}
-a member feature
-@end table
-
-@end deftp
-
-
-
-@deftp {Object} Variant2
-
-
-
-@end deftp
-
-
-
-@deftp {Object} Object
-
-
-
-@b{Members:}
-@table @asis
-@item The members of @code{Base}
-@item The members of @code{Variant1} when @code{base1} is @t{"one"}
-@item The members of @code{Variant2} when @code{base1} is @t{"two"} (@b{If:} @code{IFTWO})
-@end table
-
-@b{Features:}
-@table @asis
-@item @code{union-feat1}
-a feature
-@end table
-
-@end deftp
-
-
-
-@deftp {Object} SugaredUnion
-
-
-
-@b{Members:}
-@table @asis
-@item @code{type}
-One of @t{"one"}, @t{"two"}
-@item @code{data: Variant1} when @code{type} is @t{"one"}
-@item @code{data: Variant2} when @code{type} is @t{"two"} (@b{If:} @code{IFTWO})
-@end table
-
-@b{Features:}
-@table @asis
-@item @code{union-feat2}
-a feature
-@end table
-
-@end deftp
-
-
-
-@deftp {Alternate} Alternate
-
-
-
-@b{Members:}
-@table @asis
-@item @code{i: int}
-an integer
-@code{b} is undocumented
-@item @code{b: boolean}
-Not documented
-@end table
-
-@b{Features:}
-@table @asis
-@item @code{alt-feat}
-a feature
-@end table
-
-@end deftp
-
-
-@subsection Another subsection
-
-
-@deftypefn Command {} cmd
-
-
-
-@b{Arguments:}
-@table @asis
-@item @code{arg1: int}
-the first argument
-@item @code{arg2: string} (optional)
-the second
-argument
-@item @code{arg3: boolean}
-Not documented
-@end table
-
-@b{Features:}
-@table @asis
-@item @code{cmd-feat1}
-a feature
-@item @code{cmd-feat2}
-another feature
-@end table
-
-@b{Note:}
-@code{arg3} is undocumented
-
-@b{Returns:}
-@code{Object}
-
-@b{TODO:}
-frobnicate
-
-@b{Notes:}
-@itemize @minus
-@item
-Lorem ipsum dolor sit amet
-@item
-Ut enim ad minim veniam
-
-@end itemize
-
-Duis aute irure dolor
-
-@b{Example:}
-@example
--> in
-<- out
-@end example
-
-@b{Examples:}
-@example
-- *verbatim*
-- @{braces@}
-@end example
-
-@b{Since:}
-2.10
-
-@end deftypefn
-
-
-
-@deftypefn Command {} cmd-boxed
-
-If you're bored enough to read this, go see a video of boxed cats
-
-@b{Arguments:} the members of @code{Object}
-
-@b{Features:}
-@table @asis
-@item @code{cmd-feat1}
-a feature
-@item @code{cmd-feat2}
-another feature
-@end table
-
-@b{Example:}
-@example
--> in
-
-<- out
-@end example
-
-@end deftypefn
-
-
-
-@deftypefn Event {} EVT-BOXED
-
-
-
-@b{Arguments:} the members of @code{Object}
-
-@b{Features:}
-@table @asis
-@item @code{feat3}
-a feature
-@end table
-
-@end deftypefn
-
+@c AUTOMATICALLY GENERATED, DO NOT MODIFY
+
+@section Section
+
+@subsection Subsection
+
+@strong{strong} @emph{with emphasis}
+@code{var} @{in braces@}
+@itemize @bullet
+@item
+List item one
+@item
+Two, multiple
+lines
+
+@item
+Three
+Still in list
+
+@end itemize
+
+Not in list
+@itemize @minus
+@item
+Second list
+Note: still in list
+
+@end itemize
+
+Note: not in list
+@enumerate
+@item
+Third list
+is numbered
+
+@item
+another item
+
+@example
+example
+@end example
+
+@example
+multiple lines
+@end example
+
+
+@end enumerate
+
+Returns: the King
+Since: the first age
+Notes:
+
+@enumerate
+@item
+Lorem ipsum dolor sit amet
+
+@item
+Ut enim ad minim veniam
+
+@end enumerate
+
+Duis aute irure dolor
+
+Example:
+
+-> in
+<- out
+Examples:
+@itemize @minus
+@item
+@strong{verbatim}
+@item
+@{braces@}
+@end itemize
+
+
+
+@deftp {Enum} Enum
+
+
+
+@b{Values:}
+@table @asis
+@item @code{one}
+The @emph{one} @{and only@}
+@*@b{If:} @code{defined(IFONE)}
+@item @code{two}
+Not documented
+@end table
+
+@b{Features:}
+@table @asis
+@item @code{enum-feat}
+Also @emph{one} @{and only@}
+@end table
+@code{two} is undocumented
+
+@b{If:} @code{defined(IFCOND)}
+@end deftp
+
+
+
+@deftp {Object} Base
+
+
+
+@b{Members:}
+@table @asis
+@item @code{base1: Enum}
+the first member
+@end table
+
+@end deftp
+
+
+
+@deftp {Object} Variant1
+
+A paragraph
+
+Another paragraph (but no @code{var}: line)
+
+@b{Members:}
+@table @asis
+@item @code{var1: string}
+Not documented
+@*@b{If:} @code{defined(IFSTR)}
+@end table
+
+@b{Features:}
+@table @asis
+@item @code{variant1-feat}
+a feature
+@item @code{member-feat}
+a member feature
+@end table
+
+@end deftp
+
+
+
+@deftp {Object} Variant2
+
+
+
+@end deftp
+
+
+
+@deftp {Object} Object
+
+
+
+@b{Members:}
+@table @asis
+@item The members of @code{Base}
+@item The members of @code{Variant1} when @code{base1} is @t{"one"}
+@item The members of @code{Variant2} when @code{base1} is @t{"two"} (@b{If:} @code{IFTWO})
+@end table
+
+@b{Features:}
+@table @asis
+@item @code{union-feat1}
+a feature
+@end table
+
+@end deftp
+
+
+
+@deftp {Object} SugaredUnion
+
+
+
+@b{Members:}
+@table @asis
+@item @code{type}
+One of @t{"one"}, @t{"two"}
+@item @code{data: Variant1} when @code{type} is @t{"one"}
+@item @code{data: Variant2} when @code{type} is @t{"two"} (@b{If:} @code{IFTWO})
+@end table
+
+@b{Features:}
+@table @asis
+@item @code{union-feat2}
+a feature
+@end table
+
+@end deftp
+
+
+
+@deftp {Alternate} Alternate
+
+
+
+@b{Members:}
+@table @asis
+@item @code{i: int}
+an integer
+@code{b} is undocumented
+@item @code{b: boolean}
+Not documented
+@end table
+
+@b{Features:}
+@table @asis
+@item @code{alt-feat}
+a feature
+@end table
+
+@end deftp
+
+
+@subsection Another subsection
+
+
+@deftypefn Command {} cmd
+
+
+
+@b{Arguments:}
+@table @asis
+@item @code{arg1: int}
+the first argument
+@item @code{arg2: string} (optional)
+the second
+argument
+@item @code{arg3: boolean}
+Not documented
+@end table
+
+@b{Features:}
+@table @asis
+@item @code{cmd-feat1}
+a feature
+@item @code{cmd-feat2}
+another feature
+@end table
+
+@b{Note:}
+@code{arg3} is undocumented
+
+@b{Returns:}
+@code{Object}
+
+@b{TODO:}
+frobnicate
+
+@b{Notes:}
+@itemize @minus
+@item
+Lorem ipsum dolor sit amet
+@item
+Ut enim ad minim veniam
+
+@end itemize
+
+Duis aute irure dolor
+
+@b{Example:}
+@example
+-> in
+<- out
+@end example
+
+@b{Examples:}
+@example
+- *verbatim*
+- @{braces@}
+@end example
+
+@b{Since:}
+2.10
+
+@end deftypefn
+
+
+
+@deftypefn Command {} cmd-boxed
+
+If you're bored enough to read this, go see a video of boxed cats
+
+@b{Arguments:} the members of @code{Object}
+
+@b{Features:}
+@table @asis
+@item @code{cmd-feat1}
+a feature
+@item @code{cmd-feat2}
+another feature
+@end table
+
+@b{Example:}
+@example
+-> in
+
+<- out
+@end example
+
+@end deftypefn
+
+
+
+@deftypefn Event {} EVT-BOXED
+
+
+
+@b{Arguments:} the members of @code{Object}
+
+@b{Features:}
+@table @asis
+@item @code{feat3}
+a feature
+@end table
+
+@end deftypefn
+
make: *** [Makefile.mtest:85: check-qapi-doc] Error 1
make: *** Waiting for unfinished jobs....
Running test QAPI doc
--- C:/Users/ContainerAdministrator/AppData/Local/Temp/qemu-build/../cirrus-ci-build/tests/qapi-schema/doc-good.texi	2020-09-02 10:26:02.396028200 -0700
+++ C:/Users/ContainerAdministrator/AppData/Local/Temp/qemu-build/tests/qapi-schema/doc-good-qapi-doc.texi	2020-09-02 10:43:09.849568200 -0700
@@ -1,319 +1,319 @@ 
-@c AUTOMATICALLY GENERATED, DO NOT MODIFY
-
-@section Section
-
-@subsection Subsection
-
-@strong{strong} @emph{with emphasis}
-@code{var} @{in braces@}
-@itemize @bullet
-@item
-List item one
-@item
-Two, multiple
-lines
-
-@item
-Three
-Still in list
-
-@end itemize
-
-Not in list
-@itemize @minus
-@item
-Second list
-Note: still in list
-
-@end itemize
-
-Note: not in list
-@enumerate
-@item
-Third list
-is numbered
-
-@item
-another item
-
-@example
-example
-@end example
-
-@example
-multiple lines
-@end example
-
-
-@end enumerate
-
-Returns: the King
-Since: the first age
-Notes:
-
-@enumerate
-@item
-Lorem ipsum dolor sit amet
-
-@item
-Ut enim ad minim veniam
-
-@end enumerate
-
-Duis aute irure dolor
-
-Example:
-
--> in
-<- out
-Examples:
-@itemize @minus
-@item
-@strong{verbatim}
-@item
-@{braces@}
-@end itemize
-
-
-
-@deftp {Enum} Enum
-
-
-
-@b{Values:}
-@table @asis
-@item @code{one}
-The @emph{one} @{and only@}
-@*@b{If:} @code{defined(IFONE)}
-@item @code{two}
-Not documented
-@end table
-
-@b{Features:}
-@table @asis
-@item @code{enum-feat}
-Also @emph{one} @{and only@}
-@end table
-@code{two} is undocumented
-
-@b{If:} @code{defined(IFCOND)}
-@end deftp
-
-
-
-@deftp {Object} Base
-
-
-
-@b{Members:}
-@table @asis
-@item @code{base1: Enum}
-the first member
-@end table
-
-@end deftp
-
-
-
-@deftp {Object} Variant1
-
-A paragraph
-
-Another paragraph (but no @code{var}: line)
-
-@b{Members:}
-@table @asis
-@item @code{var1: string}
-Not documented
-@*@b{If:} @code{defined(IFSTR)}
-@end table
-
-@b{Features:}
-@table @asis
-@item @code{variant1-feat}
-a feature
-@item @code{member-feat}
-a member feature
-@end table
-
-@end deftp
-
-
-
-@deftp {Object} Variant2
-
-
-
-@end deftp
-
-
-
-@deftp {Object} Object
-
-
-
-@b{Members:}
-@table @asis
-@item The members of @code{Base}
-@item The members of @code{Variant1} when @code{base1} is @t{"one"}
-@item The members of @code{Variant2} when @code{base1} is @t{"two"} (@b{If:} @code{IFTWO})
-@end table
-
-@b{Features:}
-@table @asis
-@item @code{union-feat1}
-a feature
-@end table
-
-@end deftp
-
-
-
-@deftp {Object} SugaredUnion
-
-
-
-@b{Members:}
-@table @asis
-@item @code{type}
-One of @t{"one"}, @t{"two"}
-@item @code{data: Variant1} when @code{type} is @t{"one"}
-@item @code{data: Variant2} when @code{type} is @t{"two"} (@b{If:} @code{IFTWO})
-@end table
-
-@b{Features:}
-@table @asis
-@item @code{union-feat2}
-a feature
-@end table
-
-@end deftp
-
-
-
-@deftp {Alternate} Alternate
-
-
-
-@b{Members:}
-@table @asis
-@item @code{i: int}
-an integer
-@code{b} is undocumented
-@item @code{b: boolean}
-Not documented
-@end table
-
-@b{Features:}
-@table @asis
-@item @code{alt-feat}
-a feature
-@end table
-
-@end deftp
-
-
-@subsection Another subsection
-
-
-@deftypefn Command {} cmd
-
-
-
-@b{Arguments:}
-@table @asis
-@item @code{arg1: int}
-the first argument
-@item @code{arg2: string} (optional)
-the second
-argument
-@item @code{arg3: boolean}
-Not documented
-@end table
-
-@b{Features:}
-@table @asis
-@item @code{cmd-feat1}
-a feature
-@item @code{cmd-feat2}
-another feature
-@end table
-
-@b{Note:}
-@code{arg3} is undocumented
-
-@b{Returns:}
-@code{Object}
-
-@b{TODO:}
-frobnicate
-
-@b{Notes:}
-@itemize @minus
-@item
-Lorem ipsum dolor sit amet
-@item
-Ut enim ad minim veniam
-
-@end itemize
-
-Duis aute irure dolor
-
-@b{Example:}
-@example
--> in
-<- out
-@end example
-
-@b{Examples:}
-@example
-- *verbatim*
-- @{braces@}
-@end example
-
-@b{Since:}
-2.10
-
-@end deftypefn
-
-
-
-@deftypefn Command {} cmd-boxed
-
-If you're bored enough to read this, go see a video of boxed cats
-
-@b{Arguments:} the members of @code{Object}
-
-@b{Features:}
-@table @asis
-@item @code{cmd-feat1}
-a feature
-@item @code{cmd-feat2}
-another feature
-@end table
-
-@b{Example:}
-@example
--> in
-
-<- out
-@end example
-
-@end deftypefn
-
-
-
-@deftypefn Event {} EVT-BOXED
-
-
-
-@b{Arguments:} the members of @code{Object}
-
-@b{Features:}
-@table @asis
-@item @code{feat3}
-a feature
-@end table
-
-@end deftypefn
-
+@c AUTOMATICALLY GENERATED, DO NOT MODIFY
+
+@section Section
+
+@subsection Subsection
+
+@strong{strong} @emph{with emphasis}
+@code{var} @{in braces@}
+@itemize @bullet
+@item
+List item one
+@item
+Two, multiple
+lines
+
+@item
+Three
+Still in list
+
+@end itemize
+
+Not in list
+@itemize @minus
+@item
+Second list
+Note: still in list
+
+@end itemize
+
+Note: not in list
+@enumerate
+@item
+Third list
+is numbered
+
+@item
+another item
+
+@example
+example
+@end example
+
+@example
+multiple lines
+@end example
+
+
+@end enumerate
+
+Returns: the King
+Since: the first age
+Notes:
+
+@enumerate
+@item
+Lorem ipsum dolor sit amet
+
+@item
+Ut enim ad minim veniam
+
+@end enumerate
+
+Duis aute irure dolor
+
+Example:
+
+-> in
+<- out
+Examples:
+@itemize @minus
+@item
+@strong{verbatim}
+@item
+@{braces@}
+@end itemize
+
+
+
+@deftp {Enum} Enum
+
+
+
+@b{Values:}
+@table @asis
+@item @code{one}
+The @emph{one} @{and only@}
+@*@b{If:} @code{defined(IFONE)}
+@item @code{two}
+Not documented
+@end table
+
+@b{Features:}
+@table @asis
+@item @code{enum-feat}
+Also @emph{one} @{and only@}
+@end table
+@code{two} is undocumented
+
+@b{If:} @code{defined(IFCOND)}
+@end deftp
+
+
+
+@deftp {Object} Base
+
+
+
+@b{Members:}
+@table @asis
+@item @code{base1: Enum}
+the first member
+@end table
+
+@end deftp
+
+
+
+@deftp {Object} Variant1
+
+A paragraph
+
+Another paragraph (but no @code{var}: line)
+
+@b{Members:}
+@table @asis
+@item @code{var1: string}
+Not documented
+@*@b{If:} @code{defined(IFSTR)}
+@end table
+
+@b{Features:}
+@table @asis
+@item @code{variant1-feat}
+a feature
+@item @code{member-feat}
+a member feature
+@end table
+
+@end deftp
+
+
+
+@deftp {Object} Variant2
+
+
+
+@end deftp
+
+
+
+@deftp {Object} Object
+
+
+
+@b{Members:}
+@table @asis
+@item The members of @code{Base}
+@item The members of @code{Variant1} when @code{base1} is @t{"one"}
+@item The members of @code{Variant2} when @code{base1} is @t{"two"} (@b{If:} @code{IFTWO})
+@end table
+
+@b{Features:}
+@table @asis
+@item @code{union-feat1}
+a feature
+@end table
+
+@end deftp
+
+
+
+@deftp {Object} SugaredUnion
+
+
+
+@b{Members:}
+@table @asis
+@item @code{type}
+One of @t{"one"}, @t{"two"}
+@item @code{data: Variant1} when @code{type} is @t{"one"}
+@item @code{data: Variant2} when @code{type} is @t{"two"} (@b{If:} @code{IFTWO})
+@end table
+
+@b{Features:}
+@table @asis
+@item @code{union-feat2}
+a feature
+@end table
+
+@end deftp
+
+
+
+@deftp {Alternate} Alternate
+
+
+
+@b{Members:}
+@table @asis
+@item @code{i: int}
+an integer
+@code{b} is undocumented
+@item @code{b: boolean}
+Not documented
+@end table
+
+@b{Features:}
+@table @asis
+@item @code{alt-feat}
+a feature
+@end table
+
+@end deftp
+
+
+@subsection Another subsection
+
+
+@deftypefn Command {} cmd
+
+
+
+@b{Arguments:}
+@table @asis
+@item @code{arg1: int}
+the first argument
+@item @code{arg2: string} (optional)
+the second
+argument
+@item @code{arg3: boolean}
+Not documented
+@end table
+
+@b{Features:}
+@table @asis
+@item @code{cmd-feat1}
+a feature
+@item @code{cmd-feat2}
+another feature
+@end table
+
+@b{Note:}
+@code{arg3} is undocumented
+
+@b{Returns:}
+@code{Object}
+
+@b{TODO:}
+frobnicate
+
+@b{Notes:}
+@itemize @minus
+@item
+Lorem ipsum dolor sit amet
+@item
+Ut enim ad minim veniam
+
+@end itemize
+
+Duis aute irure dolor
+
+@b{Example:}
+@example
+-> in
+<- out
+@end example
+
+@b{Examples:}
+@example
+- *verbatim*
+- @{braces@}
+@end example
+
+@b{Since:}
+2.10
+
+@end deftypefn
+
+
+
+@deftypefn Command {} cmd-boxed
+
+If you're bored enough to read this, go see a video of boxed cats
+
+@b{Arguments:} the members of @code{Object}
+
+@b{Features:}
+@table @asis
+@item @code{cmd-feat1}
+a feature
+@item @code{cmd-feat2}
+another feature
+@end table
+
+@b{Example:}
+@example
+-> in
+
+<- out
+@end example
+
+@end deftypefn
+
+
+
+@deftypefn Event {} EVT-BOXED
+
+
+
+@b{Arguments:} the members of @code{Object}
+
+@b{Features:}
+@table @asis
+@item @code{feat3}
+a feature
+@end table
+
+@end deftypefn
+
make: *** [Makefile.mtest:63: check-qapi-schema] Error 1

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 tests/qapi-schema/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/qapi-schema/meson.build b/tests/qapi-schema/meson.build
index c87d141417..f1449298b0 100644
--- a/tests/qapi-schema/meson.build
+++ b/tests/qapi-schema/meson.build
@@ -220,6 +220,6 @@  qapi_doc = custom_target('QAPI doc',
 
 # "full_path()" needed here to work around
 # https://github.com/mesonbuild/meson/issues/7585
-test('QAPI doc', diff, args: ['-u', files('doc-good.texi'), qapi_doc[0].full_path()],
+test('QAPI doc', diff, args: ['-b', '-u', files('doc-good.texi'), qapi_doc[0].full_path()],
      depends: qapi_doc,
      suite: ['qapi-schema', 'qapi-doc'])