shlist

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

commit 63b929e0d6648206b2284f28762aec2e3452376c
parent e5a3bee46bd3b010d3389d6cc048fed185279fc8
Author: kyle <kyle@0x30.net>
Date:   Sat, 16 Jan 2016 10:26:28 -0700

tests: add new zero_payload test

- test sends a 0 sized payload to all message types
- depending on the message type, we get back 1 of 2 possible errors

Diffstat:
Aserver/tests/zero_payload/Makefile | 1+
Aserver/tests/zero_payload/server.log.good | 13+++++++++++++
Aserver/tests/zero_payload/test.pl | 31+++++++++++++++++++++++++++++++
3 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/server/tests/zero_payload/Makefile b/server/tests/zero_payload/Makefile @@ -0,0 +1 @@ +include ../test.mk diff --git a/server/tests/zero_payload/server.log.good b/server/tests/zero_payload/server.log.good @@ -0,0 +1,13 @@ +new connection (pid = <digits>) +ssl ok, ver = 'TLSv1_2' cipher = 'ECDHE-RSA-AES128-SHA256' +device_add: got 0 fields, expected 2 +friend_add: got 0 fields, expected 2 +friend_delete: got 0 fields, expected 2 +list_add: got 0 fields, expected 4 +list_join: got 0 fields, expected 2 +list_leave: got 0 fields, expected 2 +lists_get: unknown device <digits> +lists_get_other: unknown device <digits> +list_items_get: got 0 fields, expected 2 +list_item_add: got 0 fields, expected 1 +disconnected! diff --git a/server/tests/zero_payload/test.pl b/server/tests/zero_payload/test.pl @@ -0,0 +1,31 @@ +#!/usr/bin/perl -I../ +use strict; +use warnings; +use client; +use test; + +require '../msgs.pl'; +our (@msg_str); + +# Create new device, turn off automatic device_add +my $A = client->new(1); + +# Send size zero payload to all message types +for (@msg_str) { + $A->set_msg_type($_); + $A->send_msg(''); + my $response = $A->recv_msg(); + + my ($status, $err_str) = split("\0", $response, 2); + fail "unexpected status '$status'" if ($status ne 'err'); + + # Depending on the number of expected arguments, an empty message can be + # either the wrong number of arguments (because no '\0' was sent) or an + # unknown device id (for messages expecting 1 argument) + my $good1 = 'the wrong number of message arguments were sent'; + my $good2 = 'the client sent an unknown device id'; + + next if ($err_str eq $good1 || $err_str eq $good2); + + fail "expected either '$good1' or '$good2', instead got '$err_str'"; +}