annotate packages/language/cxx/ustl/current/tests/bvt02.cpp @ 3152:4885e0722884

* include/*: * src/*: * tests/*: * HISTORY: * LICENSE: Updated to uSTL 1.6 sources.
author sergeig
date Wed, 04 Apr 2012 18:51:57 +0000
parents 88af52c64ce4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2904
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
1 // This file is part of the uSTL library, an STL implementation.
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
2 //
3152
4885e0722884 * include/*:
sergeig
parents: 2904
diff changeset
3 // Copyright (c) 2005 by Mike Sharov <msharov@users.sourceforge.net>
2904
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
4 // This file is free software, distributed under the MIT License.
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
5
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
6 #include "stdtest.h"
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
7
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
8 void WriteCML (const memblock& l)
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
9 {
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
10 cout.format ("memblock{%zu}: ", l.size());
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
11 const char* pc = reinterpret_cast<const char*>(l.cdata());
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
12 size_t nc = l.size();
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
13 while (nc && pc[nc - 1] == 0)
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
14 -- nc;
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
15 cout.write (l.cdata(), nc);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
16 cout << endl;
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
17 }
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
18
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
19 void TestMB (void)
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
20 {
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
21 char strTest[] = "abcdefghijklmnopqrstuvwxyz";
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
22 const size_t strTestLen = strlen(strTest);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
23 const char* cstrTest = strTest;
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
24
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
25 memblock a, b;
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
26 a.link (strTest, strTestLen);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
27 if (a.begin() != strTest)
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
28 cout << "begin() failed on memblock\n";
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
29 if (a.begin() + 5 != &strTest[5])
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
30 cout << "begin() + 5 failed on memblock\n";
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
31 if (0 != memcmp (a.begin(), strTest, strTestLen))
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
32 cout << "memcmp failed on memblock\n";
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
33 WriteCML (a);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
34 b.link (cstrTest, strTestLen);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
35 if (b.data() != cstrTest)
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
36 cout << "begin() of const failed on memblock\n";
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
37 if (b.cmemlink::begin() != cstrTest)
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
38 cout << "cmemlink::begin() failed on memblock\n";
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
39 WriteCML (b);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
40 if (!(a == b))
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
41 cout << "operator== failed on memblock\n";
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
42 b.copy_link();
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
43 if (b.data() == NULL || b.cdata() == cstrTest)
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
44 cout << "copy_link failed on memblock\n";
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
45 if (!(a == b))
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
46 cout << "copy_link didn't copy\n";
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
47 b.resize (strTestLen - 2);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
48 a = b;
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
49 if (a.begin() == b.begin())
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
50 cout << "Assignment does not copy a link\n";
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
51 a.deallocate();
3152
4885e0722884 * include/*:
sergeig
parents: 2904
diff changeset
52 a.assign (strTest, strTestLen);
2904
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
53 WriteCML (a);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
54 a.insert (a.begin() + 5, 9);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
55 a.fill (a.begin() + 5, "-", 1, 9);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
56 WriteCML (a);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
57 a.erase (a.begin() + 2, 7);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
58 a.fill (a.end() - 7, "=", 1, 7);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
59 WriteCML (a);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
60 a.fill (a.begin() + 5, "TEST", 4, 3);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
61 WriteCML (a);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
62
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
63 a.resize (26 + 24);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
64 a.fill (a.begin() + 26, "-+=", 3, 24 / 3);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
65 WriteCML (a);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
66 a.resize (0);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
67 WriteCML (a);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
68 a.resize (strTestLen + strTestLen / 2);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
69 WriteCML (a);
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
70 }
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
71
88af52c64ce4 * ecos.db: Add uSTL library package record.
jld
parents:
diff changeset
72 StdBvtMain (TestMB)