Skip to content

Commit b48daa5

Browse files
committed
lkl: add test for large file support
Test that large file support is enabled by default, i.e. without passing O_LARGEFILE to lkl_sys_open. Signed-off-by: Andreas Gnau <[email protected]>
1 parent 33ddd64 commit b48daa5

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

tools/lkl/tests/boot.c

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,38 @@ int test_fstat(char *str, int len)
305305
return TEST_FAILURE;
306306
}
307307

308+
int test_lfs(char *str, int len)
309+
{
310+
long long fd;
311+
long long ret;
312+
int result = TEST_FAILURE;
313+
314+
ret = lkl_sys_open("/largefile", LKL_O_CREAT | LKL_O_WRONLY, 0);
315+
if (ret < 0) {
316+
snprintf(str, len, "open: %s", lkl_strerror(ret));
317+
return TEST_FAILURE;
318+
}
319+
fd = ret;
320+
321+
lkl_loff_t nearly_3gb = (3 * 1024LL * 1024 * 1024 * 1024) - 1;
322+
323+
ret = lkl_sys_pwrite64(fd, "x", 1, nearly_3gb);
324+
if (ret < 0) {
325+
snprintf(str, len, "pwrite: %s", lkl_strerror(ret));
326+
goto out;
327+
}
328+
snprintf(str, len, "%lld", ret);
329+
result = TEST_SUCCESS;
330+
331+
out:
332+
ret = lkl_sys_close(fd);
333+
if (ret < 0) {
334+
snprintf(str, len, "close: %s", lkl_strerror(ret));
335+
result = TEST_FAILURE;
336+
}
337+
return result;
338+
}
339+
308340
int test_mkdir(char *str, int len)
309341
{
310342
long ret;
@@ -932,6 +964,7 @@ int main(int argc, char **argv)
932964
TEST(lseek);
933965
TEST(read);
934966
TEST(fstat);
967+
TEST(lfs);
935968
TEST(mkdir);
936969
TEST(stat);
937970
#ifndef __MINGW32__

0 commit comments

Comments
 (0)