Merge pull request #222 from Geod24/changelog
Cleanup deprecations in test-suite and update release notes
This commit is contained in:
commit
e04258a7d8
15
CHANGELOG.md
15
CHANGELOG.md
|
@ -1,3 +1,18 @@
|
|||
1.9.4 - 2020-08-21
|
||||
==================
|
||||
|
||||
- Add optional timeout parameter to resolveHost - [pull #220][issue220]
|
||||
- Fix exclusion list to properly exclude broken LDC releases - [pull #221][issue221]
|
||||
- Workaround dub build by using `--single` in the test - [pull #223][issue223]
|
||||
- Cleanup deprecations in test-suite and update release notes - [pull #222][issue222]
|
||||
|
||||
|
||||
[issue220]: https://github.com/vibe-d/vibe-core/issues/220
|
||||
[issue221]: https://github.com/vibe-d/vibe-core/issues/221
|
||||
[issue222]: https://github.com/vibe-d/vibe-core/issues/222
|
||||
[issue223]: https://github.com/vibe-d/vibe-core/issues/223
|
||||
|
||||
|
||||
1.9.3 - 2020-08-02
|
||||
==================
|
||||
|
||||
|
|
|
@ -1,9 +1,14 @@
|
|||
import vibe.core.core : runApplication;
|
||||
import vibe.core.log;
|
||||
import vibe.core.net : listenTCP;
|
||||
import vibe.core.stream : pipe;
|
||||
|
||||
void main()
|
||||
{
|
||||
listenTCP(7000, (conn) { pipe(conn, conn); });
|
||||
listenTCP(7000, (conn) @safe nothrow {
|
||||
try pipe(conn, conn);
|
||||
catch (Exception e)
|
||||
logError("Error: %s", e.msg);
|
||||
});
|
||||
runApplication();
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ void test1()
|
|||
Test test;
|
||||
Task lt;
|
||||
|
||||
auto l = listenTCP(0, (conn) {
|
||||
auto l = listenTCP(0, (conn) @safe nothrow {
|
||||
lt = Task.getThis();
|
||||
try {
|
||||
while (!conn.empty) {
|
||||
|
@ -111,7 +111,7 @@ void test2()
|
|||
{
|
||||
Task lt;
|
||||
logInfo("Perform test \"disconnect with pending data\"");
|
||||
auto l = listenTCP(0, (conn) {
|
||||
auto l = listenTCP(0, (conn) @safe nothrow {
|
||||
try {
|
||||
lt = Task.getThis();
|
||||
sleep(1.seconds);
|
||||
|
@ -156,13 +156,13 @@ void main()
|
|||
runEventLoop();
|
||||
}
|
||||
|
||||
string readLine(TCPConnection c)
|
||||
string readLine(TCPConnection c) @safe
|
||||
{
|
||||
import std.string : indexOf;
|
||||
|
||||
string ret;
|
||||
while (!c.empty) {
|
||||
auto buf = cast(char[])c.peek();
|
||||
auto buf = () @trusted { return cast(char[])c.peek(); }();
|
||||
auto idx = buf.indexOf('\n');
|
||||
if (idx < 0) {
|
||||
ret ~= buf;
|
||||
|
@ -176,7 +176,7 @@ string readLine(TCPConnection c)
|
|||
return ret;
|
||||
}
|
||||
|
||||
string readAll(TCPConnection c)
|
||||
string readAll(TCPConnection c) @safe
|
||||
{
|
||||
import std.algorithm.comparison : min;
|
||||
|
||||
|
@ -186,5 +186,5 @@ string readAll(TCPConnection c)
|
|||
ret.length += len;
|
||||
c.read(ret[$-len .. $]);
|
||||
}
|
||||
return cast(string)ret;
|
||||
return () @trusted { return cast(string) ret; }();
|
||||
}
|
||||
|
|
|
@ -49,38 +49,47 @@ void runTest()
|
|||
import std.socket : AddressFamily;
|
||||
|
||||
// server for a simple line based protocol
|
||||
auto l1 = listenTCP(0, (client) {
|
||||
while (!client.empty) {
|
||||
auto ln = client.readLine();
|
||||
if (ln == "quit") {
|
||||
client.write("Bye bye!\n");
|
||||
client.close();
|
||||
break;
|
||||
}
|
||||
auto l1 = listenTCP(0, (client) @safe nothrow {
|
||||
try
|
||||
{
|
||||
while (!client.empty) {
|
||||
auto ln = client.readLine();
|
||||
if (ln == "quit") {
|
||||
client.write("Bye bye!\n");
|
||||
client.close();
|
||||
break;
|
||||
}
|
||||
|
||||
client.write(format("Hash: %08X\n", typeid(string).getHash(&ln)));
|
||||
client.write(format("Hash: %08X\n",
|
||||
() @trusted { return typeid(string).getHash(&ln); }()));
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
assert(0, e.msg);
|
||||
}, "127.0.0.1");
|
||||
scope (exit) l1.stopListening;
|
||||
|
||||
// proxy server
|
||||
auto l2 = listenTCP(0, (client) {
|
||||
auto server = connectTCP(l1.bindAddress);
|
||||
auto l2 = listenTCP(0, (client) @safe nothrow {
|
||||
try {
|
||||
auto server = connectTCP(l1.bindAddress);
|
||||
|
||||
// pipe server to client as long as the server connection is alive
|
||||
auto t = runTask!(TCPConnection, TCPConnection)((client, server) {
|
||||
scope (exit) client.close();
|
||||
pipe(server, client);
|
||||
logInfo("Proxy 2 out");
|
||||
}, client, server);
|
||||
// pipe server to client as long as the server connection is alive
|
||||
auto t = runTask!(TCPConnection, TCPConnection)((client, server) {
|
||||
scope (exit) client.close();
|
||||
pipe(server, client);
|
||||
logInfo("Proxy 2 out");
|
||||
}, client, server);
|
||||
|
||||
// pipe client to server as long as the client connection is alive
|
||||
scope (exit) {
|
||||
server.close();
|
||||
t.join();
|
||||
}
|
||||
pipe(client, server);
|
||||
logInfo("Proxy out");
|
||||
// pipe client to server as long as the client connection is alive
|
||||
scope (exit) {
|
||||
server.close();
|
||||
t.join();
|
||||
}
|
||||
pipe(client, server);
|
||||
logInfo("Proxy out");
|
||||
} catch (Exception e)
|
||||
assert(0, e.msg);
|
||||
}, "127.0.0.1");
|
||||
scope (exit) l2.stopListening;
|
||||
|
||||
|
@ -112,13 +121,13 @@ int main()
|
|||
return ret;
|
||||
}
|
||||
|
||||
string readLine(TCPConnection c)
|
||||
string readLine(TCPConnection c) @safe
|
||||
{
|
||||
import std.string : indexOf;
|
||||
|
||||
string ret;
|
||||
while (!c.empty) {
|
||||
auto buf = cast(char[])c.peek();
|
||||
auto buf = () @trusted { return cast(char[])c.peek(); }();
|
||||
auto idx = buf.indexOf('\n');
|
||||
if (idx < 0) {
|
||||
ret ~= buf;
|
||||
|
@ -131,4 +140,3 @@ string readLine(TCPConnection c)
|
|||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ void runTest()
|
|||
scope(exit) rmdirRecurse(dir);
|
||||
|
||||
DirectoryWatcher watcher;
|
||||
try watcher = Path(dir).watchDirectory(No.recursive);
|
||||
try watcher = NativePath(dir).watchDirectory(No.recursive);
|
||||
catch (AssertError e) {
|
||||
logInfo("DirectoryWatcher not yet implemented. Skipping test.");
|
||||
return;
|
||||
|
@ -43,7 +43,7 @@ void runTest()
|
|||
auto foo = dir.buildPath("foo");
|
||||
|
||||
alias Type = DirectoryChangeType;
|
||||
static DirectoryChange dc(Type t, string p) { return DirectoryChange(t, Path(p)); }
|
||||
static DirectoryChange dc(Type t, string p) { return DirectoryChange(t, NativePath(p)); }
|
||||
void check(DirectoryChange[] expected)
|
||||
{
|
||||
sleep(sleepTime);
|
||||
|
@ -73,7 +73,7 @@ void runTest()
|
|||
write(bar, null);
|
||||
assert(!watcher.readChanges(changes, 100.msecs));
|
||||
remove(bar);
|
||||
watcher = Path(dir).watchDirectory(Yes.recursive);
|
||||
watcher = NativePath(dir).watchDirectory(Yes.recursive);
|
||||
write(foo, null);
|
||||
sleep(sleepTime);
|
||||
write(foo, [0, 1]);
|
||||
|
|
|
@ -11,16 +11,20 @@ import core.time : msecs;
|
|||
|
||||
void main()
|
||||
{
|
||||
auto l = listenTCP(0, (conn) {
|
||||
auto td = runTask!TCPConnection((conn) {
|
||||
ubyte [3] buf;
|
||||
try {
|
||||
conn.read(buf);
|
||||
assert(false, "Expected read() to throw an exception.");
|
||||
} catch (Exception) {} // expected
|
||||
}, conn);
|
||||
sleep(10.msecs);
|
||||
conn.close();
|
||||
auto l = listenTCP(0, (conn) @safe nothrow {
|
||||
try {
|
||||
auto td = runTask!TCPConnection((conn) {
|
||||
ubyte [3] buf;
|
||||
try {
|
||||
conn.read(buf);
|
||||
assert(false, "Expected read() to throw an exception.");
|
||||
} catch (Exception) {} // expected
|
||||
}, conn);
|
||||
sleep(10.msecs);
|
||||
conn.close();
|
||||
}
|
||||
catch (Exception e)
|
||||
assert(0, e.msg);
|
||||
}, "127.0.0.1");
|
||||
|
||||
runTask({
|
||||
|
|
|
@ -14,7 +14,7 @@ ubyte[] buf;
|
|||
|
||||
void performTest(bool reverse)
|
||||
{
|
||||
auto l = listenTCP(11375, (conn) {
|
||||
auto l = listenTCP(11375, (conn) @safe nothrow {
|
||||
bool read_ex = false;
|
||||
bool write_ex = false;
|
||||
auto rt = runTask!TCPConnection((conn) {
|
||||
|
@ -43,8 +43,11 @@ void performTest(bool reverse)
|
|||
} // expected
|
||||
}, conn);
|
||||
|
||||
rt.join();
|
||||
wt.join();
|
||||
try {
|
||||
rt.join();
|
||||
wt.join();
|
||||
} catch (Exception e)
|
||||
assert(0, e.msg);
|
||||
assert(read_ex, "No read exception thrown");
|
||||
assert(write_ex, "No write exception thrown");
|
||||
logInfo("Test has finished successfully.");
|
||||
|
|
Loading…
Reference in a new issue