diff options
author | Lennart Poettering <lennart@poettering.net> | 2017-10-04 20:00:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-04 20:00:14 +0200 |
commit | e65270ad1227e07659803acfba502a10d73d0ca9 (patch) | |
tree | e2b3ef4496b75c0385027c309dc03bf5e7732e13 /src | |
parent | 57056020c5487e09de9ef1dbfd68e7ee8d9e718f (diff) | |
parent | 98d9319960571ee7c7f0bed80ee276eb5ddbbbbc (diff) | |
download | systemd-e65270ad1227e07659803acfba502a10d73d0ca9.tar.gz |
Merge pull request #6992 from keszybz/fix-test-copy
test-copy: fix operation when test-copy is too small
Diffstat (limited to 'src')
-rw-r--r-- | src/test/test-copy.c | 16 | ||||
-rw-r--r-- | src/test/test-sizeof.c | 2 |
2 files changed, 14 insertions, 4 deletions
diff --git a/src/test/test-copy.c b/src/test/test-copy.c index ed6725611d..187baa2d53 100644 --- a/src/test/test-copy.c +++ b/src/test/test-copy.c @@ -220,6 +220,14 @@ static void test_copy_bytes_regular_file(const char *src, bool try_reflink, uint else assert_se(IN_SET(r, 0, 1)); + assert_se(fstat(fd, &buf) == 0); + assert_se(fstat(fd2, &buf2) == 0); + assert_se((uint64_t) buf2.st_size == MIN((uint64_t) buf.st_size, max_bytes)); + + if (max_bytes < (uint64_t) -1) + /* Make sure the file is now higher than max_bytes */ + assert_se(ftruncate(fd2, max_bytes + 1) == 0); + assert_se(lseek(fd2, 0, SEEK_SET) == 0); r = copy_bytes(fd2, fd3, max_bytes, try_reflink ? COPY_REFLINK : 0); @@ -233,12 +241,12 @@ static void test_copy_bytes_regular_file(const char *src, bool try_reflink, uint * are copying is exactly max_bytes bytes. */ assert_se(r == 1); - assert_se(fstat(fd, &buf) == 0); - assert_se(fstat(fd2, &buf2) == 0); assert_se(fstat(fd3, &buf3) == 0); - assert_se((uint64_t) buf2.st_size == MIN((uint64_t) buf.st_size, max_bytes)); - assert_se(buf3.st_size == buf2.st_size); + if (max_bytes == (uint64_t) -1) + assert_se(buf3.st_size == buf2.st_size); + else + assert_se((uint64_t) buf3.st_size == max_bytes); unlink(fn2); unlink(fn3); diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c index 269adfd18f..bfc421e4ba 100644 --- a/src/test/test-sizeof.c +++ b/src/test/test-sizeof.c @@ -60,6 +60,8 @@ int main(void) { info(time_t); info(usec_t); info(__time_t); + info(pid_t); + info(gid_t); info(enum Enum); info(enum BigEnum); |