summaryrefslogtreecommitdiff
path: root/include/kunit
diff options
context:
space:
mode:
authorRae Moar <rmoar@google.com>2022-12-07 01:40:23 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-11-20 11:52:08 +0100
commitcfce1e26b4c93d0b850d3f2de1783ee049ffe870 (patch)
tree96e53a3cd930e1611932955903dd362a84535be2 /include/kunit
parent1d47d1abb4f36ce83ff9e8c97aeabbaab704e9d8 (diff)
downloadlinux-cfce1e26b4c93d0b850d3f2de1783ee049ffe870.tar.gz
linux-cfce1e26b4c93d0b850d3f2de1783ee049ffe870.tar.bz2
linux-cfce1e26b4c93d0b850d3f2de1783ee049ffe870.zip
kunit: add macro to allow conditionally exposing static symbols to tests
[ Upstream commit 9c988fae6f6ae3224a568ab985881b66bb50c9ec ] 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> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> Stable-dep-of: 8884ba07786c ("apparmor: fix invalid reference on profile->disconnected") Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'include/kunit')
-rw-r--r--include/kunit/visibility.h33
1 files changed, 33 insertions, 0 deletions
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 */