coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

no test suite addition [was: ls --color is uninterruptible with ctrl+c


From: Jim Meyering
Subject: no test suite addition [was: ls --color is uninterruptible with ctrl+c
Date: Thu, 08 Dec 2011 13:02:59 +0100

Jim Meyering wrote:
...
> Subject: [PATCH] ls: be responsive to interrupts when color-listing large
>  directories
>
> Starting with commit adc30a83, when using --color, ls inhibited
> interrupts to avoid corrupting the state of an output terminal.
> However, for very large directories, that inhibition rendered ls
> uninterruptible for too long, including a potentially long period
> even before any output is generated.
...
> ---
>  NEWS      |    3 +++
>  THANKS.in |    1 +
>  src/ls.c  |    7 ++++++-

Note the lack of a test suite addition.

In coreutils development, the requirement for a test suite
addition for each bug fix is well established.  However, in this
case, it's clear that testing this fix portably would be a big job.

One possibility is to run "ls --color big-dir" under expect or some
perl/python equivalent, where big-dir has enough entries that we have
a good chance of detecting the "big-dir:" output and then sending
an interrupt before the following readdir loop completes.  Making that
work on everything from spinning rust to SSDs and tmpfs might be hard.

While Pádraig and I were chatting about this, he realized that it'd be
feasible to test if we had a FUSE-based file system for which readdir
is consistently slow, e.g., with a brief sleep.  Then we could
enlarge the window with a moderately-sized directory and still
be able to generate (w/high probability) an interrupt while the
readdir loop is still running.

There are even perl- and python-driven FUSE implementations:

 http://cpansearch.perl.org/src/NOSEYNICK/Fuse-Simple-1.00/README
 http://sourceforge.net/apps/mediawiki/fuse/index.php?title=FUSE_Python_tutorial

A minor caveat with that approach is that the test would have to be run
as root, or as member of a group that can mount the target file system.

If anyone can think of an easier way to reliably script a test for this,
please let us know.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]