xref: /netbsd-src/external/gpl3/binutils.old/dist/zlib/contrib/iostream3/test.cc (revision 16dce51364ebe8aeafbae46bc5aa167b8115bc45)
1*16dce513Schristos /*
2*16dce513Schristos  * Test program for gzifstream and gzofstream
3*16dce513Schristos  *
4*16dce513Schristos  * by Ludwig Schwardt <schwardt@sun.ac.za>
5*16dce513Schristos  * original version by Kevin Ruland <kevin@rodin.wustl.edu>
6*16dce513Schristos  */
7*16dce513Schristos 
8*16dce513Schristos #include "zfstream.h"
9*16dce513Schristos #include <iostream>      // for cout
10*16dce513Schristos 
main()11*16dce513Schristos int main() {
12*16dce513Schristos 
13*16dce513Schristos   gzofstream outf;
14*16dce513Schristos   gzifstream inf;
15*16dce513Schristos   char buf[80];
16*16dce513Schristos 
17*16dce513Schristos   outf.open("test1.txt.gz");
18*16dce513Schristos   outf << "The quick brown fox sidestepped the lazy canine\n"
19*16dce513Schristos        << 1.3 << "\nPlan " << 9 << std::endl;
20*16dce513Schristos   outf.close();
21*16dce513Schristos   std::cout << "Wrote the following message to 'test1.txt.gz' (check with zcat or zless):\n"
22*16dce513Schristos             << "The quick brown fox sidestepped the lazy canine\n"
23*16dce513Schristos             << 1.3 << "\nPlan " << 9 << std::endl;
24*16dce513Schristos 
25*16dce513Schristos   std::cout << "\nReading 'test1.txt.gz' (buffered) produces:\n";
26*16dce513Schristos   inf.open("test1.txt.gz");
27*16dce513Schristos   while (inf.getline(buf,80,'\n')) {
28*16dce513Schristos     std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n";
29*16dce513Schristos   }
30*16dce513Schristos   inf.close();
31*16dce513Schristos 
32*16dce513Schristos   outf.rdbuf()->pubsetbuf(0,0);
33*16dce513Schristos   outf.open("test2.txt.gz");
34*16dce513Schristos   outf << setcompression(Z_NO_COMPRESSION)
35*16dce513Schristos        << "The quick brown fox sidestepped the lazy canine\n"
36*16dce513Schristos        << 1.3 << "\nPlan " << 9 << std::endl;
37*16dce513Schristos   outf.close();
38*16dce513Schristos   std::cout << "\nWrote the same message to 'test2.txt.gz' in uncompressed form";
39*16dce513Schristos 
40*16dce513Schristos   std::cout << "\nReading 'test2.txt.gz' (unbuffered) produces:\n";
41*16dce513Schristos   inf.rdbuf()->pubsetbuf(0,0);
42*16dce513Schristos   inf.open("test2.txt.gz");
43*16dce513Schristos   while (inf.getline(buf,80,'\n')) {
44*16dce513Schristos     std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n";
45*16dce513Schristos   }
46*16dce513Schristos   inf.close();
47*16dce513Schristos 
48*16dce513Schristos   return 0;
49*16dce513Schristos 
50*16dce513Schristos }
51