aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2001-08-19 00:20:07 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2001-08-19 00:20:07 +0000
commit9f530faf18b35751a419db0bee8d15ead4ab8537 (patch)
tree214420215e2d44ad49de028f89abe5467369a4e5
parent5ed3149cb0ad923cf2dd9e593ebd3b68970927e0 (diff)
downloadgcc-9f530faf18b35751a419db0bee8d15ead4ab8537.zip
gcc-9f530faf18b35751a419db0bee8d15ead4ab8537.tar.gz
gcc-9f530faf18b35751a419db0bee8d15ead4ab8537.tar.bz2
operators.cc: Add test.
2001-08-18 Benjamin Kosnik <bkoz@redhat.com> * testsuite/22_locale/operators.cc: Add test. From-SVN: r45015
-rw-r--r--libstdc++-v3/ChangeLog4
-rw-r--r--libstdc++-v3/testsuite/22_locale/operators.cc35
2 files changed, 38 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 71496a4..c8cd76c 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,7 @@
+2001-08-18 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/22_locale/operators.cc: Add test.
+
2001-08-17 Benjamin Kosnik <bkoz@redhat.com>
Implement std::collate.
diff --git a/libstdc++-v3/testsuite/22_locale/operators.cc b/libstdc++-v3/testsuite/22_locale/operators.cc
index 2b9cd33..f21f157 100644
--- a/libstdc++-v3/testsuite/22_locale/operators.cc
+++ b/libstdc++-v3/testsuite/22_locale/operators.cc
@@ -1,6 +1,6 @@
// 2000-09-11 Benjamin Kosnik <bkoz@redhat.com>
-// Copyright (C) 2000 Free Software Foundation
+// Copyright (C) 2000, 2001 Free Software Foundation
//
// 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
@@ -46,9 +46,42 @@ void test01()
VERIFY( loc(str1, str2) == false );
}
+// bool operator()(const string_type&, const string_type&) const
+typedef std::collate<char> ccollate;
+long gnu_count;
+class gnu_collate: public ccollate
+{
+protected:
+ virtual int
+ do_compare(const char*, const char*, const char*, const char*) const
+ { ++gnu_count; }
+};
+
+void test02()
+{
+ using namespace std;
+ bool test = true;
+
+ // Sanity check.
+ locale loc_c = locale::classic();
+ string s01("land of ");
+ string s02("land of look behind");
+ VERIFY( !loc_c(s01, s01) );
+ VERIFY( loc_c(s01, s02) );
+
+ // Derivation, MF check.
+ locale loc_gnu(loc_c, new gnu_collate);
+ gnu_count = 0;
+ loc_gnu(s01, s02);
+ VERIFY( gnu_count == 1 );
+}
+
int main ()
{
test01();
return 0;
}
+
+
+