1 #include "kwsysPrivate.h"
2 #include KWSYS_HEADER(stl/vector)
3 #include KWSYS_HEADER(ios/sstream)
4 #include KWSYS_HEADER(ios/iostream)
6 // Work-around CMake dependency scanning limitation. This must
7 // duplicate the above list of headers.
9 # include "kwsys_stl_string.hxx.in"
10 # include "kwsys_stl_vector.h.in"
11 # include "kwsys_ios_sstream.h.in"
12 # include "kwsys_ios_iostream.h.in"
15 #include <string.h> /* strlen */
17 int testIOS(int, char*[])
19 kwsys_ios::ostringstream ostr
;
20 const char hello
[] = "hello";
22 if(ostr
.str() != hello
)
24 kwsys_ios::cerr
<< "failed to write hello to ostr" << kwsys_ios::endl
;
27 const char world
[] = "world";
28 kwsys_ios::ostringstream ostr2
;
29 ostr2
.write( hello
, strlen(hello
) ); /* I could do sizeof */
31 ostr2
.write( world
, strlen(world
) );
32 if(ostr2
.str().size() != strlen(hello
) + 1 + strlen(world
) )
34 kwsys_ios::cerr
<< "failed to write hello to ostr2" << kwsys_ios::endl
;
37 static const unsigned char array
[] = { 0xff,0x4f,0xff,0x51,0x00,0x29,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x01,0x01,0xff,0x52,0x00,0x0c,0x00,0x00,0x00,0x01,0x00,0x05,0x04,0x04,0x00,0x01,0xff,0x5c,0x00,0x13,0x40,0x40,0x48,0x48,0x50,0x48,0x48,0x50,0x48,0x48,0x50,0x48,0x48,0x50,0x48,0x48,0x50,0xff,0x64,0x00,0x2c,0x00,0x00,0x43,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x49,0x54,0x4b,0x2f,0x47,0x44,0x43,0x4d,0x2f,0x4f,0x70,0x65,0x6e,0x4a,0x50,0x45,0x47,0x20,0x76,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x31,0x2e,0x30,0xff,0x90,0x00,0x0a,0x00,0x00,0x00,0x00,0x06,0x2c,0x00,0x01,0xff,0x93,0xcf,0xb0,0x18,0x08,0x7f,0xc6,0x99,0xbf,0xff,0xc0,0xf8,0xc1,0xc1,0xf3,0x05,0x81,0xf2,0x83,0x0a,0xa5,0xff,0x10,0x90,0xbf,0x2f,0xff,0x04,0xa8,0x7f,0xc0,0xf8,0xc4,0xc1,0xf3,0x09,0x81,0xf3,0x0c,0x19,0x34 };
38 const unsigned int narray
= sizeof(array
); // 180
39 kwsys_ios::stringstream strstr
;
40 strstr
.write( (char*)array
, narray
);
41 if(strstr
.str().size() != narray
)
43 kwsys_ios::cerr
<< "failed to write array to strstr" << kwsys_ios::endl
;
47 kwsys_ios::istringstream
istr(" 10 20 str ");
54 kwsys_ios::cerr
<< "x != 10" << kwsys_ios::endl
;
60 kwsys_ios::cerr
<< "Failed to read 10 from istr" << kwsys_ios::endl
;
67 kwsys_ios::cerr
<< "x != 20" << kwsys_ios::endl
;
73 kwsys_ios::cerr
<< "Failed to read 20 from istr" << kwsys_ios::endl
;
80 kwsys_ios::cerr
<< "s != \"str\"" << kwsys_ios::endl
;
86 kwsys_ios::cerr
<< "Failed to read str from istr" << kwsys_ios::endl
;
91 kwsys_ios::cerr
<< "Able to read past end of stream" << kwsys_ios::endl
;
97 istr
.clear(istr
.rdstate() & ~kwsys_ios::ios::eofbit
);
98 istr
.clear(istr
.rdstate() & ~kwsys_ios::ios::failbit
);
105 kwsys_ios::cerr
<< "x != 30" << kwsys_ios::endl
;
111 kwsys_ios::cerr
<< "Failed to read 30 from istr" << kwsys_ios::endl
;
115 kwsys_ios::stringstream sstr
;
121 kwsys_ios::cerr
<< "x != 40" << kwsys_ios::endl
;
127 kwsys_ios::cerr
<< "Failed to read 40 from sstr" << kwsys_ios::endl
;
134 kwsys_ios::cerr
<< "s != \"str2\"" << kwsys_ios::endl
;
140 kwsys_ios::cerr
<< "Failed to read str2 from sstr" << kwsys_ios::endl
;
144 kwsys_ios::cout
<< "IOS tests passed" << kwsys_ios::endl
;