summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-16 20:38:42 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-16 20:38:42 +0000
commit4e7395b4167738538b51f4884cc7c2eacf226752 (patch)
treeb6281c011f28b9f95e860c7f9548ac4f05730a98
parenta9add880aab37473c810b10bf0165575c547b5d8 (diff)
downloadchromium_src-4e7395b4167738538b51f4884cc7c2eacf226752.zip
chromium_src-4e7395b4167738538b51f4884cc7c2eacf226752.tar.gz
chromium_src-4e7395b4167738538b51f4884cc7c2eacf226752.tar.bz2
Remove test isolation enforcement code.
I think it was a failed experiment, and it only ever worked for base_unittests. This removes some potentially risky code from LazyInstance that was only needed for the test isolation. The lesson from this experiment is that removing singletons works better than trying to make tests work fine even when singletons are overused. TEST=none BUG=12710 Review URL: http://codereview.chromium.org/3127012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56229 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--base/lazy_instance.cc11
-rw-r--r--base/lazy_instance.h4
-rw-r--r--base/test/run_all_unittests.cc4
-rw-r--r--base/test/test_suite.h26
-rw-r--r--net/base/run_all_unittests.cc1
5 files changed, 1 insertions, 45 deletions
diff --git a/base/lazy_instance.cc b/base/lazy_instance.cc
index f98ba3f..957482c 100644
--- a/base/lazy_instance.cc
+++ b/base/lazy_instance.cc
@@ -36,19 +36,8 @@ void LazyInstanceHelper::CompleteInstance(void* instance, void (*dtor)(void*)) {
// Instance is created, go from CREATING to CREATED.
base::subtle::Release_Store(&state_, STATE_CREATED);
- // Allow reusing the LazyInstance (reset it to the initial state). This
- // makes possible calling all AtExit callbacks between tests. Assumes that
- // no other threads execute when AtExit callbacks are processed.
- base::AtExitManager::RegisterCallback(&LazyInstanceHelper::ResetState,
- this);
-
// Make sure that the lazily instantiated object will get destroyed at exit.
base::AtExitManager::RegisterCallback(dtor, instance);
}
-// static
-void LazyInstanceHelper::ResetState(void* helper) {
- reinterpret_cast<LazyInstanceHelper*>(helper)->state_ = STATE_EMPTY;
-}
-
} // namespace base
diff --git a/base/lazy_instance.h b/base/lazy_instance.h
index 57f8aeb5..52a5124 100644
--- a/base/lazy_instance.h
+++ b/base/lazy_instance.h
@@ -81,10 +81,6 @@ class LazyInstanceHelper {
base::subtle::Atomic32 state_;
private:
- // Resets state of |helper| to STATE_EMPTY so that it can be reused.
- // Not thread safe.
- static void ResetState(void* helper);
-
DISALLOW_COPY_AND_ASSIGN(LazyInstanceHelper);
};
diff --git a/base/test/run_all_unittests.cc b/base/test/run_all_unittests.cc
index 7b90358..841b353 100644
--- a/base/test/run_all_unittests.cc
+++ b/base/test/run_all_unittests.cc
@@ -5,7 +5,5 @@
#include "base/test/test_suite.h"
int main(int argc, char** argv) {
- TestSuite test_suite(argc, argv);
- test_suite.EnforceTestIsolation();
- return test_suite.Run();
+ return TestSuite(argc, argv).Run();
}
diff --git a/base/test/test_suite.h b/base/test/test_suite.h
index 3cfc7ec..c0a2891 100644
--- a/base/test/test_suite.h
+++ b/base/test/test_suite.h
@@ -37,25 +37,6 @@ const char kStrictFailureHandling[] = "strict_failure_handling";
// Match function used by the GetTestCount method.
typedef bool (*TestMatch)(const testing::TestInfo&);
-// By setting up a shadow AtExitManager, this test event listener ensures that
-// no state is carried between tests (like singletons, lazy instances, etc).
-// Of course it won't help if the code under test corrupts memory.
-class TestIsolationEnforcer : public testing::EmptyTestEventListener {
- public:
- virtual void OnTestStart(const testing::TestInfo& test_info) {
- ASSERT_FALSE(exit_manager_.get());
- exit_manager_.reset(new base::ShadowingAtExitManager());
- }
-
- virtual void OnTestEnd(const testing::TestInfo& test_info) {
- ASSERT_TRUE(exit_manager_.get());
- exit_manager_.reset();
- }
-
- private:
- scoped_ptr<base::ShadowingAtExitManager> exit_manager_;
-};
-
class TestSuite {
public:
TestSuite(int argc, char** argv);
@@ -111,13 +92,6 @@ class TestSuite {
return count;
}
- // TODO(phajdan.jr): Enforce isolation for all tests once it's stable.
- void EnforceTestIsolation() {
- testing::TestEventListeners& listeners =
- testing::UnitTest::GetInstance()->listeners();
- listeners.Append(new TestIsolationEnforcer);
- }
-
void CatchMaybeTests() {
testing::TestEventListeners& listeners =
testing::UnitTest::GetInstance()->listeners();
diff --git a/net/base/run_all_unittests.cc b/net/base/run_all_unittests.cc
index 85bda7d..cd11350 100644
--- a/net/base/run_all_unittests.cc
+++ b/net/base/run_all_unittests.cc
@@ -23,6 +23,5 @@ int main(int argc, char** argv) {
base::EnsureNSPRInit();
#endif
- // TODO(phajdan.jr): Enforce test isolation, http://crbug.com/12710.
return test_suite.Run();
}