curl/tests/data/test1148
Jay Satiro 17c18fbc30 test1148: tolerate progress updates better (again)
- Ignore intermediate progress updates.

- Support locales that use a character other than period as decimal
  separator (eg 100,0%).

test1148 checks that the progress finishes at 100% and has the right
bar width. Prior to this change the test assumed that the only progress
reported for such a quick transfer was 100%, however in rare instances
(like in the CI where transfer time can slow considerably) there may be
intermediate updates. For example, below is stderrlog1148 from a failed
CI run with explicit \r and \n added (it is one line; broken up so that
it's easier to understand).

\r
\r##################################                                        48.3%
\r######################################################################## 100.0%
\n

Closes https://github.com/curl/curl/pull/5194
2020-04-11 02:51:50 -04:00

70 lines
1.1 KiB
Plaintext

<testcase>
<info>
<keywords>
HTTP
progressbar
</keywords>
</info>
#
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 60
Connection: close
Content-Type: text/html
Funny-head: yesyes
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
progress-bar
</name>
<command>
http://%HOSTIP:%HTTPPORT/1148 -# --stderr log/stderrlog1148
</command>
<setenv>
LC_ALL=
LC_NUMERIC=en_US.UTF-8
</setenv>
</client>
#
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1148 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
# Check that the progress finished at 100% and has the right bar width.
# Note the dot in 100.0% is regex to match any character since different
# locales use different separators.
<file name="log/stderrlog1148" mode="text">
correct
</file>
<stripfile>
s/.*\r#{72} 100.0%/correct/
</stripfile>
</verify>
</testcase>