Message ID | 1573812972-10529-2-git-send-email-alan.maguire@oracle.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | kunit: support building core/tests as modules | expand |
Quoting Alan Maguire (2019-11-15 02:16:07) > string-stream interfaces are not intended for external use; > move them from include/kunit to lib/kunit accordingly. > > Signed-off-by: Alan Maguire <alan.maguire@oracle.com> > Signed-off-by: Knut Omang <knut.omang@oracle.com> The sign off chain is incorrect here. Is Knut tag supposed to be Co-developed-by? > diff --git a/include/kunit/assert.h b/include/kunit/assert.h > index db6a0fc..ad889b5 100644 > --- a/include/kunit/assert.h > +++ b/include/kunit/assert.h > @@ -9,10 +9,11 @@ > #ifndef _KUNIT_ASSERT_H > #define _KUNIT_ASSERT_H > > -#include <kunit/string-stream.h> > #include <linux/err.h> > +#include <linux/kernel.h> Why is this included now? > > struct kunit; > +struct string_stream; > > /** > * enum kunit_assert_type - Type of expectation/assertion.
On Sat, Nov 16, 2019 at 5:33 PM Stephen Boyd <sboyd@kernel.org> wrote: > > Quoting Alan Maguire (2019-11-15 02:16:07) > > string-stream interfaces are not intended for external use; > > move them from include/kunit to lib/kunit accordingly. > > > > Signed-off-by: Alan Maguire <alan.maguire@oracle.com> > > Signed-off-by: Knut Omang <knut.omang@oracle.com> > > The sign off chain is incorrect here. Is Knut tag supposed to be > Co-developed-by? I am not sure what the relationship between Alan and Knut on this patch. Nevertheless, Signed-off-by is required either way, but it seems that Co-developed-by is optional depending on how Alan and Knut would like to share credit for this patch, at least that is based on my reading of the submitting patches guide: https://www.kernel.org/doc/html/latest/process/submitting-patches.html#when-to-use-acked-by-cc-and-co-developed-by > > diff --git a/include/kunit/assert.h b/include/kunit/assert.h > > index db6a0fc..ad889b5 100644 > > --- a/include/kunit/assert.h > > +++ b/include/kunit/assert.h > > @@ -9,10 +9,11 @@ > > #ifndef _KUNIT_ASSERT_H > > #define _KUNIT_ASSERT_H > > > > -#include <kunit/string-stream.h> > > #include <linux/err.h> > > +#include <linux/kernel.h> > > Why is this included now? Nice catch! I think I would have missed that. > > > > struct kunit; > > +struct string_stream; > > > > /** > > * enum kunit_assert_type - Type of expectation/assertion. Cheers!
On Fri, Nov 15, 2019 at 2:17 AM Alan Maguire <alan.maguire@oracle.com> wrote: > > string-stream interfaces are not intended for external use; > move them from include/kunit to lib/kunit accordingly. > > Signed-off-by: Alan Maguire <alan.maguire@oracle.com> > Signed-off-by: Knut Omang <knut.omang@oracle.com> Reviewed-by: Brendan Higgins <brendanhiggins@google.com> Tested-by: Brendan Higgins <brendanhiggins@google.com> Stephen pointed out a couple of nits, but beyond that this looks good to me. Thanks for all your hard work!
diff --git a/include/kunit/assert.h b/include/kunit/assert.h index db6a0fc..ad889b5 100644 --- a/include/kunit/assert.h +++ b/include/kunit/assert.h @@ -9,10 +9,11 @@ #ifndef _KUNIT_ASSERT_H #define _KUNIT_ASSERT_H -#include <kunit/string-stream.h> #include <linux/err.h> +#include <linux/kernel.h> struct kunit; +struct string_stream; /** * enum kunit_assert_type - Type of expectation/assertion. diff --git a/include/kunit/string-stream.h b/include/kunit/string-stream.h deleted file mode 100644 index fe98a00..0000000 --- a/include/kunit/string-stream.h +++ /dev/null @@ -1,51 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/* - * C++ stream style string builder used in KUnit for building messages. - * - * Copyright (C) 2019, Google LLC. - * Author: Brendan Higgins <brendanhiggins@google.com> - */ - -#ifndef _KUNIT_STRING_STREAM_H -#define _KUNIT_STRING_STREAM_H - -#include <linux/spinlock.h> -#include <linux/types.h> -#include <stdarg.h> - -struct string_stream_fragment { - struct kunit *test; - struct list_head node; - char *fragment; -}; - -struct string_stream { - size_t length; - struct list_head fragments; - /* length and fragments are protected by this lock */ - spinlock_t lock; - struct kunit *test; - gfp_t gfp; -}; - -struct kunit; - -struct string_stream *alloc_string_stream(struct kunit *test, gfp_t gfp); - -int __printf(2, 3) string_stream_add(struct string_stream *stream, - const char *fmt, ...); - -int string_stream_vadd(struct string_stream *stream, - const char *fmt, - va_list args); - -char *string_stream_get_string(struct string_stream *stream); - -int string_stream_append(struct string_stream *stream, - struct string_stream *other); - -bool string_stream_is_empty(struct string_stream *stream); - -int string_stream_destroy(struct string_stream *stream); - -#endif /* _KUNIT_STRING_STREAM_H */ diff --git a/lib/kunit/assert.c b/lib/kunit/assert.c index 86013d4..9aca71c 100644 --- a/lib/kunit/assert.c +++ b/lib/kunit/assert.c @@ -7,6 +7,8 @@ */ #include <kunit/assert.h> +#include "string-stream.h" + void kunit_base_assert_format(const struct kunit_assert *assert, struct string_stream *stream) { diff --git a/lib/kunit/string-stream-test.c b/lib/kunit/string-stream-test.c index 76cc05e..6c70dc8 100644 --- a/lib/kunit/string-stream-test.c +++ b/lib/kunit/string-stream-test.c @@ -6,10 +6,11 @@ * Author: Brendan Higgins <brendanhiggins@google.com> */ -#include <kunit/string-stream.h> #include <kunit/test.h> #include <linux/slab.h> +#include "string-stream.h" + static void string_stream_test_empty_on_creation(struct kunit *test) { struct string_stream *stream = alloc_string_stream(test, GFP_KERNEL); diff --git a/lib/kunit/string-stream.c b/lib/kunit/string-stream.c index e6d17aa..3503920 100644 --- a/lib/kunit/string-stream.c +++ b/lib/kunit/string-stream.c @@ -6,11 +6,12 @@ * Author: Brendan Higgins <brendanhiggins@google.com> */ -#include <kunit/string-stream.h> #include <kunit/test.h> #include <linux/list.h> #include <linux/slab.h> +#include "string-stream.h" + struct string_stream_fragment_alloc_context { struct kunit *test; int len; diff --git a/lib/kunit/string-stream.h b/lib/kunit/string-stream.h new file mode 100644 index 0000000..fe98a00 --- /dev/null +++ b/lib/kunit/string-stream.h @@ -0,0 +1,51 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * C++ stream style string builder used in KUnit for building messages. + * + * Copyright (C) 2019, Google LLC. + * Author: Brendan Higgins <brendanhiggins@google.com> + */ + +#ifndef _KUNIT_STRING_STREAM_H +#define _KUNIT_STRING_STREAM_H + +#include <linux/spinlock.h> +#include <linux/types.h> +#include <stdarg.h> + +struct string_stream_fragment { + struct kunit *test; + struct list_head node; + char *fragment; +}; + +struct string_stream { + size_t length; + struct list_head fragments; + /* length and fragments are protected by this lock */ + spinlock_t lock; + struct kunit *test; + gfp_t gfp; +}; + +struct kunit; + +struct string_stream *alloc_string_stream(struct kunit *test, gfp_t gfp); + +int __printf(2, 3) string_stream_add(struct string_stream *stream, + const char *fmt, ...); + +int string_stream_vadd(struct string_stream *stream, + const char *fmt, + va_list args); + +char *string_stream_get_string(struct string_stream *stream); + +int string_stream_append(struct string_stream *stream, + struct string_stream *other); + +bool string_stream_is_empty(struct string_stream *stream); + +int string_stream_destroy(struct string_stream *stream); + +#endif /* _KUNIT_STRING_STREAM_H */ diff --git a/lib/kunit/test.c b/lib/kunit/test.c index c83c0fa..36ebf47 100644 --- a/lib/kunit/test.c +++ b/lib/kunit/test.c @@ -11,6 +11,8 @@ #include <linux/kernel.h> #include <linux/sched/debug.h> +#include "string-stream.h" + static void kunit_set_failure(struct kunit *test) { WRITE_ONCE(test->success, false);