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

Side by Side Diff: chromeos/tpm/tpm_token_info_getter_unittest.cc

Issue 1540803002: Switch to standard integer types in chromeos/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more includes Created 4 years, 12 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 | « chromeos/tpm/tpm_token_info_getter.cc ('k') | chromeos/tpm/tpm_token_loader.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <stdint.h>
6
5 #include <string> 7 #include <string>
6 #include <vector> 8 #include <vector>
7 9
8 #include "base/bind.h" 10 #include "base/bind.h"
9 #include "base/location.h" 11 #include "base/location.h"
10 #include "base/macros.h" 12 #include "base/macros.h"
11 #include "base/message_loop/message_loop.h" 13 #include "base/message_loop/message_loop.h"
12 #include "base/run_loop.h" 14 #include "base/run_loop.h"
13 #include "base/single_thread_task_runner.h" 15 #include "base/single_thread_task_runner.h"
14 #include "base/task_runner.h" 16 #include "base/task_runner.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 48
47 // Task runner for handling delayed tasks posted by TPMTokenInfoGetter when 49 // Task runner for handling delayed tasks posted by TPMTokenInfoGetter when
48 // retrying failed cryptohome method calls. It just records the requested 50 // retrying failed cryptohome method calls. It just records the requested
49 // delay and immediately runs the task. The task is run asynchronously to be 51 // delay and immediately runs the task. The task is run asynchronously to be
50 // closer to what's actually happening in production. 52 // closer to what's actually happening in production.
51 // The delays used by TPMTokenGetter should be monotonically increasing, so 53 // The delays used by TPMTokenGetter should be monotonically increasing, so
52 // the fake task runner does not handle task reordering based on the delays. 54 // the fake task runner does not handle task reordering based on the delays.
53 class FakeTaskRunner : public base::TaskRunner { 55 class FakeTaskRunner : public base::TaskRunner {
54 public: 56 public:
55 // |delays|: Vector to which the dalays seen by the task runner are saved. 57 // |delays|: Vector to which the dalays seen by the task runner are saved.
56 explicit FakeTaskRunner(std::vector<int64>* delays) : delays_(delays) {} 58 explicit FakeTaskRunner(std::vector<int64_t>* delays) : delays_(delays) {}
57 59
58 // base::TaskRunner overrides: 60 // base::TaskRunner overrides:
59 bool PostDelayedTask(const tracked_objects::Location& from_here, 61 bool PostDelayedTask(const tracked_objects::Location& from_here,
60 const base::Closure& task, 62 const base::Closure& task,
61 base::TimeDelta delay) override { 63 base::TimeDelta delay) override {
62 delays_->push_back(delay.InMilliseconds()); 64 delays_->push_back(delay.InMilliseconds());
63 base::ThreadTaskRunnerHandle::Get()->PostTask(from_here, task); 65 base::ThreadTaskRunnerHandle::Get()->PostTask(from_here, task);
64 return true; 66 return true;
65 } 67 }
66 bool RunsTasksOnCurrentThread() const override { return true; } 68 bool RunsTasksOnCurrentThread() const override { return true; }
67 69
68 protected: 70 protected:
69 ~FakeTaskRunner() override {} 71 ~FakeTaskRunner() override {}
70 72
71 private: 73 private:
72 // The vector of delays. 74 // The vector of delays.
73 std::vector<int64>* delays_; 75 std::vector<int64_t>* delays_;
74 76
75 DISALLOW_COPY_AND_ASSIGN(FakeTaskRunner); 77 DISALLOW_COPY_AND_ASSIGN(FakeTaskRunner);
76 }; 78 };
77 79
78 // Implementation of CryptohomeClient used in these tests. Note that 80 // Implementation of CryptohomeClient used in these tests. Note that
79 // TestCryptohomeClient implements FakeCryptohomeClient purely for convenience 81 // TestCryptohomeClient implements FakeCryptohomeClient purely for convenience
80 // of not having to implement whole CryptohomeClient interface. 82 // of not having to implement whole CryptohomeClient interface.
81 // TestCryptohomeClient overrides all CryptohomeClient methods used in 83 // TestCryptohomeClient overrides all CryptohomeClient methods used in
82 // TPMTokenInfoGetter tests. 84 // TPMTokenInfoGetter tests.
83 class TestCryptohomeClient : public chromeos::FakeCryptohomeClient { 85 class TestCryptohomeClient : public chromeos::FakeCryptohomeClient {
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 tpm_token_info_getter_ = 241 tpm_token_info_getter_ =
240 chromeos::TPMTokenInfoGetter::CreateForSystemToken( 242 chromeos::TPMTokenInfoGetter::CreateForSystemToken(
241 cryptohome_client_.get(), 243 cryptohome_client_.get(),
242 scoped_refptr<base::TaskRunner>(new FakeTaskRunner(&delays_))); 244 scoped_refptr<base::TaskRunner>(new FakeTaskRunner(&delays_)));
243 } 245 }
244 246
245 protected: 247 protected:
246 scoped_ptr<TestCryptohomeClient> cryptohome_client_; 248 scoped_ptr<TestCryptohomeClient> cryptohome_client_;
247 scoped_ptr<chromeos::TPMTokenInfoGetter> tpm_token_info_getter_; 249 scoped_ptr<chromeos::TPMTokenInfoGetter> tpm_token_info_getter_;
248 250
249 std::vector<int64> delays_; 251 std::vector<int64_t> delays_;
250 252
251 private: 253 private:
252 base::MessageLoop message_loop_; 254 base::MessageLoop message_loop_;
253 255
254 DISALLOW_COPY_AND_ASSIGN(SystemTPMTokenInfoGetterTest); 256 DISALLOW_COPY_AND_ASSIGN(SystemTPMTokenInfoGetterTest);
255 }; 257 };
256 258
257 class UserTPMTokenInfoGetterTest : public testing::Test { 259 class UserTPMTokenInfoGetterTest : public testing::Test {
258 public: 260 public:
259 UserTPMTokenInfoGetterTest() : user_id_("user") {} 261 UserTPMTokenInfoGetterTest() : user_id_("user") {}
260 ~UserTPMTokenInfoGetterTest() override {} 262 ~UserTPMTokenInfoGetterTest() override {}
261 263
262 void SetUp() override { 264 void SetUp() override {
263 cryptohome_client_.reset(new TestCryptohomeClient(user_id_)); 265 cryptohome_client_.reset(new TestCryptohomeClient(user_id_));
264 tpm_token_info_getter_ = 266 tpm_token_info_getter_ =
265 chromeos::TPMTokenInfoGetter::CreateForUserToken( 267 chromeos::TPMTokenInfoGetter::CreateForUserToken(
266 user_id_, 268 user_id_,
267 cryptohome_client_.get(), 269 cryptohome_client_.get(),
268 scoped_refptr<base::TaskRunner>(new FakeTaskRunner(&delays_))); 270 scoped_refptr<base::TaskRunner>(new FakeTaskRunner(&delays_)));
269 } 271 }
270 272
271 protected: 273 protected:
272 scoped_ptr<TestCryptohomeClient> cryptohome_client_; 274 scoped_ptr<TestCryptohomeClient> cryptohome_client_;
273 scoped_ptr<chromeos::TPMTokenInfoGetter> tpm_token_info_getter_; 275 scoped_ptr<chromeos::TPMTokenInfoGetter> tpm_token_info_getter_;
274 276
275 std::string user_id_; 277 std::string user_id_;
276 std::vector<int64> delays_; 278 std::vector<int64_t> delays_;
277 279
278 private: 280 private:
279 base::MessageLoop message_loop_; 281 base::MessageLoop message_loop_;
280 282
281 DISALLOW_COPY_AND_ASSIGN(UserTPMTokenInfoGetterTest); 283 DISALLOW_COPY_AND_ASSIGN(UserTPMTokenInfoGetterTest);
282 }; 284 };
283 285
284 TEST_F(SystemTPMTokenInfoGetterTest, BasicFlow) { 286 TEST_F(SystemTPMTokenInfoGetterTest, BasicFlow) {
285 TestTPMTokenInfo reported_info; 287 TestTPMTokenInfo reported_info;
286 tpm_token_info_getter_->Start( 288 tpm_token_info_getter_->Start(
287 base::Bind(&RecordGetterResult, &reported_info)); 289 base::Bind(&RecordGetterResult, &reported_info));
288 base::RunLoop().RunUntilIdle(); 290 base::RunLoop().RunUntilIdle();
289 291
290 EXPECT_FALSE(reported_info.IsReady()); 292 EXPECT_FALSE(reported_info.IsReady());
291 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1); 293 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1);
292 294
293 EXPECT_TRUE(reported_info.IsReady()); 295 EXPECT_TRUE(reported_info.IsReady());
294 EXPECT_TRUE(reported_info.enabled); 296 EXPECT_TRUE(reported_info.enabled);
295 EXPECT_EQ("TOKEN_1", reported_info.name); 297 EXPECT_EQ("TOKEN_1", reported_info.name);
296 EXPECT_EQ("2222", reported_info.pin); 298 EXPECT_EQ("2222", reported_info.pin);
297 EXPECT_EQ(1, reported_info.slot_id); 299 EXPECT_EQ(1, reported_info.slot_id);
298 300
299 EXPECT_EQ(std::vector<int64>(), delays_); 301 EXPECT_EQ(std::vector<int64_t>(), delays_);
300 } 302 }
301 303
302 TEST_F(SystemTPMTokenInfoGetterTest, TokenSlotIdEqualsZero) { 304 TEST_F(SystemTPMTokenInfoGetterTest, TokenSlotIdEqualsZero) {
303 TestTPMTokenInfo reported_info; 305 TestTPMTokenInfo reported_info;
304 tpm_token_info_getter_->Start( 306 tpm_token_info_getter_->Start(
305 base::Bind(&RecordGetterResult, &reported_info)); 307 base::Bind(&RecordGetterResult, &reported_info));
306 base::RunLoop().RunUntilIdle(); 308 base::RunLoop().RunUntilIdle();
307 309
308 EXPECT_FALSE(reported_info.IsReady()); 310 EXPECT_FALSE(reported_info.IsReady());
309 cryptohome_client_->SetTPMTokenInfo("TOKEN_0", "2222", 0); 311 cryptohome_client_->SetTPMTokenInfo("TOKEN_0", "2222", 0);
310 312
311 EXPECT_TRUE(reported_info.IsReady()); 313 EXPECT_TRUE(reported_info.IsReady());
312 base::RunLoop().RunUntilIdle(); 314 base::RunLoop().RunUntilIdle();
313 315
314 EXPECT_TRUE(reported_info.enabled); 316 EXPECT_TRUE(reported_info.enabled);
315 EXPECT_EQ("TOKEN_0", reported_info.name); 317 EXPECT_EQ("TOKEN_0", reported_info.name);
316 EXPECT_EQ("2222", reported_info.pin); 318 EXPECT_EQ("2222", reported_info.pin);
317 EXPECT_EQ(0, reported_info.slot_id); 319 EXPECT_EQ(0, reported_info.slot_id);
318 320
319 EXPECT_EQ(std::vector<int64>(), delays_); 321 EXPECT_EQ(std::vector<int64_t>(), delays_);
320 } 322 }
321 323
322 TEST_F(SystemTPMTokenInfoGetterTest, TPMNotEnabled) { 324 TEST_F(SystemTPMTokenInfoGetterTest, TPMNotEnabled) {
323 cryptohome_client_->set_tpm_is_enabled(false); 325 cryptohome_client_->set_tpm_is_enabled(false);
324 326
325 TestTPMTokenInfo reported_info; 327 TestTPMTokenInfo reported_info;
326 tpm_token_info_getter_->Start( 328 tpm_token_info_getter_->Start(
327 base::Bind(&RecordGetterResult, &reported_info)); 329 base::Bind(&RecordGetterResult, &reported_info));
328 base::RunLoop().RunUntilIdle(); 330 base::RunLoop().RunUntilIdle();
329 331
330 EXPECT_FALSE(reported_info.IsReady()); 332 EXPECT_FALSE(reported_info.IsReady());
331 EXPECT_FALSE(reported_info.enabled); 333 EXPECT_FALSE(reported_info.enabled);
332 334
333 EXPECT_EQ(std::vector<int64>(), delays_); 335 EXPECT_EQ(std::vector<int64_t>(), delays_);
334 } 336 }
335 337
336 TEST_F(SystemTPMTokenInfoGetterTest, TpmEnabledCallFails) { 338 TEST_F(SystemTPMTokenInfoGetterTest, TpmEnabledCallFails) {
337 cryptohome_client_->set_tpm_is_enabled_failure_count(1); 339 cryptohome_client_->set_tpm_is_enabled_failure_count(1);
338 340
339 TestTPMTokenInfo reported_info; 341 TestTPMTokenInfo reported_info;
340 tpm_token_info_getter_->Start( 342 tpm_token_info_getter_->Start(
341 base::Bind(&RecordGetterResult, &reported_info)); 343 base::Bind(&RecordGetterResult, &reported_info));
342 base::RunLoop().RunUntilIdle(); 344 base::RunLoop().RunUntilIdle();
343 345
344 EXPECT_FALSE(reported_info.IsReady()); 346 EXPECT_FALSE(reported_info.IsReady());
345 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1); 347 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1);
346 348
347 EXPECT_TRUE(reported_info.IsReady()); 349 EXPECT_TRUE(reported_info.IsReady());
348 EXPECT_TRUE(reported_info.enabled); 350 EXPECT_TRUE(reported_info.enabled);
349 EXPECT_EQ("TOKEN_1", reported_info.name); 351 EXPECT_EQ("TOKEN_1", reported_info.name);
350 EXPECT_EQ("2222", reported_info.pin); 352 EXPECT_EQ("2222", reported_info.pin);
351 EXPECT_EQ(1, reported_info.slot_id); 353 EXPECT_EQ(1, reported_info.slot_id);
352 354
353 const int64 kExpectedDelays[] = {100}; 355 const int64_t kExpectedDelays[] = {100};
354 EXPECT_EQ(std::vector<int64>(kExpectedDelays, 356 EXPECT_EQ(std::vector<int64_t>(kExpectedDelays,
355 kExpectedDelays + arraysize(kExpectedDelays)), 357 kExpectedDelays + arraysize(kExpectedDelays)),
356 delays_); 358 delays_);
357 } 359 }
358 360
359 TEST_F(SystemTPMTokenInfoGetterTest, GetTpmTokenInfoInitiallyNotReady) { 361 TEST_F(SystemTPMTokenInfoGetterTest, GetTpmTokenInfoInitiallyNotReady) {
360 cryptohome_client_->set_get_tpm_token_info_not_set_count(1); 362 cryptohome_client_->set_get_tpm_token_info_not_set_count(1);
361 363
362 TestTPMTokenInfo reported_info; 364 TestTPMTokenInfo reported_info;
363 tpm_token_info_getter_->Start( 365 tpm_token_info_getter_->Start(
364 base::Bind(&RecordGetterResult, &reported_info)); 366 base::Bind(&RecordGetterResult, &reported_info));
365 base::RunLoop().RunUntilIdle(); 367 base::RunLoop().RunUntilIdle();
366 368
367 EXPECT_FALSE(reported_info.IsReady()); 369 EXPECT_FALSE(reported_info.IsReady());
368 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1); 370 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1);
369 371
370 EXPECT_TRUE(reported_info.IsReady()); 372 EXPECT_TRUE(reported_info.IsReady());
371 EXPECT_TRUE(reported_info.enabled); 373 EXPECT_TRUE(reported_info.enabled);
372 EXPECT_EQ("TOKEN_1", reported_info.name); 374 EXPECT_EQ("TOKEN_1", reported_info.name);
373 EXPECT_EQ("2222", reported_info.pin); 375 EXPECT_EQ("2222", reported_info.pin);
374 EXPECT_EQ(1, reported_info.slot_id); 376 EXPECT_EQ(1, reported_info.slot_id);
375 377
376 const int64 kExpectedDelays[] = {100}; 378 const int64_t kExpectedDelays[] = {100};
377 EXPECT_EQ(std::vector<int64>(kExpectedDelays, 379 EXPECT_EQ(std::vector<int64_t>(kExpectedDelays,
378 kExpectedDelays + arraysize(kExpectedDelays)), 380 kExpectedDelays + arraysize(kExpectedDelays)),
379 delays_); 381 delays_);
380 } 382 }
381 383
382 TEST_F(SystemTPMTokenInfoGetterTest, GetTpmTokenInfoInitiallyFails) { 384 TEST_F(SystemTPMTokenInfoGetterTest, GetTpmTokenInfoInitiallyFails) {
383 cryptohome_client_->set_get_tpm_token_info_failure_count(1); 385 cryptohome_client_->set_get_tpm_token_info_failure_count(1);
384 386
385 TestTPMTokenInfo reported_info; 387 TestTPMTokenInfo reported_info;
386 tpm_token_info_getter_->Start( 388 tpm_token_info_getter_->Start(
387 base::Bind(&RecordGetterResult, &reported_info)); 389 base::Bind(&RecordGetterResult, &reported_info));
388 base::RunLoop().RunUntilIdle(); 390 base::RunLoop().RunUntilIdle();
389 391
390 EXPECT_FALSE(reported_info.IsReady()); 392 EXPECT_FALSE(reported_info.IsReady());
391 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1); 393 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1);
392 394
393 EXPECT_TRUE(reported_info.IsReady()); 395 EXPECT_TRUE(reported_info.IsReady());
394 EXPECT_TRUE(reported_info.enabled); 396 EXPECT_TRUE(reported_info.enabled);
395 EXPECT_EQ("TOKEN_1", reported_info.name); 397 EXPECT_EQ("TOKEN_1", reported_info.name);
396 EXPECT_EQ("2222", reported_info.pin); 398 EXPECT_EQ("2222", reported_info.pin);
397 EXPECT_EQ(1, reported_info.slot_id); 399 EXPECT_EQ(1, reported_info.slot_id);
398 400
399 const int64 kExpectedDelays[] = {100}; 401 const int64_t kExpectedDelays[] = {100};
400 EXPECT_EQ(std::vector<int64>(kExpectedDelays, 402 EXPECT_EQ(std::vector<int64_t>(kExpectedDelays,
401 kExpectedDelays + arraysize(kExpectedDelays)), 403 kExpectedDelays + arraysize(kExpectedDelays)),
402 delays_); 404 delays_);
403 } 405 }
404 406
405 TEST_F(SystemTPMTokenInfoGetterTest, RetryDelaysIncreaseExponentially) { 407 TEST_F(SystemTPMTokenInfoGetterTest, RetryDelaysIncreaseExponentially) {
406 cryptohome_client_->set_tpm_is_enabled_failure_count(2); 408 cryptohome_client_->set_tpm_is_enabled_failure_count(2);
407 cryptohome_client_->set_get_tpm_token_info_failure_count(1); 409 cryptohome_client_->set_get_tpm_token_info_failure_count(1);
408 cryptohome_client_->set_get_tpm_token_info_not_set_count(3); 410 cryptohome_client_->set_get_tpm_token_info_not_set_count(3);
409 411
410 TestTPMTokenInfo reported_info; 412 TestTPMTokenInfo reported_info;
411 tpm_token_info_getter_->Start( 413 tpm_token_info_getter_->Start(
412 base::Bind(&RecordGetterResult, &reported_info)); 414 base::Bind(&RecordGetterResult, &reported_info));
413 base::RunLoop().RunUntilIdle(); 415 base::RunLoop().RunUntilIdle();
414 416
415 EXPECT_FALSE(reported_info.IsReady()); 417 EXPECT_FALSE(reported_info.IsReady());
416 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 2); 418 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 2);
417 419
418 EXPECT_TRUE(reported_info.IsReady()); 420 EXPECT_TRUE(reported_info.IsReady());
419 EXPECT_TRUE(reported_info.enabled); 421 EXPECT_TRUE(reported_info.enabled);
420 EXPECT_EQ("TOKEN_1", reported_info.name); 422 EXPECT_EQ("TOKEN_1", reported_info.name);
421 EXPECT_EQ("2222", reported_info.pin); 423 EXPECT_EQ("2222", reported_info.pin);
422 EXPECT_EQ(2, reported_info.slot_id); 424 EXPECT_EQ(2, reported_info.slot_id);
423 425
424 int64 kExpectedDelays[] = { 100, 200, 400, 800, 1600, 3200 }; 426 int64_t kExpectedDelays[] = {100, 200, 400, 800, 1600, 3200};
425 ASSERT_EQ( 427 ASSERT_EQ(std::vector<int64_t>(kExpectedDelays,
426 std::vector<int64>(kExpectedDelays, 428 kExpectedDelays + arraysize(kExpectedDelays)),
427 kExpectedDelays + arraysize(kExpectedDelays)), 429 delays_);
428 delays_);
429 } 430 }
430 431
431 TEST_F(SystemTPMTokenInfoGetterTest, RetryDelayBounded) { 432 TEST_F(SystemTPMTokenInfoGetterTest, RetryDelayBounded) {
432 cryptohome_client_->set_tpm_is_enabled_failure_count(4); 433 cryptohome_client_->set_tpm_is_enabled_failure_count(4);
433 cryptohome_client_->set_get_tpm_token_info_failure_count(5); 434 cryptohome_client_->set_get_tpm_token_info_failure_count(5);
434 cryptohome_client_->set_get_tpm_token_info_not_set_count(6); 435 cryptohome_client_->set_get_tpm_token_info_not_set_count(6);
435 436
436 TestTPMTokenInfo reported_info; 437 TestTPMTokenInfo reported_info;
437 tpm_token_info_getter_->Start( 438 tpm_token_info_getter_->Start(
438 base::Bind(&RecordGetterResult, &reported_info)); 439 base::Bind(&RecordGetterResult, &reported_info));
439 base::RunLoop().RunUntilIdle(); 440 base::RunLoop().RunUntilIdle();
440 441
441 EXPECT_FALSE(reported_info.IsReady()); 442 EXPECT_FALSE(reported_info.IsReady());
442 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1); 443 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1);
443 444
444 EXPECT_TRUE(reported_info.IsReady()); 445 EXPECT_TRUE(reported_info.IsReady());
445 EXPECT_TRUE(reported_info.enabled); 446 EXPECT_TRUE(reported_info.enabled);
446 EXPECT_EQ("TOKEN_1", reported_info.name); 447 EXPECT_EQ("TOKEN_1", reported_info.name);
447 EXPECT_EQ("2222", reported_info.pin); 448 EXPECT_EQ("2222", reported_info.pin);
448 EXPECT_EQ(1, reported_info.slot_id); 449 EXPECT_EQ(1, reported_info.slot_id);
449 450
450 int64 kExpectedDelays[] = { 451 int64_t kExpectedDelays[] = {100, 200, 400, 800, 1600,
451 100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600, 51200, 102400, 204800, 452 3200, 6400, 12800, 25600, 51200,
452 300000, 300000, 300000 453 102400, 204800, 300000, 300000, 300000};
453 }; 454 ASSERT_EQ(std::vector<int64_t>(kExpectedDelays,
454 ASSERT_EQ( 455 kExpectedDelays + arraysize(kExpectedDelays)),
455 std::vector<int64>(kExpectedDelays, 456 delays_);
456 kExpectedDelays + arraysize(kExpectedDelays)),
457 delays_);
458 } 457 }
459 458
460 TEST_F(UserTPMTokenInfoGetterTest, BasicFlow) { 459 TEST_F(UserTPMTokenInfoGetterTest, BasicFlow) {
461 TestTPMTokenInfo reported_info; 460 TestTPMTokenInfo reported_info;
462 tpm_token_info_getter_->Start( 461 tpm_token_info_getter_->Start(
463 base::Bind(&RecordGetterResult, &reported_info)); 462 base::Bind(&RecordGetterResult, &reported_info));
464 base::RunLoop().RunUntilIdle(); 463 base::RunLoop().RunUntilIdle();
465 464
466 EXPECT_FALSE(reported_info.IsReady()); 465 EXPECT_FALSE(reported_info.IsReady());
467 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1); 466 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1);
468 467
469 EXPECT_TRUE(reported_info.IsReady()); 468 EXPECT_TRUE(reported_info.IsReady());
470 EXPECT_TRUE(reported_info.enabled); 469 EXPECT_TRUE(reported_info.enabled);
471 EXPECT_EQ("TOKEN_1", reported_info.name); 470 EXPECT_EQ("TOKEN_1", reported_info.name);
472 EXPECT_EQ("2222", reported_info.pin); 471 EXPECT_EQ("2222", reported_info.pin);
473 EXPECT_EQ(1, reported_info.slot_id); 472 EXPECT_EQ(1, reported_info.slot_id);
474 473
475 EXPECT_EQ(std::vector<int64>(), delays_); 474 EXPECT_EQ(std::vector<int64_t>(), delays_);
476 } 475 }
477 476
478 TEST_F(UserTPMTokenInfoGetterTest, GetTpmTokenInfoInitiallyFails) { 477 TEST_F(UserTPMTokenInfoGetterTest, GetTpmTokenInfoInitiallyFails) {
479 cryptohome_client_->set_get_tpm_token_info_failure_count(1); 478 cryptohome_client_->set_get_tpm_token_info_failure_count(1);
480 479
481 TestTPMTokenInfo reported_info; 480 TestTPMTokenInfo reported_info;
482 tpm_token_info_getter_->Start( 481 tpm_token_info_getter_->Start(
483 base::Bind(&RecordGetterResult, &reported_info)); 482 base::Bind(&RecordGetterResult, &reported_info));
484 base::RunLoop().RunUntilIdle(); 483 base::RunLoop().RunUntilIdle();
485 484
486 EXPECT_FALSE(reported_info.IsReady()); 485 EXPECT_FALSE(reported_info.IsReady());
487 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1); 486 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1);
488 487
489 EXPECT_TRUE(reported_info.IsReady()); 488 EXPECT_TRUE(reported_info.IsReady());
490 EXPECT_TRUE(reported_info.enabled); 489 EXPECT_TRUE(reported_info.enabled);
491 EXPECT_EQ("TOKEN_1", reported_info.name); 490 EXPECT_EQ("TOKEN_1", reported_info.name);
492 EXPECT_EQ("2222", reported_info.pin); 491 EXPECT_EQ("2222", reported_info.pin);
493 EXPECT_EQ(1, reported_info.slot_id); 492 EXPECT_EQ(1, reported_info.slot_id);
494 493
495 const int64 kExpectedDelays[] = {100}; 494 const int64_t kExpectedDelays[] = {100};
496 EXPECT_EQ(std::vector<int64>(kExpectedDelays, 495 EXPECT_EQ(std::vector<int64_t>(kExpectedDelays,
497 kExpectedDelays + arraysize(kExpectedDelays)), 496 kExpectedDelays + arraysize(kExpectedDelays)),
498 delays_); 497 delays_);
499 } 498 }
500 499
501 TEST_F(UserTPMTokenInfoGetterTest, GetTpmTokenInfoInitiallyNotReady) { 500 TEST_F(UserTPMTokenInfoGetterTest, GetTpmTokenInfoInitiallyNotReady) {
502 cryptohome_client_->set_get_tpm_token_info_not_set_count(1); 501 cryptohome_client_->set_get_tpm_token_info_not_set_count(1);
503 502
504 TestTPMTokenInfo reported_info; 503 TestTPMTokenInfo reported_info;
505 tpm_token_info_getter_->Start( 504 tpm_token_info_getter_->Start(
506 base::Bind(&RecordGetterResult, &reported_info)); 505 base::Bind(&RecordGetterResult, &reported_info));
507 base::RunLoop().RunUntilIdle(); 506 base::RunLoop().RunUntilIdle();
508 507
509 EXPECT_FALSE(reported_info.IsReady()); 508 EXPECT_FALSE(reported_info.IsReady());
510 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1); 509 cryptohome_client_->SetTPMTokenInfo("TOKEN_1", "2222", 1);
511 510
512 EXPECT_TRUE(reported_info.IsReady()); 511 EXPECT_TRUE(reported_info.IsReady());
513 EXPECT_TRUE(reported_info.enabled); 512 EXPECT_TRUE(reported_info.enabled);
514 EXPECT_EQ("TOKEN_1", reported_info.name); 513 EXPECT_EQ("TOKEN_1", reported_info.name);
515 EXPECT_EQ("2222", reported_info.pin); 514 EXPECT_EQ("2222", reported_info.pin);
516 EXPECT_EQ(1, reported_info.slot_id); 515 EXPECT_EQ(1, reported_info.slot_id);
517 516
518 const int64 kExpectedDelays[] = {100}; 517 const int64_t kExpectedDelays[] = {100};
519 EXPECT_EQ(std::vector<int64>(kExpectedDelays, 518 EXPECT_EQ(std::vector<int64_t>(kExpectedDelays,
520 kExpectedDelays + arraysize(kExpectedDelays)), 519 kExpectedDelays + arraysize(kExpectedDelays)),
521 delays_); 520 delays_);
522 } 521 }
523 522
524 } // namespace 523 } // namespace
OLDNEW
« no previous file with comments | « chromeos/tpm/tpm_token_info_getter.cc ('k') | chromeos/tpm/tpm_token_loader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698