blob: 4b84bdfd9f2f43754059b2fb192f46fbb1c0439c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/vespalib/testkit/testapp.h>
#include <vespa/messagebus/blob.h>
#include <vespa/messagebus/blobref.h>
using mbus::Blob;
using mbus::BlobRef;
TEST_SETUP(Test);
Blob makeBlob(const char *txt) {
Blob b(strlen(txt) + 1);
strcpy(b.data(), txt);
return b;
}
BlobRef makeBlobRef(const Blob &b) {
return BlobRef(b.data(), b.size());
}
Blob returnBlob(Blob b) {
return b;
}
BlobRef returnBlobRef(BlobRef br) {
return br;
}
int
Test::Main()
{
TEST_INIT("blob_test");
// create a blob
Blob b = makeBlob("test");
EXPECT_TRUE(b.size() == strlen("test") + 1);
EXPECT_TRUE(strcmp("test", b.data()) == 0);
// create a ref to a blob
BlobRef br = makeBlobRef(b);
EXPECT_TRUE(br.size() == strlen("test") + 1);
EXPECT_TRUE(strcmp("test", br.data()) == 0);
EXPECT_TRUE(b.data() == br.data());
// non-destructive copy of ref
BlobRef br2 = returnBlobRef(br);
EXPECT_TRUE(br.size() == strlen("test") + 1);
EXPECT_TRUE(strcmp("test", br.data()) == 0);
EXPECT_TRUE(b.data() == br.data());
EXPECT_TRUE(br2.size() == strlen("test") + 1);
EXPECT_TRUE(strcmp("test", br2.data()) == 0);
EXPECT_TRUE(b.data() == br2.data());
br = br2;
EXPECT_TRUE(br.size() == strlen("test") + 1);
EXPECT_TRUE(strcmp("test", br.data()) == 0);
EXPECT_TRUE(b.data() == br.data());
EXPECT_TRUE(br2.size() == strlen("test") + 1);
EXPECT_TRUE(strcmp("test", br2.data()) == 0);
EXPECT_TRUE(b.data() == br2.data());
// destructive copy of blob
Blob b2 = returnBlob(std::move(b));
EXPECT_EQUAL(0u, b.size());
EXPECT_TRUE(b.data() == 0);
EXPECT_TRUE(b2.size() == strlen("test") + 1);
EXPECT_TRUE(strcmp("test", b2.data()) == 0);
b.swap(b2);
EXPECT_EQUAL(0u, b2.size());
EXPECT_TRUE(b2.data() == 0);
EXPECT_TRUE(b.size() == strlen("test") + 1);
EXPECT_TRUE(strcmp("test", b.data()) == 0);
TEST_DONE();
}
|