1 /*++
2 Copyright (c) 2006 Microsoft Corporation
3 
4 Module Name:
5 
6     tst_string_buffer.cpp
7 
8 Abstract:
9 
10     Test string buffer
11 
12 Author:
13 
14     Leonardo de Moura (leonardo) 2006-10-14.
15 
16 Revision History:
17 
18 --*/
19 #include<cstdlib>
20 #include "util/debug.h"
21 #include "util/string_buffer.h"
22 #include "util/trace.h"
23 
tst1()24 static void tst1() {
25   string_buffer<> b;
26   b << "Testing" << 10 << true;
27   ENSURE(strcmp(b.c_str(), "Testing10true") == 0);
28 }
29 
tst2()30 static void tst2() {
31   string_buffer<> b;
32   for (unsigned i = 0; i < 10000; i++) {
33     int r = rand() % 10;
34     b << r;
35   }
36   TRACE("string_buffer", tout << b.c_str() << "\n";);
37   ENSURE(strlen(b.c_str()) == 10000);
38 }
39 
tst3()40 static void tst3() {
41   string_buffer<32> b;
42   string_buffer<128> b2;
43   b2 << "World";
44   b << "Hello" << " " << b2;
45   ENSURE(strcmp(b.c_str(), "Hello World") == 0);
46 }
47 
tst_string_buffer()48 void tst_string_buffer() {
49   tst1();
50   tst2();
51   tst3();
52 }
53