String routines to complement <string> && <cstring>:
psz_string_test.cpp
Go to the documentation of this file.
1
// psz_string_test.cpp (C) 2012 adolfo@di-mare.com
2
3
/** \file psz_string_test.cpp
4
\brief Programa de prueba para las rutinas de \c psz_string_test.h.
5
6
\author Adolfo Di Mare <adolfo@di-mare.com>
7
\date 2012
8
*/
9
10
#include "
uUnit.h
"
// assertTrue()+assertFalse()
11
#include <iostream>
// std::cout
12
13
#include "
psz_string.h
"
// recuerda delete[] al usar (char*)
14
15
/// Test->psz_string().
16
void
psz_string_test
() {
17
{{
// test::psz_string()
18
const
char
* str =
"local/global"
;
19
psz_string
psz = str;
assertTrue
( 0!=psz );
20
psz.
clear
();
assertTrue
( 0==psz );
21
22
psz = str;
// si copia contenido
23
assertTrue
( psz!=str &&
"memoria differente"
);
24
assertTrue
( 0==strcmp(psz,str) &&
"contienen lo mismo"
);
25
26
try
{
27
psz_string
NESTED;
assertTrue
( 0==NESTED );
28
NESTED.
alloc
( 1+strlen(psz) );
// +1 ==> EOS del final
29
strcpy( NESTED, psz );
30
assertTrue
( 0==strcmp(NESTED,str) &&
"contienen lo mismo"
);
31
throw
int(32);
// throw tira para que catch() apañe
32
}
33
catch
(
int
val ) {
34
assertTrue
(
"la memoria de [NESTED] ha sido liberada"
);
35
assertTrue
( val==32 );
36
}
37
38
psz.
alloc
(0);
// libera memoria
39
assertTrue
( 0==psz );
40
}}
41
{
42
psz_string
psz( strlen(
"banana"
) );
43
strcpy( psz,
"banana"
);
44
assertTrue
( 0==strcmp(
"banana"
,psz) );
45
}
46
{
// auto-copia
47
psz_string
a,b,c;
48
a =
"aaaaa"
;
49
b =
"bbb"
;
50
c =
"c"
;
51
52
a = a;
assertTrue
( 0==strcmp(a ,
"aaaaa"
) &&
"auto-copia"
);
53
b = (
char
*)(b);
assertTrue
( 0==strcmp(b ,
"bbb"
) &&
"auto-copia"
);
54
c = 0;
assertTrue
( c == 0 );
55
}
56
}
57
58
/// Programa de prueba para las rutinas de \c string_tool.h.
59
int
main
(
int
argc ,
const
char
* argv[] ) {
60
{{{
61
// Pone el rótulo de la prueba
62
std::cout <<
"test->psz_string() [uUnit.h]"
<< std::endl;
63
}}}
64
psz_string_test
();
65
return
0;
66
}
67
68
// EOF: psz_string_test.cpp
psz_string
Clase pequeñita para que no se me olvide delete[] para (char*).
Definition:
psz_string.h:32
psz_string::alloc
void alloc(unsigned sz)
Obtiene exactamente sz letras. Le cabe una hilera de hasta (sz-1) letras. Si (sz==0) libera la memori...
Definition:
psz_string.h:46
psz_string::clear
void clear()
Borra la hilera. Libera la memoria.
Definition:
psz_string.h:47
assertTrue
#define assertTrue(cond)
(cond ? () : cout << "cond" )
Definition:
uUnit.h:93
psz_string.h
Empaque (char*) para usar hileras C de forma segura en C++.
psz_string_test
void psz_string_test()
Test->psz_string().
Definition:
psz_string_test.cpp:16
uUnit.h
[u]Micro module for [Unit] program testing.
main
int main(int argc, const char *argv[])
Programa de prueba para las rutinas de string_tool.h.
Definition:
psz_string_test.cpp:59
Generated by
1.8.16