Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: base/bind_unittest.cc

Issue 2790403003: Remove base::is_*assignable as these are now in the linux sysroot. (Closed)
Patch Set: isassign: removed-tests Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | base/template_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/bind.h" 5 #include "base/bind.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 1285 matching lines...) Expand 10 before | Expand all | Expand 10 after
1296 std::move(cb3).Run(); 1296 std::move(cb3).Run();
1297 std::move(cb5).Run(); 1297 std::move(cb5).Run();
1298 } 1298 }
1299 1299
1300 TEST_F(BindTest, OnceCallback) { 1300 TEST_F(BindTest, OnceCallback) {
1301 // Check if Callback variants have declarations of conversions as expected. 1301 // Check if Callback variants have declarations of conversions as expected.
1302 // Copy constructor and assignment of RepeatingCallback. 1302 // Copy constructor and assignment of RepeatingCallback.
1303 static_assert(std::is_constructible< 1303 static_assert(std::is_constructible<
1304 RepeatingClosure, const RepeatingClosure&>::value, 1304 RepeatingClosure, const RepeatingClosure&>::value,
1305 "RepeatingClosure should be copyable."); 1305 "RepeatingClosure should be copyable.");
1306 static_assert(is_assignable< 1306 static_assert(
1307 RepeatingClosure, const RepeatingClosure&>::value, 1307 std::is_assignable<RepeatingClosure, const RepeatingClosure&>::value,
1308 "RepeatingClosure should be copy-assignable."); 1308 "RepeatingClosure should be copy-assignable.");
1309 1309
1310 // Move constructor and assignment of RepeatingCallback. 1310 // Move constructor and assignment of RepeatingCallback.
1311 static_assert(std::is_constructible< 1311 static_assert(std::is_constructible<
1312 RepeatingClosure, RepeatingClosure&&>::value, 1312 RepeatingClosure, RepeatingClosure&&>::value,
1313 "RepeatingClosure should be movable."); 1313 "RepeatingClosure should be movable.");
1314 static_assert(is_assignable< 1314 static_assert(std::is_assignable<RepeatingClosure, RepeatingClosure&&>::value,
1315 RepeatingClosure, RepeatingClosure&&>::value, 1315 "RepeatingClosure should be move-assignable");
1316 "RepeatingClosure should be move-assignable");
1317 1316
1318 // Conversions from OnceCallback to RepeatingCallback. 1317 // Conversions from OnceCallback to RepeatingCallback.
1319 static_assert(!std::is_constructible< 1318 static_assert(!std::is_constructible<
1320 RepeatingClosure, const OnceClosure&>::value, 1319 RepeatingClosure, const OnceClosure&>::value,
1321 "OnceClosure should not be convertible to RepeatingClosure."); 1320 "OnceClosure should not be convertible to RepeatingClosure.");
1322 static_assert(!is_assignable< 1321 static_assert(
1323 RepeatingClosure, const OnceClosure&>::value, 1322 !std::is_assignable<RepeatingClosure, const OnceClosure&>::value,
1324 "OnceClosure should not be convertible to RepeatingClosure."); 1323 "OnceClosure should not be convertible to RepeatingClosure.");
1325 1324
1326 // Destructive conversions from OnceCallback to RepeatingCallback. 1325 // Destructive conversions from OnceCallback to RepeatingCallback.
1327 static_assert(!std::is_constructible< 1326 static_assert(!std::is_constructible<
1328 RepeatingClosure, OnceClosure&&>::value, 1327 RepeatingClosure, OnceClosure&&>::value,
1329 "OnceClosure should not be convertible to RepeatingClosure."); 1328 "OnceClosure should not be convertible to RepeatingClosure.");
1330 static_assert(!is_assignable< 1329 static_assert(!std::is_assignable<RepeatingClosure, OnceClosure&&>::value,
1331 RepeatingClosure, OnceClosure&&>::value, 1330 "OnceClosure should not be convertible to RepeatingClosure.");
1332 "OnceClosure should not be convertible to RepeatingClosure.");
1333 1331
1334 // Copy constructor and assignment of OnceCallback. 1332 // Copy constructor and assignment of OnceCallback.
1335 static_assert(!std::is_constructible< 1333 static_assert(!std::is_constructible<
1336 OnceClosure, const OnceClosure&>::value, 1334 OnceClosure, const OnceClosure&>::value,
1337 "OnceClosure should not be copyable."); 1335 "OnceClosure should not be copyable.");
1338 static_assert(!is_assignable< 1336 static_assert(!std::is_assignable<OnceClosure, const OnceClosure&>::value,
1339 OnceClosure, const OnceClosure&>::value, 1337 "OnceClosure should not be copy-assignable");
1340 "OnceClosure should not be copy-assignable");
1341 1338
1342 // Move constructor and assignment of OnceCallback. 1339 // Move constructor and assignment of OnceCallback.
1343 static_assert(std::is_constructible< 1340 static_assert(std::is_constructible<
1344 OnceClosure, OnceClosure&&>::value, 1341 OnceClosure, OnceClosure&&>::value,
1345 "OnceClosure should be movable."); 1342 "OnceClosure should be movable.");
1346 static_assert(is_assignable< 1343 static_assert(std::is_assignable<OnceClosure, OnceClosure&&>::value,
1347 OnceClosure, OnceClosure&&>::value, 1344 "OnceClosure should be move-assignable.");
1348 "OnceClosure should be move-assignable.");
1349 1345
1350 // Conversions from RepeatingCallback to OnceCallback. 1346 // Conversions from RepeatingCallback to OnceCallback.
1351 static_assert(std::is_constructible< 1347 static_assert(std::is_constructible<
1352 OnceClosure, const RepeatingClosure&>::value, 1348 OnceClosure, const RepeatingClosure&>::value,
1353 "RepeatingClosure should be convertible to OnceClosure."); 1349 "RepeatingClosure should be convertible to OnceClosure.");
1354 static_assert(is_assignable< 1350 static_assert(std::is_assignable<OnceClosure, const RepeatingClosure&>::value,
1355 OnceClosure, const RepeatingClosure&>::value, 1351 "RepeatingClosure should be convertible to OnceClosure.");
1356 "RepeatingClosure should be convertible to OnceClosure.");
1357 1352
1358 // Destructive conversions from RepeatingCallback to OnceCallback. 1353 // Destructive conversions from RepeatingCallback to OnceCallback.
1359 static_assert(std::is_constructible< 1354 static_assert(std::is_constructible<
1360 OnceClosure, RepeatingClosure&&>::value, 1355 OnceClosure, RepeatingClosure&&>::value,
1361 "RepeatingClosure should be convertible to OnceClosure."); 1356 "RepeatingClosure should be convertible to OnceClosure.");
1362 static_assert(is_assignable< 1357 static_assert(std::is_assignable<OnceClosure, RepeatingClosure&&>::value,
1363 OnceClosure, RepeatingClosure&&>::value, 1358 "RepeatingClosure should be covretible to OnceClosure.");
1364 "RepeatingClosure should be covretible to OnceClosure.");
1365 1359
1366 OnceClosure cb = BindOnce(&VoidPolymorphic<>::Run); 1360 OnceClosure cb = BindOnce(&VoidPolymorphic<>::Run);
1367 std::move(cb).Run(); 1361 std::move(cb).Run();
1368 1362
1369 // RepeatingCallback should be convertible to OnceCallback. 1363 // RepeatingCallback should be convertible to OnceCallback.
1370 OnceClosure cb2 = BindRepeating(&VoidPolymorphic<>::Run); 1364 OnceClosure cb2 = BindRepeating(&VoidPolymorphic<>::Run);
1371 std::move(cb2).Run(); 1365 std::move(cb2).Run();
1372 1366
1373 RepeatingClosure cb3 = BindRepeating(&VoidPolymorphic<>::Run); 1367 RepeatingClosure cb3 = BindRepeating(&VoidPolymorphic<>::Run);
1374 cb = cb3; 1368 cb = cb3;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1410 1404
1411 // Test null callbacks cause a DCHECK. 1405 // Test null callbacks cause a DCHECK.
1412 TEST(BindDeathTest, NullCallback) { 1406 TEST(BindDeathTest, NullCallback) {
1413 base::Callback<void(int)> null_cb; 1407 base::Callback<void(int)> null_cb;
1414 ASSERT_TRUE(null_cb.is_null()); 1408 ASSERT_TRUE(null_cb.is_null());
1415 EXPECT_DCHECK_DEATH(base::Bind(null_cb, 42)); 1409 EXPECT_DCHECK_DEATH(base::Bind(null_cb, 42));
1416 } 1410 }
1417 1411
1418 } // namespace 1412 } // namespace
1419 } // namespace base 1413 } // namespace base
OLDNEW
« no previous file with comments | « no previous file | base/template_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698