summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2018-04-01 10:34:18 +0200
committerEugen Wissner <belka@caraus.de>2018-04-01 10:34:18 +0200
commita0ac8355f9adc1dbb211d516383b57868773ac61 (patch)
tree7b319cc90b15713b9743f4d9cb7f899fd3ce6547
parent9b1f72472f528846c5e09c5fb4d87e415457dce4 (diff)
downloadtanya-a0ac8355f9adc1dbb211d516383b57868773ac61.tar.gz
Fix #29
-rw-r--r--source/tanya/container/array.d157
-rw-r--r--source/tanya/container/buffer.d88
-rw-r--r--source/tanya/net/inet.d10
-rw-r--r--source/tanya/net/package.d2
-rw-r--r--source/tanya/net/uri.d3
5 files changed, 128 insertions, 132 deletions
diff --git a/source/tanya/container/array.d b/source/tanya/container/array.d
index a6c4d24..c2ac0ac 100644
--- a/source/tanya/container/array.d
+++ b/source/tanya/container/array.d
@@ -279,7 +279,7 @@ struct Array(T)
}
///
- @trusted @nogc unittest
+ @nogc nothrow pure @safe unittest
{
auto v1 = Array!int([1, 2, 3]);
auto v2 = Array!int(v1);
@@ -291,19 +291,6 @@ struct Array(T)
assert(v3.capacity == 3);
}
- private @trusted @nogc unittest // const constructor tests
- {
- auto v1 = const Array!int([1, 2, 3]);
- auto v2 = Array!int(v1);
- assert(v1.data !is v2.data);
- assert(v1 == v2);
-
- auto v3 = const Array!int(Array!int([1, 2, 3]));
- assert(v1 == v3);
- assert(v3.length == 3);
- assert(v3.capacity == 3);
- }
-
/**
* Creates a new $(D_PSYMBOL Array).
*
@@ -339,7 +326,7 @@ struct Array(T)
}
///
- unittest
+ @nogc nothrow pure @safe unittest
{
auto v = Array!int([3, 8, 2]);
@@ -349,7 +336,7 @@ struct Array(T)
}
///
- unittest
+ @nogc nothrow pure @safe unittest
{
auto v = Array!int(3, 5);
@@ -358,11 +345,6 @@ struct Array(T)
assert(v[0] == 5 && v[1] == 5 && v[2] == 5);
}
- @safe unittest
- {
- auto v1 = Array!int(defaultAllocator);
- }
-
/**
* Destroys this $(D_PSYMBOL Array).
*/
@@ -392,7 +374,7 @@ struct Array(T)
}
///
- unittest
+ @nogc nothrow pure @safe unittest
{
auto v = Array!int([18, 20, 15]);
v.clear();
@@ -409,7 +391,7 @@ struct Array(T)
}
///
- @safe @nogc unittest
+ @nogc nothrow pure @safe unittest
{
auto v = Array!int(4);
assert(v.capacity == 4);
@@ -461,7 +443,7 @@ struct Array(T)
}
///
- unittest
+ @nogc nothrow pure @safe unittest
{
Array!int v;
@@ -529,7 +511,7 @@ struct Array(T)
}
///
- @nogc @safe unittest
+ @nogc nothrow pure @safe unittest
{
Array!int v;
assert(v.capacity == 0);
@@ -564,7 +546,7 @@ struct Array(T)
}
///
- @nogc @safe unittest
+ @nogc nothrow pure @safe unittest
{
Array!int v;
assert(v.capacity == 0);
@@ -629,7 +611,7 @@ struct Array(T)
}
///
- unittest
+ @nogc nothrow pure @safe unittest
{
auto v = Array!int([5, 18, 17]);
@@ -674,7 +656,7 @@ struct Array(T)
}
///
- @safe @nogc unittest
+ @nogc nothrow pure @safe unittest
{
auto v = Array!int([5, 18, 17, 2, 4, 6, 1]);
@@ -759,7 +741,7 @@ struct Array(T)
alias insert = insertBack;
///
- unittest
+ @nogc nothrow pure @safe unittest
{
struct TestRange
{
@@ -927,7 +909,7 @@ struct Array(T)
}
///
- unittest
+ @nogc nothrow pure unittest
{
Array!int v1;
v1.insertAfter(v1[], [2, 8]);
@@ -963,7 +945,7 @@ struct Array(T)
}
///
- unittest
+ @nogc nothrow pure unittest
{
Array!int v1;
v1.insertBefore(v1[], [2, 8]);
@@ -1022,7 +1004,7 @@ struct Array(T)
}
///
- nothrow @safe @nogc unittest
+ @nogc nothrow pure @safe unittest
{
Array!int a = Array!int(1);
a[0] = 5;
@@ -1052,7 +1034,7 @@ struct Array(T)
}
///
- @nogc unittest
+ @nogc nothrow pure @safe unittest
{
auto v1 = Array!int([12, 1, 7]);
@@ -1101,7 +1083,7 @@ struct Array(T)
}
///
- unittest
+ @nogc nothrow pure @safe unittest
{
const v1 = Array!int([6, 123, 34, 5]);
@@ -1156,7 +1138,7 @@ struct Array(T)
}
///
- unittest
+ @nogc nothrow pure @safe unittest
{
Array!int v1, v2;
assert(v1 == v2);
@@ -1191,7 +1173,7 @@ struct Array(T)
}
///
- @safe unittest
+ @nogc nothrow pure @safe unittest
{
auto v = Array!int([5]);
@@ -1218,7 +1200,7 @@ struct Array(T)
}
///
- unittest
+ @nogc nothrow pure @safe unittest
{
auto v = Array!int([5]);
@@ -1263,16 +1245,7 @@ struct Array(T)
}
///
- unittest
- {
- Array!int v;
- auto r = v[];
- assert(r.length == 0);
- assert(r.empty);
- }
-
- ///
- unittest
+ @nogc nothrow pure @safe unittest
{
auto v = Array!int([1, 2, 3]);
auto r = v[];
@@ -1290,7 +1263,7 @@ struct Array(T)
}
///
- unittest
+ @nogc nothrow pure @safe unittest
{
auto v = Array!int([1, 2, 3, 4]);
auto r = v[1 .. 4];
@@ -1363,7 +1336,7 @@ struct Array(T)
}
///
- @nogc @safe unittest
+ @nogc nothrow pure @safe unittest
{
auto v1 = Array!int([3, 3, 3]);
auto v2 = Array!int([1, 2]);
@@ -1397,7 +1370,7 @@ struct Array(T)
}
///
- unittest
+ @nogc nothrow pure @safe unittest
{
auto v = Array!int([1, 2, 4]);
auto data = v.get();
@@ -1464,7 +1437,7 @@ struct Array(T)
}
///
- @safe @nogc unittest
+ @nogc nothrow pure @safe unittest
{
auto v1 = const Array!int([5, 15, 8]);
Array!int v2;
@@ -1472,22 +1445,6 @@ struct Array(T)
assert(v1 == v2);
}
- ///
- @safe @nogc unittest
- {
- auto v1 = const Array!int([5, 15, 8]);
- Array!int v2;
- v2 = v1[0 .. 2];
- assert(equal(v1[0 .. 2], v2[]));
- }
-
- // Move assignment.
- private @safe @nogc unittest
- {
- Array!int v1;
- v1 = Array!int([5, 15, 8]);
- }
-
/**
* Assigns a static array.
*
@@ -1503,7 +1460,7 @@ struct Array(T)
}
///
- @safe @nogc unittest
+ @nogc nothrow pure @safe unittest
{
auto v1 = Array!int([5, 15, 8]);
Array!int v2;
@@ -1516,7 +1473,7 @@ struct Array(T)
}
///
-unittest
+@nogc nothrow pure @safe unittest
{
auto v = Array!int([5, 15, 8]);
@@ -1530,7 +1487,7 @@ unittest
assert(r.front == v.front);
}
-@nogc unittest
+@nogc nothrow pure @safe unittest
{
const v1 = Array!int();
const Array!int v2;
@@ -1538,7 +1495,7 @@ unittest
static assert(is(PointerTarget!(typeof(v3.data)) == const(int)));
}
-@nogc unittest
+@nogc nothrow pure @safe unittest
{
// Test that const arrays return usable ranges.
auto v = const Array!int([1, 2, 4]);
@@ -1559,7 +1516,7 @@ unittest
static assert(is(typeof(r2[])));
}
-@nogc unittest
+@nogc nothrow pure @safe unittest
{
Array!int v1;
const Array!int v2;
@@ -1581,18 +1538,18 @@ unittest
assert(!v1[].equal(v2[]));
}
-@nogc unittest
+@nogc nothrow pure @safe unittest
{
struct MutableEqualsStruct
{
- int opEquals(typeof(this) that) @nogc
+ int opEquals(typeof(this) that) @nogc nothrow pure @safe
{
return true;
}
}
struct ConstEqualsStruct
{
- int opEquals(const typeof(this) that) const @nogc
+ int opEquals(const typeof(this) that) const @nogc nothrow pure @safe
{
return true;
}
@@ -1619,18 +1576,18 @@ unittest
assert(v7[].equal(v8[]));
}
-@nogc unittest
+@nogc nothrow pure @safe unittest
{
struct SWithDtor
{
- ~this() @nogc
+ ~this() @nogc nothrow pure @safe
{
}
}
auto v = Array!SWithDtor(); // Destructor can destroy empty arrays.
}
-private unittest
+@nogc nothrow pure @safe unittest
{
class A
{
@@ -1642,7 +1599,7 @@ private unittest
static assert(is(Array!(A*)));
}
-private @safe @nogc unittest
+@nogc nothrow pure @safe unittest
{
auto v = Array!int([5, 15, 8]);
{
@@ -1670,3 +1627,45 @@ private @safe @nogc unittest
assert(i == 0);
}
}
+
+// const constructor tests
+@nogc nothrow pure @safe unittest
+{
+ auto v1 = const Array!int([1, 2, 3]);
+ auto v2 = Array!int(v1);
+ assert(v1.data !is v2.data);
+ assert(v1 == v2);
+
+ auto v3 = const Array!int(Array!int([1, 2, 3]));
+ assert(v1 == v3);
+ assert(v3.length == 3);
+ assert(v3.capacity == 3);
+}
+
+@nogc nothrow pure @safe unittest
+{
+ auto v1 = Array!int(defaultAllocator);
+}
+
+@nogc nothrow pure @safe unittest
+{
+ Array!int v;
+ auto r = v[];
+ assert(r.length == 0);
+ assert(r.empty);
+}
+
+@nogc nothrow pure @safe unittest
+{
+ auto v1 = const Array!int([5, 15, 8]);
+ Array!int v2;
+ v2 = v1[0 .. 2];
+ assert(equal(v1[0 .. 2], v2[]));
+}
+
+// Move assignment
+@nogc nothrow pure @safe unittest
+{
+ Array!int v1;
+ v1 = Array!int([5, 15, 8]);
+}
diff --git a/source/tanya/container/buffer.d b/source/tanya/container/buffer.d
index 5506733..739a280 100644
--- a/source/tanya/container/buffer.d
+++ b/source/tanya/container/buffer.d
@@ -120,7 +120,7 @@ struct ReadBuffer(T = ubyte)
}
///
- unittest
+ @nogc nothrow pure @safe unittest
{
ReadBuffer!ubyte b;
assert(b.capacity == 0);
@@ -165,7 +165,7 @@ struct ReadBuffer(T = ubyte)
}
///
- unittest
+ @nogc nothrow pure unittest
{
ReadBuffer!ubyte b;
size_t numberRead;
@@ -197,7 +197,7 @@ struct ReadBuffer(T = ubyte)
}
///
- unittest
+ @nogc nothrow pure unittest
{
ReadBuffer!ubyte b;
size_t numberRead;
@@ -272,7 +272,7 @@ struct ReadBuffer(T = ubyte)
}
///
- unittest
+ @nogc nothrow pure unittest
{
ReadBuffer!ubyte b;
size_t numberRead;
@@ -293,7 +293,7 @@ struct ReadBuffer(T = ubyte)
mixin DefaultAllocator;
}
-private unittest
+@nogc nothrow pure @safe unittest
{
static assert(is(ReadBuffer!int));
}
@@ -399,7 +399,7 @@ struct WriteBuffer(T = ubyte)
alias opDollar = length;
///
- unittest
+ @nogc nothrow pure unittest
{
auto b = WriteBuffer!ubyte(4);
ubyte[3] buf = [48, 23, 255];
@@ -498,42 +498,6 @@ struct WriteBuffer(T = ubyte)
return this;
}
- ///
- unittest
- {
- auto b = WriteBuffer!ubyte(4);
- ubyte[3] buf = [48, 23, 255];
-
- b ~= buf;
- assert(b.capacity == 4);
- assert(b.buffer_[0] == 48 && b.buffer_[1] == 23 && b.buffer_[2] == 255);
-
- b += 2;
- b ~= buf;
- assert(b.capacity == 4);
- assert(b.buffer_[0] == 23 && b.buffer_[1] == 255
- && b.buffer_[2] == 255 && b.buffer_[3] == 48);
-
- b += 2;
- b ~= buf;
- assert(b.capacity == 8);
- assert(b.buffer_[0] == 23 && b.buffer_[1] == 255
- && b.buffer_[2] == 48 && b.buffer_[3] == 23 && b.buffer_[4] == 255);
- }
-
- ///
- unittest
- {
- auto b = WriteBuffer!ubyte(2);
- ubyte[3] buf = [48, 23, 255];
-
- b ~= buf;
- assert(b.start == 0);
- assert(b.capacity == 4);
- assert(b.ring == 3);
- assert(b.position == 3);
- }
-
/**
* Sets how many bytes were written. It will shrink the buffer
* appropriately. Always call it after $(D_PSYMBOL opIndex).
@@ -607,7 +571,7 @@ struct WriteBuffer(T = ubyte)
}
///
- unittest
+ @nogc nothrow pure unittest
{
auto b = WriteBuffer!ubyte(6);
ubyte[6] buf = [23, 23, 255, 128, 127, 9];
@@ -648,7 +612,7 @@ struct WriteBuffer(T = ubyte)
}
///
- unittest
+ @nogc nothrow pure unittest
{
auto b = WriteBuffer!ubyte(6);
ubyte[6] buf = [23, 23, 255, 128, 127, 9];
@@ -686,7 +650,41 @@ struct WriteBuffer(T = ubyte)
mixin DefaultAllocator;
}
-private unittest
+@nogc nothrow pure @safe unittest
{
static assert(is(typeof(WriteBuffer!int(5))));
}
+
+@nogc nothrow pure unittest
+{
+ auto b = WriteBuffer!ubyte(4);
+ ubyte[3] buf = [48, 23, 255];
+
+ b ~= buf;
+ assert(b.capacity == 4);
+ assert(b.buffer_[0] == 48 && b.buffer_[1] == 23 && b.buffer_[2] == 255);
+
+ b += 2;
+ b ~= buf;
+ assert(b.capacity == 4);
+ assert(b.buffer_[0] == 23 && b.buffer_[1] == 255
+ && b.buffer_[2] == 255 && b.buffer_[3] == 48);
+
+ b += 2;
+ b ~= buf;
+ assert(b.capacity == 8);
+ assert(b.buffer_[0] == 23 && b.buffer_[1] == 255
+ && b.buffer_[2] == 48 && b.buffer_[3] == 23 && b.buffer_[4] == 255);
+}
+
+@nogc nothrow pure unittest
+{
+ auto b = WriteBuffer!ubyte(2);
+ ubyte[3] buf = [48, 23, 255];
+
+ b ~= buf;
+ assert(b.start == 0);
+ assert(b.capacity == 4);
+ assert(b.ring == 3);
+ assert(b.position == 3);
+}
diff --git a/source/tanya/net/inet.d b/source/tanya/net/inet.d
index 86d0af3..91b8110 100644
--- a/source/tanya/net/inet.d
+++ b/source/tanya/net/inet.d
@@ -5,7 +5,7 @@
/**
* Internet utilities.
*
- * Copyright: Eugene Wissner 2016-2017.
+ * Copyright: Eugene Wissner 2016-2018.
* License: $(LINK2 https://www.mozilla.org/en-US/MPL/2.0/,
* Mozilla Public License, v. 2.0).
* Authors: $(LINK2 mailto:info@caraus.de, Eugene Wissner)
@@ -170,7 +170,7 @@ struct NetworkOrder(uint L)
}
///
-pure nothrow @safe @nogc unittest
+@nogc nothrow pure @safe unittest
{
auto networkOrder = NetworkOrder!3(0xae34e2u);
assert(!networkOrder.empty);
@@ -190,8 +190,8 @@ pure nothrow @safe @nogc unittest
assert(networkOrder.empty);
}
-// Static.
-private unittest
+// Static tests
+@nogc nothrow pure @safe unittest
{
static assert(isBidirectionalRange!(NetworkOrder!4));
static assert(isBidirectionalRange!(NetworkOrder!8));
@@ -238,7 +238,7 @@ T toHostOrder(T = size_t, R)(R range)
}
///
-pure nothrow @safe @nogc unittest
+@nogc nothrow pure @safe unittest
{
const value = 0xae34e2u;
auto networkOrder = NetworkOrder!4(value);
diff --git a/source/tanya/net/package.d b/source/tanya/net/package.d
index e387358..b41123f 100644
--- a/source/tanya/net/package.d
+++ b/source/tanya/net/package.d
@@ -5,7 +5,7 @@
/**
* Network programming.
*
- * Copyright: Eugene Wissner 2017.
+ * Copyright: Eugene Wissner 2017-2018.
* License: $(LINK2 https://www.mozilla.org/en-US/MPL/2.0/,
* Mozilla Public License, v. 2.0).
* Authors: $(LINK2 mailto:info@caraus.de, Eugene Wissner)
diff --git a/source/tanya/net/uri.d b/source/tanya/net/uri.d
index 7184f1c..df19b56 100644
--- a/source/tanya/net/uri.d
+++ b/source/tanya/net/uri.d
@@ -5,7 +5,7 @@
/**
* URL parser.
*
- * Copyright: Eugene Wissner 2017.
+ * Copyright: Eugene Wissner 2017-2018.
* License: $(LINK2 https://www.mozilla.org/en-US/MPL/2.0/,
* Mozilla Public License, v. 2.0).
* Authors: $(LINK2 mailto:info@caraus.de, Eugene Wissner)
@@ -460,7 +460,6 @@ struct URL
assertThrown!URIException(() => URL("http://blah.com:66000"));
}
-// Issue 254: https://issues.caraus.io/issues/254.
@nogc pure @system unittest
{
auto u = URL("ftp://");