2 * Copyright (C) 1996-2023 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 */
23 assert (aHeader
.lowestOffset() == 0);
24 assert (aHeader
.write (StoreIOBuffer()));
25 assert (aHeader
.lowestOffset() == 0);
26 assert (aHeader
.write (StoreIOBuffer(0, 1, (char *)nullptr)));
27 assert (aHeader
.lowestOffset() == 0);
28 char * sampleData
= xstrdup ("A");
29 assert (aHeader
.write (StoreIOBuffer(1, 100, sampleData
)));
30 safe_free (sampleData
);
31 assert (aHeader
.lowestOffset() == 100);
32 assert (aHeader
.endOffset() == 101);
33 sampleData
= xstrdup ("B");
34 assert (aHeader
.write (StoreIOBuffer(1, 10, sampleData
)));
35 safe_free (sampleData
);
36 assert (aHeader
.lowestOffset() == 10);
37 assert (aHeader
.endOffset() == 101);
38 assert (aHeader
.hasContigousContentRange(Range
<int64_t>(10,11)));
39 assert (!aHeader
.hasContigousContentRange(Range
<int64_t>(10,12)));
40 assert (!aHeader
.hasContigousContentRange(Range
<int64_t>(10,101)));
46 Splay
<mem_node
*> aSplay
;
48 temp5
= new mem_node(5);
49 temp5
->nodeBuffer
.length
= 10;
50 aSplay
.insert (temp5
, mem_hdr::NodeCompare
);
51 assert (aSplay
.start()->data
== temp5
);
52 assert (aSplay
.finish()->data
== temp5
);
55 temp0
= new mem_node(0);
56 temp0
->nodeBuffer
.length
= 5;
57 aSplay
.insert (temp0
, mem_hdr::NodeCompare
);
58 assert (aSplay
.start()->data
== temp0
);
59 assert (aSplay
.finish()->data
== temp5
);
62 temp14
= new mem_node (14);
63 temp14
->nodeBuffer
.length
= 1;
64 assert (aSplay
.find(temp14
,mem_hdr::NodeCompare
));
68 assert (!aSplay
.find(&ref13
,mem_hdr::NodeCompare
));
69 ref13
.nodeBuffer
.length
= 1;
70 assert (aSplay
.find(&ref13
,mem_hdr::NodeCompare
));
78 char * sampleData
= xstrdup ("A");
79 assert (aHeader
.write (StoreIOBuffer(1, 100, sampleData
)));
80 safe_free (sampleData
);
81 sampleData
= xstrdup ("B");
82 assert (aHeader
.write (StoreIOBuffer(1, 102, sampleData
)));
83 safe_free (sampleData
);
84 std::ostringstream result
;
85 PointerPrinter
<mem_node
*> foo(result
, "\n");
86 for_each (aHeader
.getNodes().end(), aHeader
.getNodes().end(), foo
);
87 for_each (aHeader
.getNodes().begin(), aHeader
.getNodes().begin(), foo
);
88 for_each (aHeader
.getNodes().begin(), aHeader
.getNodes().end(), foo
);
89 std::ostringstream expectedResult
;
90 expectedResult
<< "[100,101)" << std::endl
<< "[102,103)" << std::endl
;
91 assert (result
.str() == expectedResult
.str());
97 assert (mem_node::InUseCount() == 0);
99 assert (mem_node::InUseCount() == 0);
101 assert (mem_node::InUseCount() == 0);
103 assert (mem_node::InUseCount() == 0);