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().
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 }}}
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