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