summaryrefslogtreecommitdiff
path: root/cpio
diff options
context:
space:
mode:
authorTim Kientzle <kientzle@acm.org>2018-09-02 00:25:08 -0700
committerTim Kientzle <kientzle@acm.org>2018-09-02 00:25:08 -0700
commit92666772d75858653c174d778dd5ea99acf66786 (patch)
tree9ccb6b0dda4cacd4f42d2b3f37786194a7a04573 /cpio
parent4925fd0ba817764f30b3d6837820351c3bd556d4 (diff)
downloadlibarchive-92666772d75858653c174d778dd5ea99acf66786.tar.gz
Cpio test: Expected error message depends on local strerror()
Diffstat (limited to 'cpio')
-rw-r--r--cpio/test/test_basic.c60
-rw-r--r--cpio/test/test_format_newc.c40
2 files changed, 73 insertions, 27 deletions
diff --git a/cpio/test/test_basic.c b/cpio/test/test_basic.c
index f3a04800..6e45d185 100644
--- a/cpio/test/test_basic.c
+++ b/cpio/test/test_basic.c
@@ -144,49 +144,79 @@ DEFINE_TEST(test_basic)
/* File with 10 bytes content. */
assertMakeFile("file", 0644, "1234567890");
fprintf(filelist, "file\n");
- if (is_LargeInode("file"))
+ if (is_LargeInode("file")) {
strncat(result,
- "bsdcpio: file: large inode number truncated: "
- "Numerical result out of range\n",
+ "bsdcpio: file: large inode number truncated: ",
sizeof(result) - strlen(result) -1);
+ strncat(result,
+ strerror(ERANGE),
+ sizeof(result) - strlen(result) -1);
+ strncat(result,
+ "\n",
+ sizeof(result) - strlen(result) -1);
+ }
/* hardlink to above file. */
assertMakeHardlink("linkfile", "file");
fprintf(filelist, "linkfile\n");
- if (is_LargeInode("linkfile"))
+ if (is_LargeInode("linkfile")) {
+ strncat(result,
+ "bsdcpio: linkfile: large inode number truncated: ",
+ sizeof(result) - strlen(result) -1);
+ strncat(result,
+ strerror(ERANGE),
+ sizeof(result) - strlen(result) -1);
strncat(result,
- "bsdcpio: linkfile: large inode number truncated: "
- "Numerical result out of range\n",
+ "\n",
sizeof(result) - strlen(result) -1);
+ }
/* Symlink to above file. */
if (canSymlink()) {
assertMakeSymlink("symlink", "file");
fprintf(filelist, "symlink\n");
- if (is_LargeInode("symlink"))
+ if (is_LargeInode("symlink")) {
+ strncat(result,
+ "bsdcpio: symlink: large inode number truncated: ",
+ sizeof(result) - strlen(result) -1);
strncat(result,
- "bsdcpio: symlink: large inode number truncated: "
- "Numerical result out of range\n",
+ strerror(ERANGE),
sizeof(result) - strlen(result) -1);
+ strncat(result,
+ "\n",
+ sizeof(result) - strlen(result) -1);
+ }
}
/* Another file with different permissions. */
assertMakeFile("file2", 0777, "1234567890");
fprintf(filelist, "file2\n");
- if (is_LargeInode("file2"))
+ if (is_LargeInode("file2")) {
+ strncat(result,
+ "bsdcpio: file2: large inode number truncated: ",
+ sizeof(result) - strlen(result) -1);
+ strncat(result,
+ strerror(ERANGE),
+ sizeof(result) - strlen(result) -1);
strncat(result,
- "bsdcpio: file2: large inode number truncated: "
- "Numerical result out of range\n",
+ "\n",
sizeof(result) - strlen(result) -1);
+ }
/* Directory. */
assertMakeDir("dir", 0775);
fprintf(filelist, "dir\n");
- if (is_LargeInode("dir"))
+ if (is_LargeInode("dir")) {
+ strncat(result,
+ "bsdcpio: dir: large inode number truncated: ",
+ sizeof(result) - strlen(result) -1);
strncat(result,
- "bsdcpio: dir: large inode number truncated: "
- "Numerical result out of range\n",
+ strerror(ERANGE),
sizeof(result) - strlen(result) -1);
+ strncat(result,
+ "\n",
+ sizeof(result) - strlen(result) -1);
+ }
strncat(result, "2 blocks\n", sizeof(result) - strlen(result) -1);
/* All done. */
diff --git a/cpio/test/test_format_newc.c b/cpio/test/test_format_newc.c
index d2daa46a..25864044 100644
--- a/cpio/test/test_format_newc.c
+++ b/cpio/test/test_format_newc.c
@@ -124,26 +124,42 @@ DEFINE_TEST(test_format_newc)
/* Setup result message. */
memset(result, 0, sizeof(result));
- if (is_LargeInode("file1"))
+ if (is_LargeInode("file1")) {
strncat(result,
- "bsdcpio: file1: large inode number truncated: "
- "Numerical result out of range\n",
+ "bsdcpio: file1: large inode number truncated: ",
sizeof(result) - strlen(result) -1);
- if (canSymlink() && is_LargeInode("symlink"))
+ strncat(result, strerror(ERANGE),
+ sizeof(result) - strlen(result) -1);
+ strncat(result, "\n",
+ sizeof(result) - strlen(result) -1);
+ }
+ if (canSymlink() && is_LargeInode("symlink")) {
strncat(result,
- "bsdcpio: symlink: large inode number truncated: "
- "Numerical result out of range\n",
+ "bsdcpio: symlink: large inode number truncated: ",
sizeof(result) - strlen(result) -1);
- if (is_LargeInode("dir"))
+ strncat(result, strerror(ERANGE),
+ sizeof(result) - strlen(result) -1);
+ strncat(result, "\n",
+ sizeof(result) - strlen(result) -1);
+ }
+ if (is_LargeInode("dir")) {
strncat(result,
- "bsdcpio: dir: large inode number truncated: "
- "Numerical result out of range\n",
+ "bsdcpio: dir: large inode number truncated: ",
sizeof(result) - strlen(result) -1);
- if (is_LargeInode("hardlink"))
+ strncat(result, strerror(ERANGE),
+ sizeof(result) - strlen(result) -1);
+ strncat(result, "\n",
+ sizeof(result) - strlen(result) -1);
+ }
+ if (is_LargeInode("hardlink")) {
strncat(result,
- "bsdcpio: hardlink: large inode number truncated: "
- "Numerical result out of range\n",
+ "bsdcpio: hardlink: large inode number truncated: ",
sizeof(result) - strlen(result) -1);
+ strncat(result, strerror(ERANGE),
+ sizeof(result) - strlen(result) -1);
+ strncat(result, "\n",
+ sizeof(result) - strlen(result) -1);
+ }
/* Record some facts about what we just created: */
now = time(NULL); /* They were all created w/in last two seconds. */