Front page

[PATCH] kdirstat: Correct output syntax for FIFO

8772cdd229f444c287dd42e26208ae0b
NEPTUNE HOLINESS SPINDLE

From: Ian Campbell <ijc@hellion.org.uk>
Date: Wed, 26 Oct 2016 14:07:57 +0100

   There needs to be some whitspace after the FIFO tag, otherwise k4dirstat
   (silently!) stops parsing at this entry.
   
   This was wrong in the initial commit to add FIFO support to kdirstat
   4ce858d7c593 ("kdirstat: Handled named pipes (fifos)"), manual testing at the
   time apparently only verified that the file was generated, not that it was
   valid, sorry.
   
   I updated the test yarns to also check for FIFO, however this is only run
   "ASSUMING extended attributes are allowed for users", which does not appear to
   be the case on my system. Also the testshould probably test for all sorts of
   files, not just regular and FIFO.
   
   Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
   ---
    obnamlib/plugins/show_plugin.py      | 2 +-
    yarns/0300-kdirstat-integration.yarn | 4 ++--
    yarns/9000-implements.yarn           | 5 ++++-
    3 files changed, 7 insertions(+), 4 deletions(-)
   
   diff --git a/obnamlib/plugins/show_plugin.py b/obnamlib/plugins/show_plugin.py
   index 31a241a..995a958 100644
   --- a/obnamlib/plugins/show_plugin.py
   +++ b/obnamlib/plugins/show_plugin.py
   @@ -303,7 +303,7 @@ class ShowPlugin(obnamlib.ObnamPlugin):
            elif stat.S_ISCHR(mode):
                mode_str = "CharDev\t"
            elif stat.S_ISFIFO(mode):
   -            mode_str = "FIFO"
   +            mode_str = "FIFO\t"
            elif stat.S_ISSOCK(mode):
                mode_str = "Socket\t"
            else:
   diff --git a/yarns/0300-kdirstat-integration.yarn b/yarns/0300-kdirstat-integration.yarn
   index 695994f..6408908 100644
   --- a/yarns/0300-kdirstat-integration.yarn
   +++ b/yarns/0300-kdirstat-integration.yarn
   @@ -15,7 +15,7 @@ file.
        WHEN user U backs up directory L to repository R
        AND user U creates a kdirstat cache file C of repository R
        THEN first line of C matches [kdirstat 4.0 cache file]
   -    AND for each file in directory L a line in the kdircache C matches it
   +    AND for each entry in directory L a line in the kdircache C matches it
    
    Now a backup containing some interesting objects
    
   @@ -25,7 +25,7 @@ Now a backup containing some interesting objects
        WHEN user U backs up directory L to repository R
        AND user U creates a kdirstat cache file C of repository R
        THEN first line of C matches [kdirstat 4.0 cache file]
   -    AND for each file in directory L a line in the kdircache C matches it
   +    AND for each entry in directory L a line in the kdircache C matches it
    
    Validating the cache file
    -------------------------
   diff --git a/yarns/9000-implements.yarn b/yarns/9000-implements.yarn
   index 1d898d7..e77b785 100644
   --- a/yarns/9000-implements.yarn
   +++ b/yarns/9000-implements.yarn
   @@ -773,7 +773,10 @@ Check that the cache mentions each file in the repository. Since grep
    -E cannot specifically match a tab we check only for one character of
    whitespace.
    
   -    IMPLEMENTS THEN for each file in directory (\S+) a line in the kdircache (\S+) matches it
   +    IMPLEMENTS THEN for each entry in directory (\S+) a line in the kdircache (\S+) matches it
        find "$DATADIR/$MATCH_1" -type f | while read f ; do \
            grep -E -e "^F[[:space:]]$f" "$DATADIR/$MATCH_2" || exit 1; \
        done
   +    find "$DATADIR/$MATCH_1" -type p | while read p ; do \
   +        grep -E -e "^FIFO[[:space:]]$p" "$DATADIR/$MATCH_2" || exit 1; \
   +    done