~ubuntu-branches/ubuntu/utopic/coreutils/utopic-proposed

« back to all changes in this revision

Viewing changes to tests/split/r-chunk.sh

  • Committer: Package Import Robot
  • Author(s): Colin Watson
  • Date: 2012-11-28 03:03:42 UTC
  • mfrom: (8.3.4 sid)
  • Revision ID: package-import@ubuntu.com-20121128030342-21zanj8354gas5gr
Tags: 8.20-3ubuntu1
* Resynchronise with Debian.  Remaining changes:
  - Make 'uname -i -p' return the real processor/hardware, instead of
    unknown.
  - Build-depend on gettext:any instead of on gettext, so that apt-get can
    properly resolve build-dependencies on the tool when cross-building.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
# test splitting into round-robin chunks
 
3
 
 
4
# Copyright (C) 2010-2012 Free Software Foundation, Inc.
 
5
 
 
6
# This program is free software: you can redistribute it and/or modify
 
7
# it under the terms of the GNU General Public License as published by
 
8
# the Free Software Foundation, either version 3 of the License, or
 
9
# (at your option) any later version.
 
10
 
 
11
# This program is distributed in the hope that it will be useful,
 
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
# GNU General Public License for more details.
 
15
 
 
16
# You should have received a copy of the GNU General Public License
 
17
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
18
 
 
19
. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
 
20
print_ver_ split
 
21
 
 
22
require_ulimit_
 
23
 
 
24
# N can be greater than the file size
 
25
# in which case no data is extracted, or empty files are written
 
26
split -n r/10 /dev/null || fail=1
 
27
test "$(stat -c %s x* | uniq -c | sed 's/^ *//; s/ /x/')" = "10x0" || fail=1
 
28
rm x??
 
29
 
 
30
# Ensure --elide-empty-files is honored
 
31
split -e -n r/10 /dev/null || fail=1
 
32
stat x?? 2>/dev/null && fail=1
 
33
 
 
34
printf '1\n2\n3\n4\n5\n' > in || framework_failure_
 
35
 
 
36
split -n r/3 in > out || fail=1
 
37
test -s out && fail=1
 
38
 
 
39
split -n r/1/3 in > r1 || fail=1
 
40
split -n r/2/3 in > r2 || fail=1
 
41
split -n r/3/3 in > r3 || fail=1
 
42
 
 
43
printf '1\n4\n' > exp-1
 
44
printf '2\n5\n' > exp-2
 
45
printf '3\n' > exp-3
 
46
 
 
47
compare exp-1 xaa || fail=1
 
48
compare exp-2 xab || fail=1
 
49
compare exp-3 xac || fail=1
 
50
compare exp-1 r1 || fail=1
 
51
compare exp-2 r2 || fail=1
 
52
compare exp-3 r3 || fail=1
 
53
test -f xad && fail=1
 
54
 
 
55
# Test input without trailing \n
 
56
printf '1\n2\n3\n4\n5' | split -n r/2/3 > out
 
57
printf '2\n5' > exp
 
58
compare exp out || fail=1
 
59
 
 
60
# Ensure we fall back to appending to a file at a time
 
61
# if we hit the limit for the number of open files.
 
62
rm x*
 
63
(ulimit -n 20 && yes | head -n90 | split -n r/30 ) || fail=1
 
64
test "$(stat -c %s x* | uniq -c | sed 's/^ *//; s/ /x/')" = "30x6" || fail=1
 
65
 
 
66
Exit $fail