diff mbox series

[1/5] kunit: string-stream: export non-static functions

Message ID 20240604123204.10412-2-ivan.orlov0322@gmail.com (mailing list archive)
State New
Delegated to: Brendan Higgins
Headers show
Series Reorganize string-stream and assert tests | expand

Commit Message

Ivan Orlov June 4, 2024, 12:32 p.m. UTC
Export non-static functions from the string-stream.c file into the KUnit
namespace in order to be able to access them from the KUnit core tests
(when they are loaded as modules).

Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com>
---
 lib/kunit/string-stream.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Comments

David Gow June 8, 2024, 9:20 a.m. UTC | #1
On Tue, 4 Jun 2024 at 20:32, Ivan Orlov <ivan.orlov0322@gmail.com> wrote:
>
> Export non-static functions from the string-stream.c file into the KUnit
> namespace in order to be able to access them from the KUnit core tests
> (when they are loaded as modules).
>
> Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com>
> ---

Looks good to me, thanks.

It's very slightly hilarious to use EXPORT_SYMBOL_IF_KUNIT() here,
because _of course_ KUnit is enabled, but I think it's the right idea
nevertheless.

Reviewed-by: David Gow <davidgow@google.com>

Cheers,
-- David


>  lib/kunit/string-stream.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/lib/kunit/string-stream.c b/lib/kunit/string-stream.c
> index 54f4fdcbfac8..a5e3339854da 100644
> --- a/lib/kunit/string-stream.c
> +++ b/lib/kunit/string-stream.c
> @@ -10,7 +10,7 @@
>  #include <kunit/test.h>
>  #include <linux/list.h>
>  #include <linux/slab.h>
> -
> +#include <kunit/visibility.h>
>  #include "string-stream.h"
>
>
> @@ -86,6 +86,7 @@ int string_stream_vadd(struct string_stream *stream,
>
>         return 0;
>  }
> +EXPORT_SYMBOL_IF_KUNIT(string_stream_vadd);
>
>  int string_stream_add(struct string_stream *stream, const char *fmt, ...)
>  {
> @@ -98,6 +99,7 @@ int string_stream_add(struct string_stream *stream, const char *fmt, ...)
>
>         return result;
>  }
> +EXPORT_SYMBOL_IF_KUNIT(string_stream_add);
>
>  void string_stream_clear(struct string_stream *stream)
>  {
> @@ -113,6 +115,7 @@ void string_stream_clear(struct string_stream *stream)
>         stream->length = 0;
>         spin_unlock(&stream->lock);
>  }
> +EXPORT_SYMBOL_IF_KUNIT(string_stream_clear);
>
>  char *string_stream_get_string(struct string_stream *stream)
>  {
> @@ -131,6 +134,7 @@ char *string_stream_get_string(struct string_stream *stream)
>
>         return buf;
>  }
> +EXPORT_SYMBOL_IF_KUNIT(string_stream_get_string);
>
>  int string_stream_append(struct string_stream *stream,
>                          struct string_stream *other)
> @@ -148,11 +152,13 @@ int string_stream_append(struct string_stream *stream,
>
>         return ret;
>  }
> +EXPORT_SYMBOL_IF_KUNIT(string_stream_append);
>
>  bool string_stream_is_empty(struct string_stream *stream)
>  {
>         return list_empty(&stream->fragments);
>  }
> +EXPORT_SYMBOL_IF_KUNIT(string_stream_is_empty);
>
>  struct string_stream *alloc_string_stream(gfp_t gfp)
>  {
> @@ -168,6 +174,7 @@ struct string_stream *alloc_string_stream(gfp_t gfp)
>
>         return stream;
>  }
> +EXPORT_SYMBOL_IF_KUNIT(alloc_string_stream);
>
>  void string_stream_destroy(struct string_stream *stream)
>  {
> @@ -179,6 +186,7 @@ void string_stream_destroy(struct string_stream *stream)
>         string_stream_clear(stream);
>         kfree(stream);
>  }
> +EXPORT_SYMBOL_IF_KUNIT(string_stream_destroy);
>
>  static void resource_free_string_stream(void *p)
>  {
> @@ -200,8 +208,10 @@ struct string_stream *kunit_alloc_string_stream(struct kunit *test, gfp_t gfp)
>
>         return stream;
>  }
> +EXPORT_SYMBOL_IF_KUNIT(kunit_alloc_string_stream);
>
>  void kunit_free_string_stream(struct kunit *test, struct string_stream *stream)
>  {
>         kunit_release_action(test, resource_free_string_stream, (void *)stream);
>  }
> +EXPORT_SYMBOL_IF_KUNIT(kunit_free_string_stream);
> --
> 2.34.1
>
Ivan Orlov June 9, 2024, 7:01 p.m. UTC | #2
On 6/8/24 10:20, David Gow wrote:
> On Tue, 4 Jun 2024 at 20:32, Ivan Orlov <ivan.orlov0322@gmail.com> wrote:
>>
>> Export non-static functions from the string-stream.c file into the KUnit
>> namespace in order to be able to access them from the KUnit core tests
>> (when they are loaded as modules).
>>
>> Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com>
>> ---
> 
> Looks good to me, thanks.
> 
> It's very slightly hilarious to use EXPORT_SYMBOL_IF_KUNIT() here,
> because _of course_ KUnit is enabled, but I think it's the right idea
> nevertheless.
> 
> Reviewed-by: David Gow <davidgow@google.com>

Hi David,

Thank you for the review.

Yes, the name of the EXPORT_SYMBOL_IF_KUNIT macro in this case is a bit 
confusing... It is used not only to export the symbol conditionally (if 
CONFIG_KUNIT is enabled), but also to export the symbol into the KUnit 
namespace (so I used it as a shortcut for this action here) :)
diff mbox series

Patch

diff --git a/lib/kunit/string-stream.c b/lib/kunit/string-stream.c
index 54f4fdcbfac8..a5e3339854da 100644
--- a/lib/kunit/string-stream.c
+++ b/lib/kunit/string-stream.c
@@ -10,7 +10,7 @@ 
 #include <kunit/test.h>
 #include <linux/list.h>
 #include <linux/slab.h>
-
+#include <kunit/visibility.h>
 #include "string-stream.h"
 
 
@@ -86,6 +86,7 @@  int string_stream_vadd(struct string_stream *stream,
 
 	return 0;
 }
+EXPORT_SYMBOL_IF_KUNIT(string_stream_vadd);
 
 int string_stream_add(struct string_stream *stream, const char *fmt, ...)
 {
@@ -98,6 +99,7 @@  int string_stream_add(struct string_stream *stream, const char *fmt, ...)
 
 	return result;
 }
+EXPORT_SYMBOL_IF_KUNIT(string_stream_add);
 
 void string_stream_clear(struct string_stream *stream)
 {
@@ -113,6 +115,7 @@  void string_stream_clear(struct string_stream *stream)
 	stream->length = 0;
 	spin_unlock(&stream->lock);
 }
+EXPORT_SYMBOL_IF_KUNIT(string_stream_clear);
 
 char *string_stream_get_string(struct string_stream *stream)
 {
@@ -131,6 +134,7 @@  char *string_stream_get_string(struct string_stream *stream)
 
 	return buf;
 }
+EXPORT_SYMBOL_IF_KUNIT(string_stream_get_string);
 
 int string_stream_append(struct string_stream *stream,
 			 struct string_stream *other)
@@ -148,11 +152,13 @@  int string_stream_append(struct string_stream *stream,
 
 	return ret;
 }
+EXPORT_SYMBOL_IF_KUNIT(string_stream_append);
 
 bool string_stream_is_empty(struct string_stream *stream)
 {
 	return list_empty(&stream->fragments);
 }
+EXPORT_SYMBOL_IF_KUNIT(string_stream_is_empty);
 
 struct string_stream *alloc_string_stream(gfp_t gfp)
 {
@@ -168,6 +174,7 @@  struct string_stream *alloc_string_stream(gfp_t gfp)
 
 	return stream;
 }
+EXPORT_SYMBOL_IF_KUNIT(alloc_string_stream);
 
 void string_stream_destroy(struct string_stream *stream)
 {
@@ -179,6 +186,7 @@  void string_stream_destroy(struct string_stream *stream)
 	string_stream_clear(stream);
 	kfree(stream);
 }
+EXPORT_SYMBOL_IF_KUNIT(string_stream_destroy);
 
 static void resource_free_string_stream(void *p)
 {
@@ -200,8 +208,10 @@  struct string_stream *kunit_alloc_string_stream(struct kunit *test, gfp_t gfp)
 
 	return stream;
 }
+EXPORT_SYMBOL_IF_KUNIT(kunit_alloc_string_stream);
 
 void kunit_free_string_stream(struct kunit *test, struct string_stream *stream)
 {
 	kunit_release_action(test, resource_free_string_stream, (void *)stream);
 }
+EXPORT_SYMBOL_IF_KUNIT(kunit_free_string_stream);