Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:GA
coreutils-testsuite
coreutils-use_all_of_the_last_device_details_pr...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File coreutils-use_all_of_the_last_device_details_provided.patch of Package coreutils-testsuite
commit 4f8d74eb1b2ba17ef05f81c1c725e60a65cf8293 Author: Pádraig Brady <P@draigBrady.com> Date: Tue Jun 17 00:18:47 2014 +0100 df: use all of the last device details provided * src/df.c (filter_mount_list): Recent commit v8.22-108-g25a2c94 failed to copy file system type along with the updated device name. Therefore simply replace the existing mount entry with the current one with all the latest device details. Note the name, even if not shorter in this entry, will be replaced with a shorter name in a subsequent mount entry. * tests/df/skip-duplicates.sh: Add a test case. diff --git a/src/df.c b/src/df.c index 747d138..10047ce 100644 --- a/src/df.c +++ b/src/df.c @@ -642,7 +642,9 @@ filter_mount_list (void) if ((strchr (me->me_devname, '/') && ! strchr (devlist->me->me_devname, '/')) || (strlen (devlist->me->me_mountdir) - > strlen (me->me_mountdir))) + > strlen (me->me_mountdir)) + /* or one overmounted on a different device. */ + || ! STREQ (devlist->me->me_devname, me->me_devname)) { /* Discard mount entry for existing device. */ discard_me = devlist->me; @@ -652,17 +654,6 @@ filter_mount_list (void) { /* Discard mount entry currently being processed. */ discard_me = me; - - /* We might still want the devname from this mount entry as - the dev_num might not correlate with st_dev if another - device is subsequently overmounted at mountdir, so honor - the order of the presented list and replace with the - latest devname encountered. */ - if (! STREQ (devlist->me->me_devname, me->me_devname)) - { - free (devlist->me->me_devname); - devlist->me->me_devname = xstrdup (me->me_devname); - } } } diff --git a/tests/df/skip-duplicates.sh b/tests/df/skip-duplicates.sh index 6fb6ff5..a620e73 100755 --- a/tests/df/skip-duplicates.sh +++ b/tests/df/skip-duplicates.sh @@ -54,8 +54,8 @@ struct mntent *getmntent (FILE *fp) {.mnt_fsname="fsname", .mnt_dir="/",}, {.mnt_fsname="/fsname", .mnt_dir="/."}, {.mnt_fsname="/fsname", .mnt_dir="/"}, - {.mnt_fsname="virtfs", .mnt_dir="/NONROOT"}, - {.mnt_fsname="virtfs2", .mnt_dir="/NONROOT"}, + {.mnt_fsname="virtfs", .mnt_dir="/NONROOT", .mnt_type="fstype1"}, + {.mnt_fsname="virtfs2", .mnt_dir="/NONROOT", .mnt_type="fstype2"}, {.mnt_fsname="netns", .mnt_dir="net:[1234567]"}, }; @@ -71,7 +71,8 @@ struct mntent *getmntent (FILE *fp) while (done++ <= 7) { - mntents[done-2].mnt_type = "-"; + if (!mntents[done-2].mnt_type) + mntents[done-2].mnt_type = "-"; if (STREQ (mntents[done-2].mnt_dir, "/NONROOT")) mntents[done-2].mnt_dir = nonroot_fs; return &mntents[done-2]; @@ -92,11 +93,11 @@ test -f x || skip_ "internal test failure: maybe LD_PRELOAD doesn't work?" # The fake mtab file should only contain entries # having the same device number; thus the output should # consist of a header and unique entries. -LD_PRELOAD=./k.so df >out || fail=1 +LD_PRELOAD=./k.so df -T >out || fail=1 test $(wc -l <out) -eq $(expr 1 + $unique_entries) || { fail=1; cat out; } # Ensure we fail when unable to stat invalid entries -LD_PRELOAD=./k.so CU_TEST_DUPE_INVALID=1 df >out && fail=1 +LD_PRELOAD=./k.so CU_TEST_DUPE_INVALID=1 df -T >out && fail=1 test $(wc -l <out) -eq $(expr 1 + $unique_entries) || { fail=1; cat out; } # df should also prefer "/fsname" over "fsname" @@ -106,8 +107,8 @@ if test "$unique_entries" = 2; then test $(grep -cF '/.' <out) -eq 0 || { fail=1; cat out; } fi -# df should use the last seen devname (mnt_fsname) -test $(grep -c 'virtfs2' <out) -eq 1 || { fail=1; cat out; } +# df should use the last seen devname (mnt_fsname) and devtype (mnt_type) +test $(grep -c 'virtfs2.*fstype2' <out) -eq 1 || { fail=1; cat out; } # Ensure that filtering duplicates does not affect -a processing. LD_PRELOAD=./k.so df -a >out || fail=1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor