diff options
author | Eric Wong <e@80x24.org> | 2013-11-02 01:00:00 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2013-11-02 01:19:45 +0000 |
commit | 13a09dec6c029e01e8d959b0bf0feb94d72ae32d (patch) | |
tree | 05222cbf7927ce114320beaa0bf5a7a9bb3e676d /test/server_helper.rb | |
parent | 1ffa99f4f8f653fc016affecbe41d91a0b85f90d (diff) | |
download | yahns-13a09dec6c029e01e8d959b0bf0feb94d72ae32d.tar.gz |
When running a static file server, we must account for filesystem activity outside of our control where files may grow/shrink as they're being served. For truncated files, we must abort any persistent connections downloading a truncated file to avoid confusing clients because the Content-Length header was already set to the big value. We also must ensure (we already did so before this commit, this just adds a test for it) we do not send additional data when a file grows on us after we've started sending the response.
Diffstat (limited to 'test/server_helper.rb')
-rw-r--r-- | test/server_helper.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/server_helper.rb b/test/server_helper.rb index 52b08c7..2f9266a 100644 --- a/test/server_helper.rb +++ b/test/server_helper.rb @@ -78,6 +78,20 @@ module ServerHelper Yahns::Server.new(cfg).start.join end end + + def wait_for_full(c) + prev = 0 + prev_time = Time.now + begin + nr = c.nread + break if nr > 0 && nr == prev && (Time.now - prev_time) > 0.5 + if nr != prev + prev = nr + prev_time = Time.now + end + Thread.pass + end while sleep(0.1) + end end module TrywriteBlocked |