2024-06-04 12:34:29

by Ivan Orlov

[permalink] [raw]
Subject: [PATCH 4/5] kunit: assert: export non-static functions

Export non-static functions from the assert.c file into the KUnit
namespace in order to be able to access them from the tests if
they are compiled as modules.

Signed-off-by: Ivan Orlov <[email protected]>
---
lib/kunit/assert.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/lib/kunit/assert.c b/lib/kunit/assert.c
index 867aa5c4bccf..f394e4b8482f 100644
--- a/lib/kunit/assert.c
+++ b/lib/kunit/assert.c
@@ -38,6 +38,7 @@ void kunit_assert_print_msg(const struct va_format *message,
if (message->fmt)
string_stream_add(stream, "\n%pV", message);
}
+EXPORT_SYMBOL_IF_KUNIT(kunit_assert_print_msg);

void kunit_fail_assert_format(const struct kunit_assert *assert,
const struct va_format *message,
@@ -112,6 +113,7 @@ VISIBLE_IF_KUNIT bool is_literal(const char *text, long long value)

return ret;
}
+EXPORT_SYMBOL_IF_KUNIT(is_literal);

void kunit_binary_assert_format(const struct kunit_assert *assert,
const struct va_format *message,
@@ -180,6 +182,7 @@ VISIBLE_IF_KUNIT bool is_str_literal(const char *text, const char *value)

return strncmp(text + 1, value, len - 2) == 0;
}
+EXPORT_SYMBOL_IF_KUNIT(is_str_literal);

void kunit_binary_str_assert_format(const struct kunit_assert *assert,
const struct va_format *message,
@@ -232,6 +235,7 @@ void kunit_assert_hexdump(struct string_stream *stream,
string_stream_add(stream, " %02x ", buf1[i]);
}
}
+EXPORT_SYMBOL_IF_KUNIT(kunit_assert_hexdump);

void kunit_mem_assert_format(const struct kunit_assert *assert,
const struct va_format *message,
--
2.34.1



2024-06-08 09:21:22

by David Gow

[permalink] [raw]
Subject: Re: [PATCH 4/5] kunit: assert: export non-static functions

On Tue, 4 Jun 2024 at 20:32, Ivan Orlov <[email protected]> wrote:
>
> Export non-static functions from the assert.c file into the KUnit
> namespace in order to be able to access them from the tests if
> they are compiled as modules.
>
> Signed-off-by: Ivan Orlov <[email protected]>
> ---

I think this could be merged with patch 5, as it's not useful on its
own. Also, a few of the symbol names might be a little too generic to
be exported: maybe we should give them a 'kunit_assert' prefix?

Cheers,
-- David

> lib/kunit/assert.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/lib/kunit/assert.c b/lib/kunit/assert.c
> index 867aa5c4bccf..f394e4b8482f 100644
> --- a/lib/kunit/assert.c
> +++ b/lib/kunit/assert.c
> @@ -38,6 +38,7 @@ void kunit_assert_print_msg(const struct va_format *message,
> if (message->fmt)
> string_stream_add(stream, "\n%pV", message);
> }
> +EXPORT_SYMBOL_IF_KUNIT(kunit_assert_print_msg);
>
> void kunit_fail_assert_format(const struct kunit_assert *assert,
> const struct va_format *message,
> @@ -112,6 +113,7 @@ VISIBLE_IF_KUNIT bool is_literal(const char *text, long long value)
>
> return ret;
> }
> +EXPORT_SYMBOL_IF_KUNIT(is_literal);

I'm a bit worried about having such a generic name exported, even
conditionally and to a namespace. Maybe we could give this a
'kunit_assert' prefix, or put it in a separate, more specific
namespace?

>
> void kunit_binary_assert_format(const struct kunit_assert *assert,
> const struct va_format *message,
> @@ -180,6 +182,7 @@ VISIBLE_IF_KUNIT bool is_str_literal(const char *text, const char *value)
>
> return strncmp(text + 1, value, len - 2) == 0;
> }
> +EXPORT_SYMBOL_IF_KUNIT(is_str_literal);

I'm a bit worried about having such a generic name exported, even
conditionally and to a namespace. Maybe we could give this a
'kunit_assert' prefix, or put it in a separate, more specific
namespace?




> void kunit_binary_str_assert_format(const struct kunit_assert *assert,
> const struct va_format *message,
> @@ -232,6 +235,7 @@ void kunit_assert_hexdump(struct string_stream *stream,
> string_stream_add(stream, " %02x ", buf1[i]);
> }
> }
> +EXPORT_SYMBOL_IF_KUNIT(kunit_assert_hexdump);
>
> void kunit_mem_assert_format(const struct kunit_assert *assert,
> const struct va_format *message,
> --
> 2.34.1
>


Attachments:
smime.p7s (3.92 kB)
S/MIME Cryptographic Signature

2024-06-09 19:05:42

by Ivan Orlov

[permalink] [raw]
Subject: Re: [PATCH 4/5] kunit: assert: export non-static functions

On 6/8/24 10:20, David Gow wrote:
> I think this could be merged with patch 5, as it's not useful on its
> own. Also, a few of the symbol names might be a little too generic to
> be exported: maybe we should give them a 'kunit_assert' prefix?
>
> Cheers,
> -- David
>

Hi David,

Thank you for the review and yes, I agree that it would be more useful
in the scope of the next patch (so I'm going to squash it with the next
patch in the V2).

>> lib/kunit/assert.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/lib/kunit/assert.c b/lib/kunit/assert.c
>> index 867aa5c4bccf..f394e4b8482f 100644
>> --- a/lib/kunit/assert.c
>> +++ b/lib/kunit/assert.c
>> @@ -38,6 +38,7 @@ void kunit_assert_print_msg(const struct va_format *message,
>> if (message->fmt)
>> string_stream_add(stream, "\n%pV", message);
>> }
>> +EXPORT_SYMBOL_IF_KUNIT(kunit_assert_print_msg);
>>
>> void kunit_fail_assert_format(const struct kunit_assert *assert,
>> const struct va_format *message,
>> @@ -112,6 +113,7 @@ VISIBLE_IF_KUNIT bool is_literal(const char *text, long long value)
>>
>> return ret;
>> }
>> +EXPORT_SYMBOL_IF_KUNIT(is_literal);
>
> I'm a bit worried about having such a generic name exported, even
> conditionally and to a namespace. Maybe we could give this a
> 'kunit_assert' prefix, or put it in a separate, more specific
> namespace?
>

Yeah, makes sense, I'll rename them in the next version of the series.
Thank you!

>>
>> void kunit_binary_assert_format(const struct kunit_assert *assert,
>> const struct va_format *message,
>> @@ -180,6 +182,7 @@ VISIBLE_IF_KUNIT bool is_str_literal(const char *text, const char *value)
>>
>> return strncmp(text + 1, value, len - 2) == 0;
>> }
>> +EXPORT_SYMBOL_IF_KUNIT(is_str_literal);
>
> I'm a bit worried about having such a generic name exported, even
> conditionally and to a namespace. Maybe we could give this a
> 'kunit_assert' prefix, or put it in a separate, more specific
> namespace?
>
>

Same here: will be renamed :)

Thanks!

>
>
>> void kunit_binary_str_assert_format(const struct kunit_assert *assert,
>> const struct va_format *message,
>> @@ -232,6 +235,7 @@ void kunit_assert_hexdump(struct string_stream *stream,
>> string_stream_add(stream, " %02x ", buf1[i]);
>> }
>> }
>> +EXPORT_SYMBOL_IF_KUNIT(kunit_assert_hexdump);
>>
>> void kunit_mem_assert_format(const struct kunit_assert *assert,
>> const struct va_format *message,
>> --
>> 2.34.1
>>

--
Kind regards,
Ivan Orlov