summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcmasone@chromium.org <cmasone@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-14 23:06:03 +0000
committercmasone@chromium.org <cmasone@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-14 23:06:03 +0000
commite7635e69babeafa99a6e3efa8c50f04302fd9935 (patch)
tree4296bb43e51b32b618293e3660de69b7df8a271d
parentb8e1fa2628954ef1be01c80178e5368efef50bee (diff)
downloadchromium_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.h4
-rw-r--r--chrome/browser/chromeos/login/parallel_authenticator_unittest.cc76
-rw-r--r--tools/valgrind/memcheck/suppressions.txt15
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
}
+