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 |
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 >
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 --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 */