Re: [PATCH v9 2/2] fs: ext4: Modify inode-test.c to use KUnit parameterized testing feature

2020-12-02 Thread Shuah Khan

On 12/2/20 9:07 AM, Theodore Y. Ts'o wrote:

On Mon, Nov 16, 2020 at 11:11:50AM +0530, Arpitha Raghunandan wrote:

Modify fs/ext4/inode-test.c to use the parameterized testing
feature of KUnit.

Signed-off-by: Arpitha Raghunandan <98.a...@gmail.com>
Signed-off-by: Marco Elver 


Acked-by: Theodore Ts'o 



Thanks Ted.

-- Shuah


Re: [PATCH v9 2/2] fs: ext4: Modify inode-test.c to use KUnit parameterized testing feature

2020-12-02 Thread Theodore Y. Ts'o
On Mon, Nov 16, 2020 at 11:11:50AM +0530, Arpitha Raghunandan wrote:
> Modify fs/ext4/inode-test.c to use the parameterized testing
> feature of KUnit.
> 
> Signed-off-by: Arpitha Raghunandan <98.a...@gmail.com>
> Signed-off-by: Marco Elver 

Acked-by: Theodore Ts'o 



Re: [PATCH v9 2/2] fs: ext4: Modify inode-test.c to use KUnit parameterized testing feature

2020-12-01 Thread Iurii Zaikin
>
> Modify fs/ext4/inode-test.c to use the parameterized testing
> feature of KUnit.

Reviewed-by: Iurii Zaikin 


Re: [PATCH v9 2/2] fs: ext4: Modify inode-test.c to use KUnit parameterized testing feature

2020-11-16 Thread David Gow
On Mon, Nov 16, 2020 at 1:42 PM Arpitha Raghunandan <98.a...@gmail.com> wrote:
>
> Modify fs/ext4/inode-test.c to use the parameterized testing
> feature of KUnit.
>
> Signed-off-by: Arpitha Raghunandan <98.a...@gmail.com>
> Signed-off-by: Marco Elver 
> ---
[Resending this because the HTML-email demon struck again! Sorry for the mess!]


Thanks: this is working well over here.
The only (minor) issue I've noticed is that the diagnostic output is
too big for the default log buffer if debugfs output is used, causing
some of the messages to be dropped from the debugfs results file. But
that's clearly not an issue with this patch, and the actual combined
result is still present (and the complete results should show up in
dmesg anyway).

Tested-by: David Gow 
Reviewed-by: David Gow 

Thanks!
-- David


Re: [PATCH v9 2/2] fs: ext4: Modify inode-test.c to use KUnit parameterized testing feature

2020-11-16 Thread Marco Elver
On Mon, 16 Nov 2020 at 06:42, Arpitha Raghunandan <98.a...@gmail.com> wrote:
>
> Modify fs/ext4/inode-test.c to use the parameterized testing
> feature of KUnit.
>
> Signed-off-by: Arpitha Raghunandan <98.a...@gmail.com>
> Signed-off-by: Marco Elver 

Reviewed-by: Marco Elver 

Thank you!

> ---
> Changes v8->v9:
> - Replace strncpy() with strscpy() in timestamp_expectation_to_desc()
> Changes v7->v8:
> - Replace strcpy() with strncpy() in timestamp_expectation_to_desc()
> Changes v6->v7:
> - Introduce timestamp_expectation_to_desc() to convert param to
>   description.
> Changes v5->v6:
> - No change to this patch of the patch series
> Changes v4->v5:
> - No change to this patch of the patch series
> Changes v3->v4:
> - Modification based on latest implementation of KUnit parameterized testing
> Changes v2->v3:
> - Marked hardcoded test data const
> - Modification based on latest implementation of KUnit parameterized testing
> Changes v1->v2:
> - Modification based on latest implementation of KUnit parameterized testing
>
>  fs/ext4/inode-test.c | 320 ++-
>  1 file changed, 164 insertions(+), 156 deletions(-)
>
> diff --git a/fs/ext4/inode-test.c b/fs/ext4/inode-test.c
> index d62d802c9c12..7935ea6cf92c 100644
> --- a/fs/ext4/inode-test.c
> +++ b/fs/ext4/inode-test.c
> @@ -80,6 +80,145 @@ struct timestamp_expectation {
> bool lower_bound;
>  };
>
> +static const struct timestamp_expectation test_data[] = {
> +   {
> +   .test_case_name = LOWER_BOUND_NEG_NO_EXTRA_BITS_CASE,
> +   .msb_set = true,
> +   .lower_bound = true,
> +   .extra_bits = 0,
> +   .expected = {.tv_sec = -0x8000LL, .tv_nsec = 0L},
> +   },
> +
> +   {
> +   .test_case_name = UPPER_BOUND_NEG_NO_EXTRA_BITS_CASE,
> +   .msb_set = true,
> +   .lower_bound = false,
> +   .extra_bits = 0,
> +   .expected = {.tv_sec = -1LL, .tv_nsec = 0L},
> +   },
> +
> +   {
> +   .test_case_name = LOWER_BOUND_NONNEG_NO_EXTRA_BITS_CASE,
> +   .msb_set = false,
> +   .lower_bound = true,
> +   .extra_bits = 0,
> +   .expected = {0LL, 0L},
> +   },
> +
> +   {
> +   .test_case_name = UPPER_BOUND_NONNEG_NO_EXTRA_BITS_CASE,
> +   .msb_set = false,
> +   .lower_bound = false,
> +   .extra_bits = 0,
> +   .expected = {.tv_sec = 0x7fffLL, .tv_nsec = 0L},
> +   },
> +
> +   {
> +   .test_case_name = LOWER_BOUND_NEG_LO_1_CASE,
> +   .msb_set = true,
> +   .lower_bound = true,
> +   .extra_bits = 1,
> +   .expected = {.tv_sec = 0x8000LL, .tv_nsec = 0L},
> +   },
> +
> +   {
> +   .test_case_name = UPPER_BOUND_NEG_LO_1_CASE,
> +   .msb_set = true,
> +   .lower_bound = false,
> +   .extra_bits = 1,
> +   .expected = {.tv_sec = 0xLL, .tv_nsec = 0L},
> +   },
> +
> +   {
> +   .test_case_name = LOWER_BOUND_NONNEG_LO_1_CASE,
> +   .msb_set = false,
> +   .lower_bound = true,
> +   .extra_bits = 1,
> +   .expected = {.tv_sec = 0x1LL, .tv_nsec = 0L},
> +   },
> +
> +   {
> +   .test_case_name = UPPER_BOUND_NONNEG_LO_1_CASE,
> +   .msb_set = false,
> +   .lower_bound = false,
> +   .extra_bits = 1,
> +   .expected = {.tv_sec = 0x17fffLL, .tv_nsec = 0L},
> +   },
> +
> +   {
> +   .test_case_name = LOWER_BOUND_NEG_HI_1_CASE,
> +   .msb_set = true,
> +   .lower_bound = true,
> +   .extra_bits =  2,
> +   .expected = {.tv_sec = 0x18000LL, .tv_nsec = 0L},
> +   },
> +
> +   {
> +   .test_case_name = UPPER_BOUND_NEG_HI_1_CASE,
> +   .msb_set = true,
> +   .lower_bound = false,
> +   .extra_bits = 2,
> +   .expected = {.tv_sec = 0x1LL, .tv_nsec = 0L},
> +   },
> +
> +   {
> +   .test_case_name = LOWER_BOUND_NONNEG_HI_1_CASE,
> +   .msb_set = false,
> +   .lower_bound = true,
> +   .extra_bits = 2,
> +   .expected = {.tv_sec = 0x2LL, .tv_nsec = 0L},
> +   },
> +
> +   {
> +   .test_case_name = UPPER_BOUND_NONNEG_HI_1_CASE,
> +   .msb_set = false,
> +   .lower_bound = false,
> +   .extra_bits = 2,
> +   .expected = {.tv_sec = 0x27fffLL, .tv_nsec = 0L},
> +   },
> +
> +   {
> +   .test_case_name = UPPER_BOUND_NONNEG_HI_1_NS_1_CASE,
> +   .msb_set = false,
> +   .lower_bound = false,
> +   .extra_bits = 6,
> +   

[PATCH v9 2/2] fs: ext4: Modify inode-test.c to use KUnit parameterized testing feature

2020-11-15 Thread Arpitha Raghunandan
Modify fs/ext4/inode-test.c to use the parameterized testing
feature of KUnit.

Signed-off-by: Arpitha Raghunandan <98.a...@gmail.com>
Signed-off-by: Marco Elver 
---
Changes v8->v9:
- Replace strncpy() with strscpy() in timestamp_expectation_to_desc()
Changes v7->v8:
- Replace strcpy() with strncpy() in timestamp_expectation_to_desc()
Changes v6->v7:
- Introduce timestamp_expectation_to_desc() to convert param to
  description.
Changes v5->v6:
- No change to this patch of the patch series
Changes v4->v5:
- No change to this patch of the patch series
Changes v3->v4:
- Modification based on latest implementation of KUnit parameterized testing
Changes v2->v3:
- Marked hardcoded test data const
- Modification based on latest implementation of KUnit parameterized testing
Changes v1->v2:
- Modification based on latest implementation of KUnit parameterized testing

 fs/ext4/inode-test.c | 320 ++-
 1 file changed, 164 insertions(+), 156 deletions(-)

diff --git a/fs/ext4/inode-test.c b/fs/ext4/inode-test.c
index d62d802c9c12..7935ea6cf92c 100644
--- a/fs/ext4/inode-test.c
+++ b/fs/ext4/inode-test.c
@@ -80,6 +80,145 @@ struct timestamp_expectation {
bool lower_bound;
 };
 
+static const struct timestamp_expectation test_data[] = {
+   {
+   .test_case_name = LOWER_BOUND_NEG_NO_EXTRA_BITS_CASE,
+   .msb_set = true,
+   .lower_bound = true,
+   .extra_bits = 0,
+   .expected = {.tv_sec = -0x8000LL, .tv_nsec = 0L},
+   },
+
+   {
+   .test_case_name = UPPER_BOUND_NEG_NO_EXTRA_BITS_CASE,
+   .msb_set = true,
+   .lower_bound = false,
+   .extra_bits = 0,
+   .expected = {.tv_sec = -1LL, .tv_nsec = 0L},
+   },
+
+   {
+   .test_case_name = LOWER_BOUND_NONNEG_NO_EXTRA_BITS_CASE,
+   .msb_set = false,
+   .lower_bound = true,
+   .extra_bits = 0,
+   .expected = {0LL, 0L},
+   },
+
+   {
+   .test_case_name = UPPER_BOUND_NONNEG_NO_EXTRA_BITS_CASE,
+   .msb_set = false,
+   .lower_bound = false,
+   .extra_bits = 0,
+   .expected = {.tv_sec = 0x7fffLL, .tv_nsec = 0L},
+   },
+
+   {
+   .test_case_name = LOWER_BOUND_NEG_LO_1_CASE,
+   .msb_set = true,
+   .lower_bound = true,
+   .extra_bits = 1,
+   .expected = {.tv_sec = 0x8000LL, .tv_nsec = 0L},
+   },
+
+   {
+   .test_case_name = UPPER_BOUND_NEG_LO_1_CASE,
+   .msb_set = true,
+   .lower_bound = false,
+   .extra_bits = 1,
+   .expected = {.tv_sec = 0xLL, .tv_nsec = 0L},
+   },
+
+   {
+   .test_case_name = LOWER_BOUND_NONNEG_LO_1_CASE,
+   .msb_set = false,
+   .lower_bound = true,
+   .extra_bits = 1,
+   .expected = {.tv_sec = 0x1LL, .tv_nsec = 0L},
+   },
+
+   {
+   .test_case_name = UPPER_BOUND_NONNEG_LO_1_CASE,
+   .msb_set = false,
+   .lower_bound = false,
+   .extra_bits = 1,
+   .expected = {.tv_sec = 0x17fffLL, .tv_nsec = 0L},
+   },
+
+   {
+   .test_case_name = LOWER_BOUND_NEG_HI_1_CASE,
+   .msb_set = true,
+   .lower_bound = true,
+   .extra_bits =  2,
+   .expected = {.tv_sec = 0x18000LL, .tv_nsec = 0L},
+   },
+
+   {
+   .test_case_name = UPPER_BOUND_NEG_HI_1_CASE,
+   .msb_set = true,
+   .lower_bound = false,
+   .extra_bits = 2,
+   .expected = {.tv_sec = 0x1LL, .tv_nsec = 0L},
+   },
+
+   {
+   .test_case_name = LOWER_BOUND_NONNEG_HI_1_CASE,
+   .msb_set = false,
+   .lower_bound = true,
+   .extra_bits = 2,
+   .expected = {.tv_sec = 0x2LL, .tv_nsec = 0L},
+   },
+
+   {
+   .test_case_name = UPPER_BOUND_NONNEG_HI_1_CASE,
+   .msb_set = false,
+   .lower_bound = false,
+   .extra_bits = 2,
+   .expected = {.tv_sec = 0x27fffLL, .tv_nsec = 0L},
+   },
+
+   {
+   .test_case_name = UPPER_BOUND_NONNEG_HI_1_NS_1_CASE,
+   .msb_set = false,
+   .lower_bound = false,
+   .extra_bits = 6,
+   .expected = {.tv_sec = 0x27fffLL, .tv_nsec = 1L},
+   },
+
+   {
+   .test_case_name = LOWER_BOUND_NONNEG_HI_1_NS_MAX_CASE,
+   .msb_set = false,
+   .lower_bound = true,
+   .extra_bits = 0x,
+   .expected = {.tv_sec = 0x3LL,
+.tv_nsec = MAX_NANOSECONDS},
+   },
+
+   {
+