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