mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-05-24 03:06:46 +02:00
sort: Fix bug where --batch-size option shrank SORT_SIZE.
* src/sort.c (specify_nmerge, main): Only adjust SORT_SIZE if it's already set. * tests/misc/sort-merge: Test bug fix.
This commit is contained in:
committed by
Jim Meyering
parent
2c88abe2a2
commit
02bfd65480
+6
-8
@@ -1105,14 +1105,7 @@ specify_nmerge (int oi, char c, char const *s)
|
||||
e = LONGINT_OVERFLOW;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Need to re-check that we meet the minimum
|
||||
requirement for memory usage with the new,
|
||||
potentially larger, nmerge. */
|
||||
sort_size = MAX (sort_size, MIN_SORT_SIZE);
|
||||
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3320,6 +3313,11 @@ main (int argc, char **argv)
|
||||
files = −
|
||||
}
|
||||
|
||||
/* Need to re-check that we meet the minimum requirement for memory
|
||||
usage with the final value for NMERGE. */
|
||||
if (0 < sort_size)
|
||||
sort_size = MAX (sort_size, MIN_SORT_SIZE);
|
||||
|
||||
if (checkonly)
|
||||
{
|
||||
if (nfiles > 1)
|
||||
|
||||
@@ -27,6 +27,8 @@ my $prog = 'sort';
|
||||
# three empty files and one that says 'foo'
|
||||
my @inputs = (+(map{{IN=> {"empty$_"=> ''}}}1..3), {IN=> {foo=> "foo\n"}});
|
||||
|
||||
my $big_input = "aaa\n" x 1024;
|
||||
|
||||
# don't need to check for existence, since we're running in a temp dir
|
||||
my $badtmp = 'does/not/exist';
|
||||
|
||||
@@ -66,6 +68,11 @@ my @Tests =
|
||||
['nmerge-no', "-m --batch-size=2 -T$badtmp", @inputs,
|
||||
{ERR_SUBST=>"s|: $badtmp/sort.+||"},
|
||||
{ERR=>"$prog: cannot create temporary file\n"}, {EXIT=>2}],
|
||||
|
||||
# This used to fail because setting batch-size without also setting
|
||||
# buffer size would cause the buffer size to be set to the minimum.
|
||||
['batch-size', "--batch-size=16 -T$badtmp", {IN=> {big=> $big_input}},
|
||||
{OUT=>$big_input}],
|
||||
);
|
||||
|
||||
my $save_temps = $ENV{DEBUG};
|
||||
|
||||
Reference in New Issue
Block a user