diff options
-rw-r--r-- | storage/src/tests/bucketdb/bucketmanagertest.cpp | 15 | ||||
-rw-r--r-- | storage/src/tests/bucketdb/initializertest.cpp | 3 | ||||
-rw-r--r-- | storage/src/tests/common/metricstest.cpp | 4 | ||||
-rw-r--r-- | storage/src/tests/common/testhelper.cpp | 10 | ||||
-rw-r--r-- | storage/src/tests/common/testhelper.h | 4 | ||||
-rw-r--r-- | storage/src/tests/persistence/common/filestortestfixture.cpp | 10 | ||||
-rw-r--r-- | storage/src/tests/persistence/filestorage/filestormanagertest.cpp | 25 | ||||
-rw-r--r-- | storage/src/tests/persistence/persistencetestutils.cpp | 15 | ||||
-rw-r--r-- | storage/src/tests/persistence/persistencetestutils.h | 3 | ||||
-rw-r--r-- | storage/src/tests/storageserver/statereportertest.cpp | 4 | ||||
-rw-r--r-- | storage/src/tests/visiting/visitortest.cpp | 12 | ||||
-rw-r--r-- | vdstestlib/src/vespa/vdstestlib/cppunit/dirconfig.cpp | 31 | ||||
-rw-r--r-- | vdstestlib/src/vespa/vdstestlib/cppunit/dirconfig.hpp | 30 |
13 files changed, 99 insertions, 67 deletions
diff --git a/storage/src/tests/bucketdb/bucketmanagertest.cpp b/storage/src/tests/bucketdb/bucketmanagertest.cpp index aded935080d..b18d841bd5a 100644 --- a/storage/src/tests/bucketdb/bucketmanagertest.cpp +++ b/storage/src/tests/bucketdb/bucketmanagertest.cpp @@ -176,15 +176,22 @@ CPPUNIT_TEST_SUITE_REGISTRATION(BucketManagerTest); CPPUNIT_FAIL(ost.str()); \ } +std::string getRmDisk(const std::string & rootFolder, int disk) { + std::ostringstream os; + os << "rm -rf " << rootFolder << "/disks/d" << disk; + return os.str(); +} + void BucketManagerTest::setupTestEnvironment(bool fakePersistenceLayer, bool noDelete) { + vdstestlib::DirConfig config(getStandardConfig(true, "bucketmanagertest")); + std::string rootFolder = getRootFolder(config); if (!noDelete) { - assert(system("rm -rf vdsroot") == 0); + assert(system(("rm -rf " + rootFolder).c_str()) == 0); } - assert(system("mkdir -p vdsroot/disks/d0") == 0); - assert(system("mkdir -p vdsroot/disks/d1") == 0); - vdstestlib::DirConfig config(getStandardConfig(true)); + assert(system(getRmDisk(rootFolder, 0).c_str()) == 0); + assert(system(getRmDisk(rootFolder, 1).c_str()) == 0); DocumentTypeRepo::SP repo(new DocumentTypeRepo( *ConfigGetter<DocumenttypesConfig>::getConfig( diff --git a/storage/src/tests/bucketdb/initializertest.cpp b/storage/src/tests/bucketdb/initializertest.cpp index 35094092e53..05e00184ce3 100644 --- a/storage/src/tests/bucketdb/initializertest.cpp +++ b/storage/src/tests/bucketdb/initializertest.cpp @@ -16,8 +16,9 @@ #include <vespa/vdstestlib/cppunit/dirconfig.h> #include <vespa/vdstestlib/cppunit/macros.h> #include <vespa/storage/bucketdb/lockablemap.hpp> -#include <vespa/log/log.h> +#include <vespa/vdstestlib/cppunit/dirconfig.hpp> +#include <vespa/log/log.h> LOG_SETUP(".test.bucketdb.initializing"); namespace storage { diff --git a/storage/src/tests/common/metricstest.cpp b/storage/src/tests/common/metricstest.cpp index 9c2c8289d58..5ee7d4633ad 100644 --- a/storage/src/tests/common/metricstest.cpp +++ b/storage/src/tests/common/metricstest.cpp @@ -83,8 +83,8 @@ MetricsTest::MetricsTest() } void MetricsTest::setUp() { - assert(system("rm -rf vdsroot") == 0); - _config.reset(new vdstestlib::DirConfig(getStandardConfig(true))); + _config.reset(new vdstestlib::DirConfig(getStandardConfig(true, "metricstest"))); + assert(system(("rm -rf " + getRootFolder(*_config)).c_str()) == 0); try { _node.reset(new TestServiceLayerApp(DiskCount(4), NodeIndex(0), _config->getConfigId())); diff --git a/storage/src/tests/common/testhelper.cpp b/storage/src/tests/common/testhelper.cpp index 214885fef7f..3ec189c573b 100644 --- a/storage/src/tests/common/testhelper.cpp +++ b/storage/src/tests/common/testhelper.cpp @@ -45,7 +45,12 @@ void addStorageDistributionConfig(vdstestlib::DirConfig& dc) } } -vdstestlib::DirConfig getStandardConfig(bool storagenode) { +std::string getRootFolder(vdstestlib::DirConfig & dc) { + std::string defaultValue(""); + return dc.getConfig("stor-server").getValue("root_folder", defaultValue); +} + +vdstestlib::DirConfig getStandardConfig(bool storagenode, const std::string & rootOfRoot) { std::string clusterName("storage"); vdstestlib::DirConfig dc; vdstestlib::DirConfig::Config* config; @@ -146,7 +151,8 @@ vdstestlib::DirConfig getStandardConfig(bool storagenode) { config->set("enable_dead_lock_detector_warnings", "false"); config->set("max_merges_per_node", "25"); config->set("max_merge_queue_size", "20"); - vespalib::string rootFolder = (storagenode ? "vdsroot" : "vdsroot.distributor"); + vespalib::string rootFolder = rootOfRoot + "_"; + rootFolder += (storagenode ? "vdsroot" : "vdsroot.distributor"); config->set("root_folder", rootFolder); config->set("is_distributor", (storagenode ? "false" : "true")); config = &dc.addConfig("stor-devices"); diff --git a/storage/src/tests/common/testhelper.h b/storage/src/tests/common/testhelper.h index 988ebee2798..a833ce01321 100644 --- a/storage/src/tests/common/testhelper.h +++ b/storage/src/tests/common/testhelper.h @@ -40,7 +40,9 @@ void addFileConfig(vdstestlib::DirConfig& dc, void addStorageDistributionConfig(vdstestlib::DirConfig& dc); -vdstestlib::DirConfig getStandardConfig(bool storagenode); +vdstestlib::DirConfig getStandardConfig(bool storagenode, const std::string & rootFolder = "todo-make-unique"); + +std::string getRootFolder(vdstestlib::DirConfig & dc); void addSlobrokConfig(vdstestlib::DirConfig& dc, const mbus::Slobrok& slobrok); diff --git a/storage/src/tests/persistence/common/filestortestfixture.cpp b/storage/src/tests/persistence/common/filestortestfixture.cpp index 8f7a95f53c8..b43a9d0ca8e 100644 --- a/storage/src/tests/persistence/common/filestortestfixture.cpp +++ b/storage/src/tests/persistence/common/filestortestfixture.cpp @@ -1,11 +1,10 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include <vespa/fastos/fastos.h> -#include <sstream> #include <vespa/storage/persistence/messages.h> #include <vespa/storage/persistence/filestorage/filestormanager.h> #include <vespa/persistence/dummyimpl/dummypersistence.h> #include <tests/persistence/common/filestortestfixture.h> +#include <sstream> namespace storage { @@ -15,11 +14,12 @@ const uint32_t FileStorTestFixture::MSG_WAIT_TIME; void FileStorTestFixture::setupDisks(uint32_t diskCount) { - _config.reset(new vdstestlib::DirConfig(getStandardConfig(true))); + std::string rootOfRoot = "todo-make-unique-filestorefixture"; + _config.reset(new vdstestlib::DirConfig(getStandardConfig(true, rootOfRoot))); _config2.reset(new vdstestlib::DirConfig(*_config)); - _config2->getConfig("stor-server").set("root_folder", "vdsroot.2"); - _config2->getConfig("stor-devices").set("root_folder", "vdsroot.2"); + _config2->getConfig("stor-server").set("root_folder", (rootOfRoot + "-vdsroot.2")); + _config2->getConfig("stor-devices").set("root_folder", (rootOfRoot + "-vdsroot.2")); _config2->getConfig("stor-server").set("node_index", "1"); _smallConfig.reset(new vdstestlib::DirConfig(*_config)); diff --git a/storage/src/tests/persistence/filestorage/filestormanagertest.cpp b/storage/src/tests/persistence/filestorage/filestormanagertest.cpp index b58bdceb1e2..6d52dd455b9 100644 --- a/storage/src/tests/persistence/filestorage/filestormanagertest.cpp +++ b/storage/src/tests/persistence/filestorage/filestormanagertest.cpp @@ -1,5 +1,4 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include <vespa/fastos/fastos.h> #include <vespa/document/update/assignvalueupdate.h> #include <vespa/document/datatype/datatype.h> #include <vespa/document/fieldvalue/document.h> @@ -8,9 +7,6 @@ #include <vespa/document/fieldvalue/rawfieldvalue.h> #include <vespa/document/fieldvalue/stringfieldvalue.h> #include <vespa/document/select/parser.h> -#include <fstream> -#include <memory> -#include <atomic> #include <vespa/vdslib/state/random.h> #include <vespa/vdslib/container/mutabledocumentlist.h> #include <vespa/vdslib/container/operationlist.h> @@ -35,10 +31,14 @@ #include <tests/common/dummystoragelink.h> #include <tests/persistence/filestorage/forwardingmessagesender.h> #include <vespa/persistence/dummyimpl/dummypersistence.h> -#include <vespa/log/log.h> #include <vespa/storageapi/message/batch.h> #include <vespa/storage/storageserver/statemanager.h> +#include <vespa/fastos/file.h> +#include <fstream> +#include <memory> +#include <atomic> +#include <vespa/log/log.h> LOG_SETUP(".filestormanagertest"); using std::unique_ptr; @@ -206,11 +206,12 @@ struct FileStorManagerTest : public CppUnit::TestFixture { } void setupDisks(uint32_t diskCount) { - config.reset(new vdstestlib::DirConfig(getStandardConfig(true))); + std::string rootOfRoot = "filestormanagertest"; + config.reset(new vdstestlib::DirConfig(getStandardConfig(true, rootOfRoot))); config2.reset(new vdstestlib::DirConfig(*config)); - config2->getConfig("stor-server").set("root_folder", "vdsroot.2"); - config2->getConfig("stor-devices").set("root_folder", "vdsroot.2"); + config2->getConfig("stor-server").set("root_folder", rootOfRoot + "-vdsroot.2"); + config2->getConfig("stor-devices").set("root_folder", rootOfRoot + "-vdsroot.2"); config2->getConfig("stor-server").set("node_index", "1"); smallConfig.reset(new vdstestlib::DirConfig(*config)); @@ -220,10 +221,10 @@ struct FileStorManagerTest : public CppUnit::TestFixture { c.set("use_direct_io", "false"); c.set("maximum_gap_to_read_through", "64"); - assert(system("rm -rf vdsroot") == 0); - assert(system("rm -rf vdsroot.2") == 0); - assert(system("mkdir -p vdsroot/disks/d0") == 0); - assert(system("mkdir -p vdsroot.2/disks/d0") == 0); + assert(system(vespalib::make_string("rm -rf %s", getRootFolder(*config).c_str()).c_str()) == 0); + assert(system(vespalib::make_string("rm -rf %s", getRootFolder(*config2).c_str()).c_str()) == 0); + assert(system(vespalib::make_string("mkdir -p %s/disks/d0", getRootFolder(*config).c_str()).c_str()) == 0); + assert(system(vespalib::make_string("mkdir -p %s/disks/d0", getRootFolder(*config2).c_str()).c_str()) == 0); try { _node.reset(new TestServiceLayerApp(DiskCount(diskCount), NodeIndex(0), config->getConfigId())); diff --git a/storage/src/tests/persistence/persistencetestutils.cpp b/storage/src/tests/persistence/persistencetestutils.cpp index d1a5100b7de..e6a401548aa 100644 --- a/storage/src/tests/persistence/persistencetestutils.cpp +++ b/storage/src/tests/persistence/persistencetestutils.cpp @@ -17,12 +17,13 @@ namespace { spi::LoadType defaultLoadType(0, "default"); - vdstestlib::DirConfig initialize(uint32_t numDisks) { - system(vespalib::make_string("rm -rf vdsroot").c_str()); + vdstestlib::DirConfig initialize(uint32_t numDisks, const std::string & rootOfRoot) { + vdstestlib::DirConfig config(getStandardConfig(true, rootOfRoot)); + std::string rootFolder = getRootFolder(config); + system(vespalib::make_string("rm -rf %s", rootFolder.c_str()).c_str()); for (uint32_t i = 0; i < numDisks; i++) { - system(vespalib::make_string("mkdir -p vdsroot/disks/d%d", i).c_str()); + system(vespalib::make_string("mkdir -p %s/disks/d%d", rootFolder.c_str(), i).c_str()); } - vdstestlib::DirConfig config(getStandardConfig(true)); return config; } @@ -38,8 +39,8 @@ namespace { }; } -PersistenceTestEnvironment::PersistenceTestEnvironment(DiskCount numDisks) - : _config(initialize(numDisks)), +PersistenceTestEnvironment::PersistenceTestEnvironment(DiskCount numDisks, const std::string & rootOfRoot) + : _config(initialize(numDisks, rootOfRoot)), _messageKeeper(), _node(numDisks, NodeIndex(0), _config.getConfigId()), _component(_node.getComponentRegister(), "persistence test env"), @@ -82,7 +83,7 @@ PersistenceTestUtils::dumpBucket(const document::BucketId& bid, void PersistenceTestUtils::setupDisks(uint32_t numDisks) { - _env.reset(new PersistenceTestEnvironment(DiskCount(numDisks))); + _env.reset(new PersistenceTestEnvironment(DiskCount(numDisks), "todo-make-unique-persistencetestutils")); } std::unique_ptr<PersistenceThread> diff --git a/storage/src/tests/persistence/persistencetestutils.h b/storage/src/tests/persistence/persistencetestutils.h index d584b4dce45..4f6c6ba3bbb 100644 --- a/storage/src/tests/persistence/persistencetestutils.h +++ b/storage/src/tests/persistence/persistencetestutils.h @@ -23,8 +23,7 @@ struct MessageKeeper : public MessageSender { }; struct PersistenceTestEnvironment { - PersistenceTestEnvironment( - DiskCount numDisks); + PersistenceTestEnvironment(DiskCount numDisks, const std::string & rootOfRoot); document::TestDocMan _testDocMan; vdstestlib::DirConfig _config; diff --git a/storage/src/tests/storageserver/statereportertest.cpp b/storage/src/tests/storageserver/statereportertest.cpp index 1b6cd1d8a08..08558b515c8 100644 --- a/storage/src/tests/storageserver/statereportertest.cpp +++ b/storage/src/tests/storageserver/statereportertest.cpp @@ -74,8 +74,8 @@ StateReporterTest::StateReporterTest() } void StateReporterTest::setUp() { - assert(system("rm -rf vdsroot") == 0); - _config.reset(new vdstestlib::DirConfig(getStandardConfig(true))); + _config.reset(new vdstestlib::DirConfig(getStandardConfig(true, "statereportertest"))); + assert(system(("rm -rf " + getRootFolder(*_config)).c_str()) == 0); try { _node.reset(new TestServiceLayerApp(DiskCount(4), NodeIndex(0), _config->getConfigId())); diff --git a/storage/src/tests/visiting/visitortest.cpp b/storage/src/tests/visiting/visitortest.cpp index 90a1c51fe1f..cddd044ca4c 100644 --- a/storage/src/tests/visiting/visitortest.cpp +++ b/storage/src/tests/visiting/visitortest.cpp @@ -186,7 +186,7 @@ void VisitorTest::initializeTest(const TestParams& params) { LOG(debug, "Initializing test"); - vdstestlib::DirConfig config(getStandardConfig(true)); + vdstestlib::DirConfig config(getStandardConfig(true, "visitortest")); config.getConfig("stor-visitor").set("visitorthreads", "1"); config.getConfig("stor-visitor").set( "iterators_per_bucket", @@ -198,10 +198,12 @@ VisitorTest::initializeTest(const TestParams& params) "visitor_memory_usage_limit", std::to_string(params._maxVisitorMemoryUsage)); - system("chmod 755 vdsroot 2>/dev/null"); - system("rm -rf vdsroot* 2>/dev/null"); - assert(system("mkdir -p vdsroot/disks/d0") == 0); - assert(system("mkdir -p vdsroot/disks/d1") == 0); + std::string rootFolder = getRootFolder(config); + + system(vespalib::make_string("chmod 755 %s 2>/dev/null", rootFolder.c_str()).c_str()); + system(vespalib::make_string("rm -rf %s* 2>/dev/null", rootFolder.c_str()).c_str()); + assert(system(vespalib::make_string("mkdir -p %s/disks/d0", rootFolder.c_str()).c_str()) == 0); + assert(system(vespalib::make_string("mkdir -p %s/disks/d1", rootFolder.c_str()).c_str()) == 0); try { _messageSessionFactory.reset( diff --git a/vdstestlib/src/vespa/vdstestlib/cppunit/dirconfig.cpp b/vdstestlib/src/vespa/vdstestlib/cppunit/dirconfig.cpp index f6f81b7f2c4..d0bcb47ae0c 100644 --- a/vdstestlib/src/vespa/vdstestlib/cppunit/dirconfig.cpp +++ b/vdstestlib/src/vespa/vdstestlib/cppunit/dirconfig.cpp @@ -1,15 +1,13 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include <vespa/vdstestlib/cppunit/dirconfig.h> +#include <vespa/vdstestlib/cppunit/dirconfig.hpp> -#include <fstream> -#include <vespa/log/log.h> -#include <sstream> -#include <atomic> #include <vespa/vespalib/io/fileutil.h> #include <vespa/vespalib/util/exceptions.h> -#include <boost/lexical_cast.hpp> +#include <fstream> +#include <atomic> +#include <vespa/log/log.h> LOG_SETUP(".dirconfig"); namespace vdstestlib { @@ -142,24 +140,6 @@ DirConfig::getConfig(const ConfigName& name, bool createIfNonExisting) return it->second; } -template<typename T> -void -DirConfig::Config::setValue(const ConfigKey& key, const T& value) -{ - std::ostringstream ost; - ost << value; - set(key, ost.str()); -} - -template<typename T> -T -DirConfig::Config::getValue(const ConfigKey& key, const T& defVal) const -{ - const ConfigValue* val(get(key)); - if (val == 0) return defVal; - return boost::lexical_cast<T>(*val); -} - void DirConfig::removeConfig(const ConfigName& name) { @@ -213,4 +193,7 @@ DirConfig::isCacheDirty() const return false; } +template void DirConfig::Config::setValue(const ConfigKey &, const int &); +template std::string DirConfig::Config::getValue(const ConfigKey &, const std::string &) const; + } // storage diff --git a/vdstestlib/src/vespa/vdstestlib/cppunit/dirconfig.hpp b/vdstestlib/src/vespa/vdstestlib/cppunit/dirconfig.hpp new file mode 100644 index 00000000000..13dd481bb4e --- /dev/null +++ b/vdstestlib/src/vespa/vdstestlib/cppunit/dirconfig.hpp @@ -0,0 +1,30 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#pragma once + +#include <vespa/vdstestlib/cppunit/dirconfig.h> + +#include <sstream> +#include <boost/lexical_cast.hpp> + +namespace vdstestlib { + +template<typename T> +void +DirConfig::Config::setValue(const ConfigKey& key, const T& value) +{ + std::ostringstream ost; + ost << value; + set(key, ost.str()); +} + +template<typename T> +T +DirConfig::Config::getValue(const ConfigKey& key, const T& defVal) const +{ + const ConfigValue* val(get(key)); + if (val == 0) return defVal; + return boost::lexical_cast<T>(*val); +} + +} // storage |