2 * Copyright (C) 1996-2016 The Squid Software Foundation and contributors
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
9 /* DEBUG: section 19 Store Memory Primitives */
12 #include "base/TextException.h"
20 /*For a reason required on some platforms */
21 unsigned int TextException::FileNameHash(const char *fname
)
30 assert (aHeader
.lowestOffset() == 0);
31 assert (aHeader
.write (StoreIOBuffer()));
32 assert (aHeader
.lowestOffset() == 0);
33 assert (aHeader
.write (StoreIOBuffer(0, 1, (char *)NULL
)));
34 assert (aHeader
.lowestOffset() == 0);
35 char * sampleData
= xstrdup ("A");
36 assert (aHeader
.write (StoreIOBuffer(1, 100, sampleData
)));
37 safe_free (sampleData
);
38 assert (aHeader
.lowestOffset() == 100);
39 assert (aHeader
.endOffset() == 101);
40 sampleData
= xstrdup ("B");
41 assert (aHeader
.write (StoreIOBuffer(1, 10, sampleData
)));
42 safe_free (sampleData
);
43 assert (aHeader
.lowestOffset() == 10);
44 assert (aHeader
.endOffset() == 101);
45 assert (aHeader
.hasContigousContentRange(Range
<int64_t>(10,11)));
46 assert (!aHeader
.hasContigousContentRange(Range
<int64_t>(10,12)));
47 assert (!aHeader
.hasContigousContentRange(Range
<int64_t>(10,101)));
53 Splay
<mem_node
*> aSplay
;
55 temp5
= new mem_node(5);
56 temp5
->nodeBuffer
.length
= 10;
57 aSplay
.insert (temp5
, mem_hdr::NodeCompare
);
58 assert (aSplay
.start()->data
== temp5
);
59 assert (aSplay
.finish()->data
== temp5
);
62 temp0
= new mem_node(0);
63 temp0
->nodeBuffer
.length
= 5;
64 aSplay
.insert (temp0
, mem_hdr::NodeCompare
);
65 assert (aSplay
.start()->data
== temp0
);
66 assert (aSplay
.finish()->data
== temp5
);
69 temp14
= new mem_node (14);
70 temp14
->nodeBuffer
.length
= 1;
71 assert (aSplay
.find(temp14
,mem_hdr::NodeCompare
));
75 assert (!aSplay
.find(&ref13
,mem_hdr::NodeCompare
));
76 ref13
.nodeBuffer
.length
= 1;
77 assert (aSplay
.find(&ref13
,mem_hdr::NodeCompare
));
85 char * sampleData
= xstrdup ("A");
86 assert (aHeader
.write (StoreIOBuffer(1, 100, sampleData
)));
87 safe_free (sampleData
);
88 sampleData
= xstrdup ("B");
89 assert (aHeader
.write (StoreIOBuffer(1, 102, sampleData
)));
90 safe_free (sampleData
);
91 std::ostringstream result
;
92 PointerPrinter
<mem_node
*> foo(result
, "\n");
93 for_each (aHeader
.getNodes().end(), aHeader
.getNodes().end(), foo
);
94 for_each (aHeader
.getNodes().begin(), aHeader
.getNodes().begin(), foo
);
95 for_each (aHeader
.getNodes().begin(), aHeader
.getNodes().end(), foo
);
96 std::ostringstream expectedResult
;
97 expectedResult
<< "[100,101)" << std::endl
<< "[102,103)" << std::endl
;
98 assert (result
.str() == expectedResult
.str());
102 main(int argc
, char **argv
)
104 assert (mem_node::InUseCount() == 0);
106 assert (mem_node::InUseCount() == 0);
108 assert (mem_node::InUseCount() == 0);
110 assert (mem_node::InUseCount() == 0);