diff mbox series

[v2,1/2] kunit: add macro to allow conditionally exposing static symbols to tests

Message ID 20221205215058.143688-2-rmoar@google.com
State Accepted
Commit 9c988fae6f6ae3224a568ab985881b66bb50c9ec
Headers show
Series [v2,1/2] kunit: add macro to allow conditionally exposing static symbols to tests | expand

Commit Message

Rae Moar Dec. 5, 2022, 9:50 p.m. UTC
Create two macros:

VISIBLE_IF_KUNIT - A macro that sets symbols to be static if CONFIG_KUNIT
is not enabled. Otherwise if CONFIG_KUNIT is enabled there is no change to
the symbol definition.

EXPORT_SYMBOL_IF_KUNIT(symbol) - Exports symbol into
EXPORTED_FOR_KUNIT_TESTING namespace only if CONFIG_KUNIT is enabled. Must
use MODULE_IMPORT_NS(EXPORTED_FOR_KUNIT_TESTING) in test file in order to
use symbols.

Signed-off-by: Rae Moar <rmoar@google.com>
Reviewed-by: John Johansen <john.johansen@canonical.com>
Reviewed-by: David Gow <davidgow@google.com>
---

Changes since v1:
 - Separated the documentation comments for macros.
 - Changed copyright date and author for new header file.

 include/kunit/visibility.h | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 include/kunit/visibility.h

Comments

David Gow Dec. 6, 2022, 9:40 a.m. UTC | #1
On Tue, Dec 6, 2022 at 5:51 AM Rae Moar <rmoar@google.com> wrote:
>
> Create two macros:
>
> VISIBLE_IF_KUNIT - A macro that sets symbols to be static if CONFIG_KUNIT
> is not enabled. Otherwise if CONFIG_KUNIT is enabled there is no change to
> the symbol definition.
>
> EXPORT_SYMBOL_IF_KUNIT(symbol) - Exports symbol into
> EXPORTED_FOR_KUNIT_TESTING namespace only if CONFIG_KUNIT is enabled. Must
> use MODULE_IMPORT_NS(EXPORTED_FOR_KUNIT_TESTING) in test file in order to
> use symbols.
>
> Signed-off-by: Rae Moar <rmoar@google.com>
> Reviewed-by: John Johansen <john.johansen@canonical.com>
> Reviewed-by: David Gow <davidgow@google.com>
> ---
>
> Changes since v1:
>  - Separated the documentation comments for macros.
>  - Changed copyright date and author for new header file.
>

This still looks good to me, thanks!

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

Cheers,
-- David


>  include/kunit/visibility.h | 33 +++++++++++++++++++++++++++++++++
>  1 file changed, 33 insertions(+)
>  create mode 100644 include/kunit/visibility.h
>
> diff --git a/include/kunit/visibility.h b/include/kunit/visibility.h
> new file mode 100644
> index 000000000000..0dfe35feeec6
> --- /dev/null
> +++ b/include/kunit/visibility.h
> @@ -0,0 +1,33 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * KUnit API to allow symbols to be conditionally visible during KUnit
> + * testing
> + *
> + * Copyright (C) 2022, Google LLC.
> + * Author: Rae Moar <rmoar@google.com>
> + */
> +
> +#ifndef _KUNIT_VISIBILITY_H
> +#define _KUNIT_VISIBILITY_H
> +
> +#if IS_ENABLED(CONFIG_KUNIT)
> +    /**
> +     * VISIBLE_IF_KUNIT - A macro that sets symbols to be static if
> +     * CONFIG_KUNIT is not enabled. Otherwise if CONFIG_KUNIT is enabled
> +     * there is no change to the symbol definition.
> +     */
> +    #define VISIBLE_IF_KUNIT
> +    /**
> +     * EXPORT_SYMBOL_IF_KUNIT(symbol) - Exports symbol into
> +     * EXPORTED_FOR_KUNIT_TESTING namespace only if CONFIG_KUNIT is
> +     * enabled. Must use MODULE_IMPORT_NS(EXPORTED_FOR_KUNIT_TESTING)
> +     * in test file in order to use symbols.
> +     */
> +    #define EXPORT_SYMBOL_IF_KUNIT(symbol) EXPORT_SYMBOL_NS(symbol, \
> +           EXPORTED_FOR_KUNIT_TESTING)
> +#else
> +    #define VISIBLE_IF_KUNIT static
> +    #define EXPORT_SYMBOL_IF_KUNIT(symbol)
> +#endif
> +
> +#endif /* _KUNIT_VISIBILITY_H */
> --
> 2.39.0.rc0.267.gcb52ba06e7-goog
>
John Johansen Dec. 6, 2022, 10:07 a.m. UTC | #2
On 12/6/22 01:40, David Gow wrote:
> On Tue, Dec 6, 2022 at 5:51 AM Rae Moar <rmoar@google.com> wrote:
>>
>> Create two macros:
>>
>> VISIBLE_IF_KUNIT - A macro that sets symbols to be static if CONFIG_KUNIT
>> is not enabled. Otherwise if CONFIG_KUNIT is enabled there is no change to
>> the symbol definition.
>>
>> EXPORT_SYMBOL_IF_KUNIT(symbol) - Exports symbol into
>> EXPORTED_FOR_KUNIT_TESTING namespace only if CONFIG_KUNIT is enabled. Must
>> use MODULE_IMPORT_NS(EXPORTED_FOR_KUNIT_TESTING) in test file in order to
>> use symbols.
>>
>> Signed-off-by: Rae Moar <rmoar@google.com>
>> Reviewed-by: John Johansen <john.johansen@canonical.com>
>> Reviewed-by: David Gow <davidgow@google.com>
>> ---
>>
>> Changes since v1:
>>   - Separated the documentation comments for macros.
>>   - Changed copyright date and author for new header file.
>>
> 
> This still looks good to me, thanks!
> 
> Reviewed-by: David Gow <davidgow@google.com>

yep, and you already have my Reviewed-by for this one

> 
> Cheers,
> -- David
> 
> 
>>   include/kunit/visibility.h | 33 +++++++++++++++++++++++++++++++++
>>   1 file changed, 33 insertions(+)
>>   create mode 100644 include/kunit/visibility.h
>>
>> diff --git a/include/kunit/visibility.h b/include/kunit/visibility.h
>> new file mode 100644
>> index 000000000000..0dfe35feeec6
>> --- /dev/null
>> +++ b/include/kunit/visibility.h
>> @@ -0,0 +1,33 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +/*
>> + * KUnit API to allow symbols to be conditionally visible during KUnit
>> + * testing
>> + *
>> + * Copyright (C) 2022, Google LLC.
>> + * Author: Rae Moar <rmoar@google.com>
>> + */
>> +
>> +#ifndef _KUNIT_VISIBILITY_H
>> +#define _KUNIT_VISIBILITY_H
>> +
>> +#if IS_ENABLED(CONFIG_KUNIT)
>> +    /**
>> +     * VISIBLE_IF_KUNIT - A macro that sets symbols to be static if
>> +     * CONFIG_KUNIT is not enabled. Otherwise if CONFIG_KUNIT is enabled
>> +     * there is no change to the symbol definition.
>> +     */
>> +    #define VISIBLE_IF_KUNIT
>> +    /**
>> +     * EXPORT_SYMBOL_IF_KUNIT(symbol) - Exports symbol into
>> +     * EXPORTED_FOR_KUNIT_TESTING namespace only if CONFIG_KUNIT is
>> +     * enabled. Must use MODULE_IMPORT_NS(EXPORTED_FOR_KUNIT_TESTING)
>> +     * in test file in order to use symbols.
>> +     */
>> +    #define EXPORT_SYMBOL_IF_KUNIT(symbol) EXPORT_SYMBOL_NS(symbol, \
>> +           EXPORTED_FOR_KUNIT_TESTING)
>> +#else
>> +    #define VISIBLE_IF_KUNIT static
>> +    #define EXPORT_SYMBOL_IF_KUNIT(symbol)
>> +#endif
>> +
>> +#endif /* _KUNIT_VISIBILITY_H */
>> --
>> 2.39.0.rc0.267.gcb52ba06e7-goog
>>
diff mbox series

Patch

diff --git a/include/kunit/visibility.h b/include/kunit/visibility.h
new file mode 100644
index 000000000000..0dfe35feeec6
--- /dev/null
+++ b/include/kunit/visibility.h
@@ -0,0 +1,33 @@ 
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * KUnit API to allow symbols to be conditionally visible during KUnit
+ * testing
+ *
+ * Copyright (C) 2022, Google LLC.
+ * Author: Rae Moar <rmoar@google.com>
+ */
+
+#ifndef _KUNIT_VISIBILITY_H
+#define _KUNIT_VISIBILITY_H
+
+#if IS_ENABLED(CONFIG_KUNIT)
+    /**
+     * VISIBLE_IF_KUNIT - A macro that sets symbols to be static if
+     * CONFIG_KUNIT is not enabled. Otherwise if CONFIG_KUNIT is enabled
+     * there is no change to the symbol definition.
+     */
+    #define VISIBLE_IF_KUNIT
+    /**
+     * EXPORT_SYMBOL_IF_KUNIT(symbol) - Exports symbol into
+     * EXPORTED_FOR_KUNIT_TESTING namespace only if CONFIG_KUNIT is
+     * enabled. Must use MODULE_IMPORT_NS(EXPORTED_FOR_KUNIT_TESTING)
+     * in test file in order to use symbols.
+     */
+    #define EXPORT_SYMBOL_IF_KUNIT(symbol) EXPORT_SYMBOL_NS(symbol, \
+	    EXPORTED_FOR_KUNIT_TESTING)
+#else
+    #define VISIBLE_IF_KUNIT static
+    #define EXPORT_SYMBOL_IF_KUNIT(symbol)
+#endif
+
+#endif /* _KUNIT_VISIBILITY_H */