Annotate

spec/core_configmanager_spec.lua @ 11665:148075532021

net.server_epoll: Prevent stack overflow of opportunistic writes net.http.files serving a big enough file on a fast enough connection with opportunistic_writes enabled could trigger a stack overflow through repeatedly serving more data that immediately gets sent, draining the buffer and triggering more data to be sent. This also blocked the server on a single task until completion or an error. This change prevents nested opportunistic writes, which should prevent the stack overflow, at the cost of reduced download speed, but this is unlikely to be noticeable outside of Gbit networks. Speed at the cost of blocking other processing is not worth it, especially with the risk of stack overflow.
author Kim Alvefur <zash@zash.se>
date Sun, 11 Jul 2021 09:39:21 +0200
parent 10495:8ea685ec0979
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
1
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
2 local configmanager = require "core.configmanager";
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
3
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
4 describe("core.configmanager", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
5 describe("#get()", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
6 it("should work", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
7 configmanager.set("example.com", "testkey", 123);
9168
29de7ad20250 spec: Correct order of arguments to asserts in configmanager tests
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
8 assert.are.equal(123, configmanager.get("example.com", "testkey"), "Retrieving a set key");
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
9
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
10 configmanager.set("*", "testkey1", 321);
9168
29de7ad20250 spec: Correct order of arguments to asserts in configmanager tests
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
11 assert.are.equal(321, configmanager.get("*", "testkey1"), "Retrieving a set global key");
10495
8ea685ec0979 configmanager tests: Split long line
Matthew Wild <mwild1@gmail.com>
parents: 9168
diff changeset
12 assert.are.equal(321, configmanager.get("example.com", "testkey1"),
8ea685ec0979 configmanager tests: Split long line
Matthew Wild <mwild1@gmail.com>
parents: 9168
diff changeset
13 "Retrieving a set key of undefined host, of which only a globally set one exists"
8ea685ec0979 configmanager tests: Split long line
Matthew Wild <mwild1@gmail.com>
parents: 9168
diff changeset
14 );
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
15
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
16 configmanager.set("example.com", ""); -- Creates example.com host in config
9168
29de7ad20250 spec: Correct order of arguments to asserts in configmanager tests
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
17 assert.are.equal(321, configmanager.get("example.com", "testkey1"), "Retrieving a set key, of which only a globally set one exists");
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
18
9168
29de7ad20250 spec: Correct order of arguments to asserts in configmanager tests
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
19 assert.are.equal(nil, configmanager.get(), "No parameters to get()");
29de7ad20250 spec: Correct order of arguments to asserts in configmanager tests
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
20 assert.are.equal(nil, configmanager.get("undefined host"), "Getting for undefined host");
29de7ad20250 spec: Correct order of arguments to asserts in configmanager tests
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
21 assert.are.equal(nil, configmanager.get("undefined host", "undefined key"), "Getting for undefined host & key");
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
22 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
23 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
24
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
25 describe("#set()", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
26 it("should work", function()
9168
29de7ad20250 spec: Correct order of arguments to asserts in configmanager tests
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
27 assert.are.equal(false, configmanager.set("*"), "Set with no key");
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
28
9168
29de7ad20250 spec: Correct order of arguments to asserts in configmanager tests
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
29 assert.are.equal(true, configmanager.set("*", "set_test", "testkey"), "Setting a nil global value");
29de7ad20250 spec: Correct order of arguments to asserts in configmanager tests
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
30 assert.are.equal(true, configmanager.set("*", "set_test", "testkey", 123), "Setting a global value");
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
31 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
32 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
33 end);