aboutsummaryrefslogtreecommitdiff
path: root/tests/compiler/sloc-counter/driver.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-11-25 15:17:53 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-25 15:17:53 +0200
commit1ef12a515fcf4334725767e09d11583301a5153b (patch)
tree71fd679ad6e584230b3f14ea29df743ee30d075d /tests/compiler/sloc-counter/driver.cxx
parent96ccbbd113efbfe6a0a300a1971e4a6f12c9249c (diff)
Adjust for literal here-document support in testscript
Diffstat (limited to 'tests/compiler/sloc-counter/driver.cxx')
-rw-r--r--tests/compiler/sloc-counter/driver.cxx30
1 files changed, 17 insertions, 13 deletions
diff --git a/tests/compiler/sloc-counter/driver.cxx b/tests/compiler/sloc-counter/driver.cxx
index 9d738b3..d06bfbe 100644
--- a/tests/compiler/sloc-counter/driver.cxx
+++ b/tests/compiler/sloc-counter/driver.cxx
@@ -3,6 +3,8 @@
// license : MIT; see accompanying LICENSE file
#include <fstream>
+#include <sstream>
+#include <cassert>
#include <iostream>
#include <cutl/compiler/code-stream.hxx>
@@ -14,23 +16,25 @@ using namespace cutl::compiler;
int
main (int argc, char* argv[])
{
- if (argc != 2)
- {
- cerr << "usage: " << argv[0] << " <file>" << endl;
- return 1;
- }
+ ifstream ifs;
+
+ if (argc > 1)
+ ifs.open (argv[1]);
- ostream_filter<sloc_counter, char> filt (cout);
+ istream& in (ifs.is_open () ? ifs : cin);
- ifstream ifs (argv[1]);
+ ostringstream os1, os2;
+ ostream_filter<sloc_counter, char> filt (os1);
- for (istream::int_type c (ifs.get ());
- c != istream::traits_type::eof ();
- c = ifs.get ())
+ for (istream::int_type i (in.get ());
+ i != istream::traits_type::eof ();
+ i = in.get ())
{
- cout.put (istream::traits_type::to_char_type (c));
+ char c (istream::traits_type::to_char_type (i));
+ os1.put (c);
+ os2.put (c);
}
- cout << endl
- << filt.stream ().count () << endl;
+ assert (os1.str () == os2.str ());
+ cout << filt.stream ().count () << endl;
}