BIND 10 trac826, updated. e59d0ba90c1ed0a0fa921b98ccec9f38b744137f fix datasrc library unittests (all libraries, including tests, done)
BIND 10 source code commits
bind10-changes at lists.isc.org
Sun Jul 1 21:50:27 UTC 2012
The branch, trac826 has been updated
via e59d0ba90c1ed0a0fa921b98ccec9f38b744137f (commit)
from abde161099eb5f1957a417a64200aaeee8b373e4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit e59d0ba90c1ed0a0fa921b98ccec9f38b744137f
Author: Francis Dupont <fdupont at isc.org>
Date: Sun Jul 1 23:50:18 2012 +0200
fix datasrc library unittests (all libraries, including tests, done)
-----------------------------------------------------------------------
Summary of changes:
src/lib/datasrc/factory.cc | 12 +++++++++---
src/lib/datasrc/memory_datasrc.h | 4 ++++
src/lib/datasrc/static_datasrc_link.cc | 14 ++++++++++++--
src/lib/datasrc/tests/test_client.cc | 15 ++++++---------
.../libdatasrc_tests/libdatasrc_tests.vcproj | 4 ++--
.../libdatasrc_tests/libdatasrc_tests.vcxproj | 4 ++--
6 files changed, 35 insertions(+), 18 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/factory.cc b/src/lib/datasrc/factory.cc
index f0926ea..46f0e84 100644
--- a/src/lib/datasrc/factory.cc
+++ b/src/lib/datasrc/factory.cc
@@ -87,9 +87,11 @@ LibraryContainer::LibraryContainer(const std::string& name) {
ds_lib_ = 1;
else if (strcmp(name.c_str(), "memory_ds.so") == 0)
ds_lib_ = 2;
+ else if (strcmp(name.c_str(), "static_ds.so") == 0)
+ ds_lib_ = 3;
else {
isc_throw(DataSourceLibraryError,
- "only \"sqlite3\" and \"memory\" are supported");
+ "only \"sqlite3\", \"memory\" and \"static\" are supported");
}
#else
// use RTLD_GLOBAL so that shared symbols (e.g. exceptions)
@@ -116,13 +118,17 @@ LibraryContainer::getSym(const char* name) {
if (strcmp(name, "createInstance") == 0) {
if (ds_lib_ == 1)
return SQLCreateInstance;
- else
+ else if (ds_lib_ == 2)
return MemoryCreateInstance;
+ else
+ return StaticCreateInstance;
} else if (strcmp(name, "destroyInstance") == 0) {
if (ds_lib_ == 1)
return SQLDestroyInstance;
- else
+ else if (ds_lib_ == 2)
return MemoryDestroyInstance;
+ else
+ return StaticDestroyInstance;
} else {
isc_throw(DataSourceLibrarySymbolError,
"not \"createInstance\" or \"destroyInstance\"");
diff --git a/src/lib/datasrc/memory_datasrc.h b/src/lib/datasrc/memory_datasrc.h
index ce5b88a..b17694f 100644
--- a/src/lib/datasrc/memory_datasrc.h
+++ b/src/lib/datasrc/memory_datasrc.h
@@ -351,12 +351,16 @@ private:
/// during initialization
/// \return An instance of the memory datasource client, or NULL if there was
/// an error
+
#ifdef _WIN32
extern "C" DataSourceClient* MemoryCreateInstance(isc::data::ConstElementPtr config,
std::string& error);
+extern "C" DataSourceClient* StaticCreateInstance(isc::data::ConstElementPtr config,
+ std::string& error);
/// \brief Destroy the instance created by createInstance()
extern "C" void MemoryDestroyInstance(DataSourceClient* instance);
+extern "C" void StaticDestroyInstance(DataSourceClient* instance);
#else
extern "C" DataSourceClient* createInstance(isc::data::ConstElementPtr config,
std::string& error);
diff --git a/src/lib/datasrc/static_datasrc_link.cc b/src/lib/datasrc/static_datasrc_link.cc
index f2676c6..cba417b 100644
--- a/src/lib/datasrc/static_datasrc_link.cc
+++ b/src/lib/datasrc/static_datasrc_link.cc
@@ -30,7 +30,12 @@ namespace isc {
namespace datasrc {
DataSourceClient*
-createInstance(ConstElementPtr config, string& error) {
+#ifdef _WIN32
+StaticCreateInstance
+#else
+createInstance
+#endif
+(ConstElementPtr config, string& error) {
try {
// Create the data source
auto_ptr<InMemoryClient> client(new InMemoryClient());
@@ -54,7 +59,12 @@ createInstance(ConstElementPtr config, string& error) {
}
void
-destroyInstance(DataSourceClient* instance) {
+#ifdef _WIN32
+StaticDestroyInstance
+#else
+destroyInstance
+#endif
+(DataSourceClient* instance) {
delete instance;
}
diff --git a/src/lib/datasrc/tests/test_client.cc b/src/lib/datasrc/tests/test_client.cc
index 13fe106..e71a42b 100644
--- a/src/lib/datasrc/tests/test_client.cc
+++ b/src/lib/datasrc/tests/test_client.cc
@@ -68,21 +68,18 @@ createSQLite3Client(RRClass zclass, const Name& zname,
// the zone data from the zone file to ensure both cases have the
// same test data.
#ifdef _WIN32
- const char* const install_pcmd_prefix = "copy" " " TEST_DATA_COMMONDIR
+ const char* const install_cmd_prefix = "copy" " " TEST_DATA_COMMONDIR
"/rwtest.sqlite3 ";
- char install_cmd_prefix[1024];
- for (unsigned int i = 0;; i++) {
- install_cmd_prefix[i] = install_pcmd_prefix[i];
- if (install_cmd_prefix[i] == '/')
- install_cmd_prefix[i] = '\\';
- if (install_cmd_prefix[i] == 0)
- break;
+ string install_cmd = string(install_cmd_prefix) + db_file;
+ size_t pos = 0;
+ while ((pos = install_cmd.find('/', pos)) != std::string::npos) {
+ install_cmd[pos] = '\\';
}
#else
const char* const install_cmd_prefix = INSTALL_PROG " -c " TEST_DATA_COMMONDIR
"/rwtest.sqlite3 ";
-#endif
const string install_cmd = string(install_cmd_prefix) + db_file;
+#endif
if (system(install_cmd.c_str()) != 0) {
isc_throw(isc::Unexpected,
"Error setting up; command failed: " << install_cmd);
diff --git a/win32build/VS2008/libdatasrc_tests/libdatasrc_tests.vcproj b/win32build/VS2008/libdatasrc_tests/libdatasrc_tests.vcproj
index 766020b..0030477 100755
--- a/win32build/VS2008/libdatasrc_tests/libdatasrc_tests.vcproj
+++ b/win32build/VS2008/libdatasrc_tests/libdatasrc_tests.vcproj
@@ -43,7 +43,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\..\gtest\include;"$(BOOST)";C:\sqlite3"
- PreprocessorDefinitions="TEST_DATA_DIR=\"$(BIND10HOME)/src/lib/datasrc/tests/testdata\";TEST_DATA_BUILDDIR=\"$(BIND10HOME)/src/lib/datasrc/tests/testdata\";TEST_DATA_COMMONDIR=\"$(BIND10HOME)/src/lib/datasrc/tests/testdata\""
+ PreprocessorDefinitions="TEST_DATA_DIR=\"$(BIND10HOME)/src/lib/datasrc/tests/testdata\";TEST_DATA_BUILDDIR=\"$(BIND10HOME)/src/lib/datasrc/tests/testdata\";TEST_DATA_COMMONDIR=\"$(BIND10HOME)/src/lib/testutils/testdata\""
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
@@ -122,7 +122,7 @@
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="..;..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\..\gtest\include;"$(BOOST)";C:\sqlite3"
- PreprocessorDefinitions="TEST_DATA_DIR=\"$(BIND10HOME)/src/lib/datasrc/tests/testdata\";TEST_DATA_BUILDDIR=\"$(BIND10HOME)/src/lib/datasrc/tests/testdata\";TEST_DATA_COMMONDIR=\"$(BIND10HOME)/src/lib/datasrc/tests/testdata\""
+ PreprocessorDefinitions="TEST_DATA_DIR=\"$(BIND10HOME)/src/lib/datasrc/tests/testdata\";TEST_DATA_BUILDDIR=\"$(BIND10HOME)/src/lib/datasrc/tests/testdata\";TEST_DATA_COMMONDIR=\"$(BIND10HOME)/src/lib/testutils/testdata\""
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
diff --git a/win32build/VS2010/libdatasrc_tests/libdatasrc_tests.vcxproj b/win32build/VS2010/libdatasrc_tests/libdatasrc_tests.vcxproj
index f58155c..db0d3cc 100755
--- a/win32build/VS2010/libdatasrc_tests/libdatasrc_tests.vcxproj
+++ b/win32build/VS2010/libdatasrc_tests/libdatasrc_tests.vcxproj
@@ -52,7 +52,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>WIN32;TEST_DATA_DIR="%BIND10HOME%/src/lib/datasrc/tests/testdata";TEST_DATA_BUILDDIR="%BIND10HOME%/src/lib/datasrc/tests/testdata";TEST_DATA_COMMONDIR="%BIND10HOME%/src/lib/datasrc/tests/testdata";_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;TEST_DATA_DIR="%BIND10HOME%/src/lib/datasrc/tests/testdata";TEST_DATA_BUILDDIR="%BIND10HOME%/src/lib/datasrc/tests/testdata";TEST_DATA_COMMONDIR="%BIND10HOME%/src/lib/testutils/testdata";_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\..\gtest\include;%BOOST%;C:\sqlite3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
</ClCompile>
@@ -75,7 +75,7 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
- <PreprocessorDefinitions>WIN32;TEST_DATA_DIR="%BIND10HOME%/src/lib/datasrc/tests/testdata";TEST_DATA_BUILDDIR="%BIND10HOME%/src/lib/datasrc/tests/testdata";TEST_DATA_COMMONDIR="%BIND10HOME%/src/lib/datasrc/tests/testdata";NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>WIN32;TEST_DATA_DIR="%BIND10HOME%/src/lib/datasrc/tests/testdata";TEST_DATA_BUILDDIR="%BIND10HOME%/src/lib/datasrc/tests/testdata";TEST_DATA_COMMONDIR="%BIND10HOME%/src/lib/testutils/testdata";NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..;..\..\..\src\lib;..\..\..\src\lib\dns;..\..\..\..\gtest\include;%BOOST%;C:\sqlite3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsCpp</CompileAs>
</ClCompile>
More information about the bind10-changes
mailing list