Re: [PATCH] kunit: fat: test cluster and directory i_pos layout helpers

OGAWA Hirofumi
2026-04-17T04:34:37Z

Hi, Andrew

Could you pick fat patches again? Christian's path didn't work for fat
(no response for 10 days).

Thanks.

> OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> writes:
>
> ping?
>
>> OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> writes:
>>
>> Hi, Christian. ping?
>>
>>> Adi Nata <adinata.softwareengineer@gmail.com> writes:
>>>
>>>> Add KUnit coverage for fat_clus_to_blknr() and fat_get_blknr_offset()
>>>> using stub msdos_sb_info values so cluster-to-sector and i_pos split
>>>> math stays correct.
>>>>
>>>> Signed-off-by: Adi Nata <adinata.softwareengineer@gmail.com>
>>>
>>> Looks good.
>>>
>>> Acked-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
>>>
>>> Thanks.
>>>
>>>> ---
>>>> fs/fat/fat_test.c | 33 +++++++++++++++++++++++++++++++++
>>>> 1 file changed, 33 insertions(+)
>>>>
>>>> diff --git a/fs/fat/fat_test.c b/fs/fat/fat_test.c
>>>> index 1f0062659067..add44178f28e 100644
>>>> --- a/fs/fat/fat_test.c
>>>> +++ b/fs/fat/fat_test.c
>>>> @@ -20,6 +20,37 @@ static void fat_checksum_test(struct kunit *test)
>>>> KUNIT_EXPECT_EQ(test, fat_checksum("ABCDEFGHA "), (u8)98);
>>>> }
>>>>
>>>> +static void fat_clus_to_blknr_test(struct kunit *test)
>>>> +{
>>>> + struct msdos_sb_info sbi = {
>>>> + .sec_per_clus = 4,
>>>> + .data_start = 100,
>>>> + };
>>>> +
>>>> + KUNIT_EXPECT_EQ(test, (sector_t)100,
>>>> + fat_clus_to_blknr(&sbi, FAT_START_ENT));
>>>> + KUNIT_EXPECT_EQ(test, (sector_t)112, fat_clus_to_blknr(&sbi, 5));
>>>> +}
>>>> +
>>>> +static void fat_get_blknr_offset_test(struct kunit *test)
>>>> +{
>>>> + struct msdos_sb_info sbi = {
>>>> + .dir_per_block = 16,
>>>> + .dir_per_block_bits = 4,
>>>> + };
>>>> +
>>>> + sector_t blknr;
>>>> + int offset;
>>>> +
>>>> + fat_get_blknr_offset(&sbi, 0, &blknr, &offset);
>>>> + KUNIT_EXPECT_EQ(test, (sector_t)0, blknr);
>>>> + KUNIT_EXPECT_EQ(test, 0, offset);
>>>> +
>>>> + fat_get_blknr_offset(&sbi, (10 << 4) | 7, &blknr, &offset);
>>>> + KUNIT_EXPECT_EQ(test, (sector_t)10, blknr);
>>>> + KUNIT_EXPECT_EQ(test, 7, offset);
>>>> +}
>>>> +
>>>> struct fat_timestamp_testcase {
>>>> const char *name;
>>>> struct timespec64 ts;
>>>> @@ -181,6 +212,8 @@ static void fat_time_unix2fat_test(struct kunit *test)
>>>>
>>>> static struct kunit_case fat_test_cases[] = {
>>>> KUNIT_CASE(fat_checksum_test),
>>>> + KUNIT_CASE(fat_clus_to_blknr_test),
>>>> + KUNIT_CASE(fat_get_blknr_offset_test),
>>>> KUNIT_CASE_PARAM(fat_time_fat2unix_test, fat_time_gen_params),
>>>> KUNIT_CASE_PARAM(fat_time_unix2fat_test, fat_time_gen_params),
>>>> {},