diff options
author | Daniel Kruegler <daniel.kruegler@gmail.com> | 2014-11-14 04:23:06 +0000 |
---|---|---|
committer | Tim Shen <timshen@gcc.gnu.org> | 2014-11-14 04:23:06 +0000 |
commit | b82e9b016f16f3a85ca33c5ea6896266c3cc662a (patch) | |
tree | 6999198d8307e49738d059c7442900ec953ee5c8 /libstdc++-v3/testsuite/28_regex | |
parent | b16abbcb8530ab4601873c978c50422960d0faee (diff) | |
download | gcc-b82e9b016f16f3a85ca33c5ea6896266c3cc662a.zip gcc-b82e9b016f16f3a85ca33c5ea6896266c3cc662a.tar.gz gcc-b82e9b016f16f3a85ca33c5ea6896266c3cc662a.tar.bz2 |
regex.h: Support embedded zeros in sub_match comparisons (DR 2217)
2014-11-13 Daniel Kruegler <daniel.kruegler@gmail.com>
* include/bits/regex.h: Support embedded zeros in sub_match
comparisons (DR 2217)
* testsuite/28_regex/sub_match/embedded_zeros_cmp.cc:
Add test cases for embedded zeros
From-SVN: r217535
Diffstat (limited to 'libstdc++-v3/testsuite/28_regex')
-rw-r--r-- | libstdc++-v3/testsuite/28_regex/sub_match/embedded_zeros_cmp.cc | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/28_regex/sub_match/embedded_zeros_cmp.cc b/libstdc++-v3/testsuite/28_regex/sub_match/embedded_zeros_cmp.cc new file mode 100644 index 0000000..0908f12 --- /dev/null +++ b/libstdc++-v3/testsuite/28_regex/sub_match/embedded_zeros_cmp.cc @@ -0,0 +1,55 @@ +// { dg-options "-std=gnu++11" } + +// +// 2014-11-13 Daniel Kruegler <daniel.kruegler@gmail.com> +// +// Copyright (C) 2014 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// 28.9.2 [re.submatch.op] sub_match members, [DR 2217] + +#include <regex> +#include <string> +#include <testsuite_hooks.h> + +int main() +{ + bool test __attribute__((unused)) = true; + + typedef char value_type; + typedef std::basic_string<value_type> string_type; + typedef std::sub_match<value_type*> sub_match_type; + const string_type test_data1("abc\0d", 4); + value_type test_data2[] = {'a', 'b', 'c'}; + const string_type test_data3("abc"); + + sub_match_type sm; + sm.first = std::begin(test_data2); + sm.second = std::end(test_data2); + sm.matched = true; + + VERIFY( test_data1 != sm ); + VERIFY( sm != test_data1 ); + VERIFY( sm < test_data1 ); + VERIFY( !(test_data1 < sm) ); + VERIFY( test_data1 > sm ); + + VERIFY( test_data3 == sm ); + VERIFY( sm == test_data3 ); + VERIFY( !(sm < test_data3) ); + VERIFY( !(test_data3 < sm) ); +} |