diff options
author | cmasone@chromium.org <cmasone@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-14 23:06:03 +0000 |
---|---|---|
committer | cmasone@chromium.org <cmasone@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-14 23:06:03 +0000 |
commit | e7635e69babeafa99a6e3efa8c50f04302fd9935 (patch) | |
tree | 4296bb43e51b32b618293e3660de69b7df8a271d | |
parent | b8e1fa2628954ef1be01c80178e5368efef50bee (diff) | |
download | chromium_src-e7635e69babeafa99a6e3efa8c50f04302fd9935.zip chromium_src-e7635e69babeafa99a6e3efa8c50f04302fd9935.tar.gz chromium_src-e7635e69babeafa99a6e3efa8c50f04302fd9935.tar.bz2 |
Fix valgrind errors in ParallelAuthenticatorTest
BUG=58863
TEST=valgrind the unit tests
Review URL: http://codereview.chromium.org/3795001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62669 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/login/parallel_authenticator.h | 4 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/parallel_authenticator_unittest.cc | 76 | ||||
-rw-r--r-- | tools/valgrind/memcheck/suppressions.txt | 15 |
3 files changed, 47 insertions, 48 deletions
diff --git a/chrome/browser/chromeos/login/parallel_authenticator.h b/chrome/browser/chromeos/login/parallel_authenticator.h index 18c31ed..2fafdcf 100644 --- a/chrome/browser/chromeos/login/parallel_authenticator.h +++ b/chrome/browser/chromeos/login/parallel_authenticator.h @@ -31,7 +31,8 @@ class Profile; namespace chromeos { class LoginStatusConsumer; -class ParallelAuthenticatorTest; +class ParallelAuthenticator; +class ResolveChecker; // Authenticates a Chromium OS user against the Google Accounts ClientLogin API. // @@ -258,6 +259,7 @@ class ParallelAuthenticator : public Authenticator, bool checked_for_localaccount_; // needed because empty localaccount_ is ok. Lock localaccount_lock_; // a lock around checked_for_localaccount_. + friend class ResolveChecker; friend class ParallelAuthenticatorTest; FRIEND_TEST_ALL_PREFIXES(ParallelAuthenticatorTest, SaltToAscii); FRIEND_TEST_ALL_PREFIXES(ParallelAuthenticatorTest, ReadLocalaccount); diff --git a/chrome/browser/chromeos/login/parallel_authenticator_unittest.cc b/chrome/browser/chromeos/login/parallel_authenticator_unittest.cc index 191d049..ffd369c 100644 --- a/chrome/browser/chromeos/login/parallel_authenticator_unittest.cc +++ b/chrome/browser/chromeos/login/parallel_authenticator_unittest.cc @@ -25,6 +25,7 @@ #include "chrome/common/net/gaia/gaia_authenticator2_unittest.h" #include "chrome/common/net/url_fetcher.h" #include "chrome/test/testing_profile.h" +#include "chrome/test/thread_test_helper.h" #include "googleurl/src/gurl.h" #include "net/base/net_errors.h" #include "net/url_request/url_request_status.h" @@ -40,6 +41,28 @@ using ::testing::SetArgumentPointee; using ::testing::_; namespace chromeos { +class ResolveChecker : public ThreadTestHelper { + public: + ResolveChecker(TestAttemptState* state, + ParallelAuthenticator* auth, + ParallelAuthenticator::AuthState expected) + : ThreadTestHelper(BrowserThread::IO), + state_(state), + auth_(auth), + expected_(expected) { + } + ~ResolveChecker() {} + + virtual void RunTest() { + auth_->set_attempt_state(state_); + set_test_result(expected_ == auth_->ResolveState()); + } + + private: + TestAttemptState* state_; + ParallelAuthenticator* auth_; + ParallelAuthenticator::AuthState expected_; +}; class ParallelAuthenticatorTest : public ::testing::Test { public: @@ -177,13 +200,6 @@ class ParallelAuthenticatorTest : public ::testing::Test { auth->set_attempt_state(state); } - static void CheckResolve(TestAttemptState* state, - ParallelAuthenticator* auth, - ParallelAuthenticator::AuthState expected) { - auth->set_attempt_state(state); - EXPECT_EQ(expected, auth->ResolveState()); - } - MessageLoop message_loop_; BrowserThread ui_thread_; BrowserThread file_thread_; @@ -261,12 +277,11 @@ TEST_F(ParallelAuthenticatorTest, OnPasswordChangeDetected) { } TEST_F(ParallelAuthenticatorTest, ResolveNothingDone) { - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - NewRunnableFunction(&ParallelAuthenticatorTest::CheckResolve, - state_.release(), - auth_.get(), - ParallelAuthenticator::CONTINUE)); + scoped_refptr<ResolveChecker> checker( + new ResolveChecker(state_.release(), + auth_.get(), + ParallelAuthenticator::CONTINUE)); + EXPECT_TRUE(checker->Run()); } TEST_F(ParallelAuthenticatorTest, ResolvePossiblePwChange) { @@ -274,12 +289,11 @@ TEST_F(ParallelAuthenticatorTest, ResolvePossiblePwChange) { // and been rejected. state_->PresetCryptohomeStatus(false, chromeos::kCryptohomeMountErrorKeyFailure); - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - NewRunnableFunction(&ParallelAuthenticatorTest::CheckResolve, - state_.release(), - auth_.get(), - ParallelAuthenticator::POSSIBLE_PW_CHANGE)); + scoped_refptr<ResolveChecker> checker( + new ResolveChecker(state_.release(), + auth_.get(), + ParallelAuthenticator::POSSIBLE_PW_CHANGE)); + EXPECT_TRUE(checker->Run()); } TEST_F(ParallelAuthenticatorTest, DriveFailedMount) { @@ -423,13 +437,11 @@ TEST_F(ParallelAuthenticatorTest, ResolveNoMount) { state_->PresetCryptohomeStatus( false, chromeos::kCryptohomeMountErrorUserDoesNotExist); - - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - NewRunnableFunction(&ParallelAuthenticatorTest::CheckResolve, - state_.release(), - auth_.get(), - ParallelAuthenticator::NO_MOUNT)); + scoped_refptr<ResolveChecker> checker( + new ResolveChecker(state_.release(), + auth_.get(), + ParallelAuthenticator::NO_MOUNT)); + EXPECT_TRUE(checker->Run()); } TEST_F(ParallelAuthenticatorTest, ResolveCreateNew) { @@ -441,13 +453,11 @@ TEST_F(ParallelAuthenticatorTest, ResolveCreateNew) { chromeos::kCryptohomeMountErrorUserDoesNotExist); state_->PresetOnlineLoginStatus(GaiaAuthConsumer::ClientLoginResult(), LoginFailure::None()); - - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - NewRunnableFunction(&ParallelAuthenticatorTest::CheckResolve, - state_.release(), - auth_.get(), - ParallelAuthenticator::CREATE_NEW)); + scoped_refptr<ResolveChecker> checker( + new ResolveChecker(state_.release(), + auth_.get(), + ParallelAuthenticator::CREATE_NEW)); + EXPECT_TRUE(checker->Run()); } TEST_F(ParallelAuthenticatorTest, DriveCreateForNewUser) { diff --git a/tools/valgrind/memcheck/suppressions.txt b/tools/valgrind/memcheck/suppressions.txt index 5c1fb74..b8f9bc7 100644 --- a/tools/valgrind/memcheck/suppressions.txt +++ b/tools/valgrind/memcheck/suppressions.txt @@ -2871,20 +2871,6 @@ fun:_ZN54_GLOBAL__N_base_worker_pool_linux.cc_00000000_*12WorkerThread10ThreadMainEv } { - bug_58863 - Memcheck:Leak - fun:_Znw* - fun:_ZN8chromeos25ParallelAuthenticatorTest18CreateAttemptStateEv - fun:_ZN8chromeos54ParallelAuthenticatorTest_ResolvePossiblePwChange_Test8TestBodyEv -} -{ - bug_58863_2 - Memcheck:Addr4 - ... - fun:_ZN8chromeos25ParallelAuthenticatorTest12CheckResolveEPNS_16TestAttemptStateEPNS_21ParallelAuthenticatorENS3_9AuthStateE - fun:_Z18DispatchToFunctionIPFvPN8chromeos16TestAttemptStateEPNS0_21ParallelAuthenticatorENS3_9AuthStateEES2_S4_S5_EvT_RK6Tuple3IT0_T1_T2_E -} -{ bug_58874 Memcheck:Addr4 fun:PL_HashTableLookupConst @@ -2917,3 +2903,4 @@ fun:_Z16DispatchToMethodIN7history14HistoryBackendEMS1_Fv13scoped_refptrINS0_18HistoryAddPageArgsEEES4_EvPT_T0_RK6Tuple1IT1_E fun:_ZN14RunnableMethodIN7history14HistoryBackendEMS1_Fv13scoped_refptrINS0_18HistoryAddPageArgsEEE6Tuple1IS4_EE3RunEv } + |