]> git.baikalelectronics.ru Git - kernel.git/commit
fs/ext4/inode-test: Fix inode test on 32 bit platforms.
authorIurii Zaikin <yzaikin@google.com>
Wed, 27 Nov 2019 18:55:24 +0000 (10:55 -0800)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 9 Dec 2019 18:15:44 +0000 (11:15 -0700)
commit83c857914ce94a641789223951f6aa57e85df319
treeb17da3c0936ded489efb051ec31adf135e700d3a
parentb2a9556de3f912c45e90dbda4ebcdf38ae47af42
fs/ext4/inode-test: Fix inode test on 32 bit platforms.

Fixes the issue caused by the fact that in C in the expression
of the form -1234L only 1234L is the actual literal, the unary
minus is an operation applied to the literal. Which means that
to express the lower bound for the type one has to negate the
upper bound and subtract 1.

Original error:
Expected test_data[i].expected.tv_sec == timestamp.tv_sec, but
test_data[i].expected.tv_sec == -2147483648
timestamp.tv_sec == 2147483648
1901-12-13 Lower bound of 32bit < 0 timestamp, no extra bits: msb:1
lower_bound:1 extra_bits: 0
Expected test_data[i].expected.tv_sec == timestamp.tv_sec, but
test_data[i].expected.tv_sec == 2147483648
timestamp.tv_sec == 6442450944
2038-01-19 Lower bound of 32bit <0 timestamp, lo extra sec bit on:
msb:1 lower_bound:1 extra_bits: 1
Expected test_data[i].expected.tv_sec == timestamp.tv_sec, but
test_data[i].expected.tv_sec == 6442450944
timestamp.tv_sec == 10737418240
2174-02-25 Lower bound of 32bit <0 timestamp, hi extra sec bit on:
msb:1 lower_bound:1 extra_bits: 2
not ok 1 - inode_test_xtimestamp_decoding
not ok 1 - ext4_inode_test

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Iurii Zaikin <yzaikin@google.com>
Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Brendan Higgins <brendanhiggins@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
fs/ext4/inode-test.c