aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2018-01-02 13:20:53 -0800
committerGarrett D'Amore <garrett@damore.org>2018-01-02 15:34:44 -0800
commitce681752c44f792feab122cbd846b2407a42da72 (patch)
tree842fc38b7589463d3e07d30f7dadaf5bb3b0064d /tests
parent68f9a47cb836b72e69a69c60938c3728d3a94fe2 (diff)
downloadnng-ce681752c44f792feab122cbd846b2407a42da72.tar.gz
nng-ce681752c44f792feab122cbd846b2407a42da72.tar.bz2
nng-ce681752c44f792feab122cbd846b2407a42da72.zip
fixes #191 Several HTTP problems found
First, httpbin.org was having some high latency (load) earlier today, so we needed to bump the timeout up. Next, this also uncovered a bug where our cancellation of http channels was a bit dodgy. This is changed to be a bit more robust, separating the "current" active http streams (for read or write) into separate tracking variables variables. Also, now cancellation immediately calls the aio finish for those -- there were assumptions elsewhere (expire timeouts) that cancellation caused nni_aio_finish() to be called. Finally there was a use after free bug in the websocket listener code where the listener could be freed while still having outstanding streams waiting to send the websocket reply.
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt6
-rw-r--r--tests/httpclient.c8
2 files changed, 7 insertions, 7 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 5f1a834f..7e855f23 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -3,8 +3,8 @@
# Copyright (c) 2013 GoPivotal, Inc. All rights reserved.
# Copyright (c) 2015-2016 Jack R. Dunaway. All rights reserved.
# Copyright 2016 Franklin "Snaipe" Mathieu <franklinmathieu@gmail.com>
-# Copyright 2017 Garrett D'Amore <garrett@damore.org>
-# Copyright 2017 Capitar IT Group BV <info@capitar.com>
+# Copyright 2018 Garrett D'Amore <garrett@damore.org>
+# Copyright 2018 Capitar IT Group BV <info@capitar.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"),
@@ -137,7 +137,7 @@ add_nng_test(base64 5 NNG_SUPP_BASE64)
add_nng_test(device 5 ON)
add_nng_test(errors 2 ON)
add_nng_test(files 5 ON)
-add_nng_test(httpclient 30 NNG_SUPP_HTTP)
+add_nng_test(httpclient 60 NNG_SUPP_HTTP)
add_nng_test(httpserver 30 NNG_SUPP_HTTP)
add_nng_test(idhash 5 ON)
add_nng_test(inproc 5 NNG_TRANSPORT_INPROC)
diff --git a/tests/httpclient.c b/tests/httpclient.c
index 6ea6fa6e..e377d334 100644
--- a/tests/httpclient.c
+++ b/tests/httpclient.c
@@ -1,6 +1,6 @@
//
-// Copyright 2017 Garrett D'Amore <garrett@damore.org>
-// Copyright 2017 Capitar IT Group BV <info@capitar.com>
+// Copyright 2018 Garrett D'Amore <garrett@damore.org>
+// Copyright 2018 Capitar IT Group BV <info@capitar.com>
//
// This software is supplied under the terms of the MIT License, a
// copy of which should be located in the distribution where this
@@ -40,7 +40,7 @@ TestMain("HTTP Client", {
iaio = (nni_aio *) aio;
iaio->a_addr = &rsa;
- nng_aio_set_timeout(aio, 1000);
+ nng_aio_set_timeout(aio, 20000);
nni_plat_tcp_resolv("httpbin.org", "80", NNG_AF_INET, 0, iaio);
nng_aio_wait(aio);
So(nng_aio_result(aio) == 0);
@@ -83,7 +83,7 @@ TestMain("HTTP Client", {
So(nng_aio_result(aio) == 0);
So(nni_http_res_get_status(res) == 200);
- Convey("The message contents are correct", {
+ Convey("The message contents are correct", {
uint8_t digest[20];
void * data;
const char *cstr;