Add support of coverage test

master
Marko Semet 2020-06-14 22:35:27 +02:00
parent 5235002a2f
commit 38417fa286
1 changed files with 32 additions and 17 deletions

View File

@ -396,24 +396,39 @@ public
private
{
size_t test_size(string FORMAT)()
{
size_t result = BaseFormat!FORMAT.size();
{
auto tmp = parse_string(FORMAT);
size_t calced = 0;
foreach(i; tmp)
{
calced += i.packSize();
}
assert(result == calced);
}
return result;
}
unittest
{
assert(BaseFormat!"10s".size() == 10);
assert(BaseFormat!"b".size() == 1);
assert(BaseFormat!"4b".size() == 4);
assert(BaseFormat!"B".size() == 1);
assert(BaseFormat!"4B".size() == 4);
assert(BaseFormat!"h".size() == 2);
assert(BaseFormat!"4h".size() == 8);
assert(BaseFormat!"H".size() == 2);
assert(BaseFormat!"4H".size() == 8);
assert(BaseFormat!"i".size() == 4);
assert(BaseFormat!"4i".size() == 16);
assert(BaseFormat!"I".size() == 4);
assert(BaseFormat!"4I".size() == 16);
assert(BaseFormat!"q".size() == 8);
assert(BaseFormat!"4q".size() == 32);
assert(BaseFormat!"Q".size() == 8);
assert(BaseFormat!"4Q".size() == 32);
assert(test_size!"10s"() == 10);
assert(test_size!"b"() == 1);
assert(test_size!"4b"() == 4);
assert(test_size!"B"() == 1);
assert(test_size!"4B"() == 4);
assert(test_size!"h"() == 2);
assert(test_size!"4h"() == 8);
assert(test_size!"H"() == 2);
assert(test_size!"4H"() == 8);
assert(test_size!"i"() == 4);
assert(test_size!"4i"() == 16);
assert(test_size!"I"() == 4);
assert(test_size!"4I"() == 16);
assert(test_size!"q"() == 8);
assert(test_size!"4q"() == 32);
assert(test_size!"Q"() == 8);
assert(test_size!"4Q"() == 32);
}
}