summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-02 20:04:27 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-02 20:04:27 +0000
commit47c196b188bf7b1051468a1de4e26d71cabf132f (patch)
tree527bf9e654b24b0da7ef38636a78fa6b2a97523a /net
parent35bdac852d803a462f87d72baa9c6fd56109517e (diff)
downloadchromium_src-47c196b188bf7b1051468a1de4e26d71cabf132f.zip
chromium_src-47c196b188bf7b1051468a1de4e26d71cabf132f.tar.gz
chromium_src-47c196b188bf7b1051468a1de4e26d71cabf132f.tar.bz2
[GTTF] Apply test isolation goodness to net_unittests.
TEST=Covered by net_unittests and test_shell_tests. BUG=12710 Review URL: http://codereview.chromium.org/460014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33594 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/base/host_resolver_proc.cc18
-rw-r--r--net/base/run_all_unittests.cc4
-rw-r--r--net/ocsp/nss_ocsp.cc2
3 files changed, 17 insertions, 7 deletions
diff --git a/net/base/host_resolver_proc.cc b/net/base/host_resolver_proc.cc
index cd6fc12..b12d7590 100644
--- a/net/base/host_resolver_proc.cc
+++ b/net/base/host_resolver_proc.cc
@@ -77,12 +77,6 @@ int HostResolverProc::ResolveUsingPrevious(const std::string& host,
// Keep a timer per calling thread to rate limit the calling of res_ninit.
class DnsReloadTimer {
public:
- DnsReloadTimer() {
- tls_index_.Initialize(SlotReturnFunction);
- }
-
- ~DnsReloadTimer() { }
-
// Check if the timer for the calling thread has expired. When no
// timer exists for the calling thread, create one.
bool Expired() {
@@ -112,6 +106,18 @@ class DnsReloadTimer {
}
private:
+ friend struct DefaultSingletonTraits<DnsReloadTimer>;
+
+ DnsReloadTimer() {
+ // During testing the DnsReloadTimer Singleton may be created and destroyed
+ // multiple times. Initialize the ThreadLocalStorage slot only once.
+ if (!tls_index_.initialized())
+ tls_index_.Initialize(SlotReturnFunction);
+ }
+
+ ~DnsReloadTimer() {
+ }
+
// We use thread local storage to identify which base::TimeTicks to
// interact with.
static ThreadLocalStorage::Slot tls_index_ ;
diff --git a/net/base/run_all_unittests.cc b/net/base/run_all_unittests.cc
index 2bed0b7..178bd5b 100644
--- a/net/base/run_all_unittests.cc
+++ b/net/base/run_all_unittests.cc
@@ -30,5 +30,7 @@
#include "net/base/net_test_suite.h"
int main(int argc, char** argv) {
- return NetTestSuite(argc, argv).Run();
+ NetTestSuite test_suite(argc, argv);
+ test_suite.EnforceTestIsolation();
+ return test_suite.Run();
}
diff --git a/net/ocsp/nss_ocsp.cc b/net/ocsp/nss_ocsp.cc
index 8ee1e96..a82f141 100644
--- a/net/ocsp/nss_ocsp.cc
+++ b/net/ocsp/nss_ocsp.cc
@@ -57,6 +57,8 @@ class OCSPInitSingleton : public MessageLoop::DestructionObserver {
friend struct DefaultSingletonTraits<OCSPInitSingleton>;
OCSPInitSingleton();
virtual ~OCSPInitSingleton() {
+ if (io_loop_)
+ io_loop_->RemoveDestructionObserver(this);
request_context_ = NULL;
}