summaryrefslogtreecommitdiffstats
path: root/base/template_util_unittest.cc
diff options
context:
space:
mode:
authorajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-26 16:22:50 +0000
committerajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-26 16:22:50 +0000
commit6a341fbb4fa4651ea5d60ce8aa57e5fabe3da375 (patch)
tree1062e8ae71f9d3a15421809847e6b0208bde8ad0 /base/template_util_unittest.cc
parente93fd55e815c0004672e0a7621fcd617b8196035 (diff)
downloadchromium_src-6a341fbb4fa4651ea5d60ce8aa57e5fabe3da375.zip
chromium_src-6a341fbb4fa4651ea5d60ce8aa57e5fabe3da375.tar.gz
chromium_src-6a341fbb4fa4651ea5d60ce8aa57e5fabe3da375.tar.bz2
Add COMPILE_ASSERT to ensure the result of Bind matches the Callback's type.
Required because we abstract the storage of the funciton pointer out using a reinterpret_cast to reduce template bloat. This effectively readds the failure that would have happened had we stored the function pointer directly in the template class. BUG=86008 TEST=new unittests. Review URL: http://codereview.chromium.org/7241015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90525 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/template_util_unittest.cc')
-rw-r--r--base/template_util_unittest.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/base/template_util_unittest.cc b/base/template_util_unittest.cc
index ea5f0ff..daf83b6 100644
--- a/base/template_util_unittest.cc
+++ b/base/template_util_unittest.cc
@@ -53,6 +53,17 @@ TEST(TemplateUtilTest, IsConvertible) {
EXPECT_FALSE( (is_convertible<void*, int*>::value) );
}
+TEST(TemplateUtilTest, IsSame) {
+ EXPECT_FALSE( (is_same<Child, Parent>::value) );
+ EXPECT_FALSE( (is_same<Parent, Child>::value) );
+ EXPECT_TRUE( (is_same<Parent, Parent>::value) );
+
+ EXPECT_TRUE( (is_same<int*, int*>::value) );
+ EXPECT_TRUE( (is_same<int, int>::value) );
+ EXPECT_TRUE( (is_same<void, void>::value) );
+ EXPECT_FALSE( (is_same<int, double>::value) );
+}
+
TEST(TemplateUtilTest, IsClass) {
EXPECT_TRUE(is_class<AStruct>::value);
EXPECT_TRUE(is_class<AClass>::value);