shlist

share and manage lists between multiple people
Log | Files | Refs

commit 4890b7f6da11d7c56a327b764c37715904e6a6ca
parent 9f44b70683587fa7c72c04a54f33ac6625324409
Author: Kyle Milz <kyle@0x30.net>
Date:   Tue, 26 Jan 2016 22:36:24 -0700

tests: add new test for payloads > 65535 bytes

Diffstat:
Mserver/sl | 6++++++
Aserver/tests/response_too_large/Makefile | 3+++
Aserver/tests/response_too_large/test.pl | 15+++++++++++++++
3 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/server/sl b/server/sl @@ -165,6 +165,12 @@ sub send_msg { my $header_len = 6; my $payload_len = length($payload); + if ($payload_len > 65535) { + my $err = make_error("response too large"); + send_msg($sock, $ver, $msg_type, $err); + return 0; + } + send_all($sock, pack("nnn", $ver, $msg_type, $payload_len), $header_len); send_all($sock, $payload, $payload_len); diff --git a/server/tests/response_too_large/Makefile b/server/tests/response_too_large/Makefile @@ -0,0 +1,3 @@ +DIFF_MOD=none + +include ../test.mk diff --git a/server/tests/response_too_large/test.pl b/server/tests/response_too_large/test.pl @@ -0,0 +1,15 @@ +#!/usr/bin/perl -I../ +use strict; +use warnings; +use client; +use test; + +# Test that a message greater than 65KB doesn't get sent + +my $A = client->new(); +for (1..600) { + $A->list_add($_); +} + +$A->lists_get('err'); +fail_msg_ne 'response too large', $A->get_error();