On Wed, 2025-11-12 at 15:11 +0100, Paul Houssel wrote:

Lgtm, one nit below:

> +{
> +     .descr = "dedup: recursive typedef",
> +     /*
> +      * This test simulates a recursive typedef, which in GO is defined as 
> such:
> +      *
> +      *   type Foo func() Foo
> +      *
> +      * In BTF terms, this is represented as a TYPEDEF referencing
> +      * a FUNC_PROTO that returns the same TYPEDEF.
> +      */
> +     .input = {
> +             .raw_types = {
> +                     /*
> +                      * [1] typedef Foo -> func() Foo
> +                      * [2] func_proto() -> Foo
> +                      */
> +                     BTF_TYPEDEF_ENC(NAME_NTH(1), 2),        /* [1] */
> +                     BTF_FUNC_PROTO_ENC(1, 0),               /* [2] */

Nit:
Maybe repeat the above two types, just to make sure that deduplication happens?

> +                     BTF_END_RAW,
> +             },
> +             BTF_STR_SEC("\0Foo"),
> +     },
> +     .expect = {
> +             .raw_types = {
> +                     BTF_TYPEDEF_ENC(NAME_NTH(1), 2),        /* [1] */
> +                     BTF_FUNC_PROTO_ENC(1, 0),               /* [2] */
> +                     BTF_END_RAW,
> +             },
> +             BTF_STR_SEC("\0Foo"),
> +     },
> +},

[...]

Reply via email to