diff options
author | redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-12-14 11:47:42 +0000 |
---|---|---|
committer | redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-12-14 11:47:42 +0000 |
commit | 57904972d5515909edfa4f64cdd51b7ee324c876 (patch) | |
tree | 6b670ac9d2498c8604464ed56520e446b5e7f56a | |
parent | a131a6cccebfccd63a7d1759de8e83a9c1459a7b (diff) | |
download | gcc-57904972d5515909edfa4f64cdd51b7ee324c876.tar.gz |
Test whitespace handling in std::complex extraction
* testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
Add tests using noskipws.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@255632 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | libstdc++-v3/ChangeLog | 3 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc | 28 |
2 files changed, 31 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b20a277a085..e035302bed4 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,8 @@ 2017-12-14 Jonathan Wakely <jwakely@redhat.com> + * testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc: + Add tests using noskipws. + * testsuite/26_numerics/complex/dr2714.cc: Move to ... * testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc: ... Here. Remove duplicate header and dg-options. Check first invalid diff --git a/libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc b/libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc index 17fb8a249d9..952c52f4a2b 100644 --- a/libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc +++ b/libstdc++-v3/testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc @@ -145,10 +145,38 @@ test03() in.clear(); } +void +test04() +{ + // Test noskipws handling + std::istringstream in; + const char* bad_inputs[] = { + " 1", " (2)", "( 2)", "(2 )", "(2 ,3)", "(2,3 )", 0 + }; + const std::complex<double> c0(-1, -1); + std::complex<double> c; + for (int i = 0; bad_inputs[i]; ++i) + { + c = c0; + in.clear(); + in.str(bad_inputs[i]); + in >> std::noskipws >> c; + VERIFY( in.fail() ); + VERIFY( c == c0 ); + + in.clear(); + in.str(bad_inputs[i]); + in >> std::skipws >> c; + VERIFY( !in.fail() ); + VERIFY( c != c0 ); + } +} + int main() { test01(); test02(); test03(); + test04(); } |