File: Transfer_-_--remote.test

package info (click to toggle)
pv 1.10.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,076 kB
  • sloc: ansic: 8,421; sh: 6,426; makefile: 131; sed: 16
file content (43 lines) | stat: -rwxr-xr-x 1,449 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/sh
#
# Try changing the format of a transfer remotely.

# Allow all tests to be skipped, e.g. during a release build
test "${SKIP_ALL_TESTS}" = "1" && exit 77

true "${testSubject:?not set - call this from 'make check'}"
true "${workFile1:?not set - call this from 'make check'}"
true "${workFile2:?not set - call this from 'make check'}"
true "${workFile3:?not set - call this from 'make check'}"
true "${workFile4:?not set - call this from 'make check'}"

# Do nothing if it is not supported.
if ! "${testSubject}" -h 2>/dev/null | grep -Eq "^  -R,"; then
	echo "Not supported on this platform"
	exit 77
fi

# Generate a 10MiB test file of null bytes.
dd if=/dev/zero of="${workFile1}" bs=1024 count=10240 2>/dev/null

true > "${workFile4}"
(
# Don't start doing anything until the main transfer process, started below, has begun.
while test -e "${workFile4}" && ! test -s "${workFile4}"; do sleep 0.1; done
sleep 1
"${testSubject}" -R "$(cat "${workFile4}")" -a
sleep 2
"${testSubject}" -R "$(cat "${workFile4}")" -L 10M
) &

"${testSubject}" -L 2M -f -P "${workFile4}" "${workFile1}" > "${workFile2}" 2>"${workFile3}"

# Make sure there is more than one length of line (excluding blank lines).
line_lengths=$(tr '\r' '\n' < "${workFile3}" | awk '{print length($0)}' | grep -Fvx 0 | sort -n | uniq | wc -l | tr -dc '0-9')

if ! test "${line_lengths}" -gt 1; then
	echo "only one line length seen - format change failed"
	exit 1
fi

exit 0