You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by jb...@apache.org on 2017/05/05 15:05:37 UTC
geode-native git commit: GEODE-2877: Call .NET IAuthInitialize
through delegates.
Repository: geode-native
Updated Branches:
refs/heads/develop 89f11dfea -> 1365aade1
GEODE-2877: Call .NET IAuthInitialize through delegates.
Also fixes path issues with .NET integration tests.
Project: http://git-wip-us.apache.org/repos/asf/geode-native/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode-native/commit/1365aade
Tree: http://git-wip-us.apache.org/repos/asf/geode-native/tree/1365aade
Diff: http://git-wip-us.apache.org/repos/asf/geode-native/diff/1365aade
Branch: refs/heads/develop
Commit: 1365aade1a6a6467b23ecdf39a52b2c7f893cb22
Parents: 89f11df
Author: Jacob Barrett <jb...@pivotal.io>
Authored: Wed May 3 22:58:13 2017 +0000
Committer: Jacob Barrett <jb...@pivotal.io>
Committed: Fri May 5 08:04:49 2017 -0700
----------------------------------------------------------------------
src/clicache/integration-test/CMakeLists.txt | 16 +++++++++++++-
src/clicache/integration-test/test.bat.in | 23 +++++++++-----------
src/clicache/src/IAuthInitialize.hpp | 2 ++
src/clicache/src/impl/ManagedAuthInitialize.cpp | 4 ++--
src/clicache/src/impl/ManagedAuthInitialize.hpp | 9 +++++++-
src/tests/cli/FwkClient/ClientComm.cs | 9 +++++++-
6 files changed, 45 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/geode-native/blob/1365aade/src/clicache/integration-test/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/src/clicache/integration-test/CMakeLists.txt b/src/clicache/integration-test/CMakeLists.txt
index 8a74daa..e054cb5 100644
--- a/src/clicache/integration-test/CMakeLists.txt
+++ b/src/clicache/integration-test/CMakeLists.txt
@@ -49,6 +49,20 @@ endforeach()
enable_testing()
+# Function to resolve both config and generate stage variables.
+macro(generate_config INPUT TEMP OUTPUT)
+ configure_file(${INPUT} ${TEMP})
+ file(GENERATE OUTPUT ${OUTPUT}
+ INPUT ${TEMP}
+ CONDITION 1
+ )
+endmacro()
+
+foreach( lib ssl xerces-c sqlite )
+ get_target_property(runtime_path ${lib} INTERFACE_RUNTIME_DIR)
+ set(PATH ${PATH} ${runtime_path})
+endforeach()
+
set (TEST_SCRIPT_SUFFIX .bat)
file(GLOB SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cs")
@@ -72,7 +86,7 @@ foreach(FILE ${SOURCES})
# Get the test class (NewAPI tests have N in the file name but not test class name)
string(REGEX REPLACE "N$" "" TESTCLASS ${TEST})
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test.bat.in ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${TEST}${TEST_SCRIPT_SUFFIX})
+ generate_config(${CMAKE_CURRENT_SOURCE_DIR}/test.bat.in ${CMAKE_CURRENT_BINARY_DIR}/.${TEST}.bat.in ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${TEST}${TEST_SCRIPT_SUFFIX})
set(TEST_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${TEST}${TEST_SCRIPT_SUFFIX})
add_test(NAME ${TEST}
COMMAND ${TEST_COMMAND}
http://git-wip-us.apache.org/repos/asf/geode-native/blob/1365aade/src/clicache/integration-test/test.bat.in
----------------------------------------------------------------------
diff --git a/src/clicache/integration-test/test.bat.in b/src/clicache/integration-test/test.bat.in
index 818abca..7562837 100644
--- a/src/clicache/integration-test/test.bat.in
+++ b/src/clicache/integration-test/test.bat.in
@@ -16,18 +16,16 @@ rem See the License for the specific language governing permissions and
rem limitations under the License.
setlocal
-rem set PATH=%PATH%;$<TARGET_LINKER_FILE_DIR:apache-geode>
-rem set PATH=%PATH%;$<TARGET_LINKER_FILE_DIR:framework>
-rem set PATH=%PATH%;$<TARGET_LINKER_FILE_DIR:testobject>
-rem set PATH=%PATH%;$<TARGET_LINKER_FILE_DIR:SqLiteImpl>
-rem set PATH=%PATH%;$<TARGET_LINKER_FILE_DIR:cryptoImpl>
-rem set PATH=%PATH%;$<TARGET_LINKER_FILE_DIR:DHImpl>
-rem set PATH=%PATH%;$<TARGET_LINKER_FILE_DIR:securityImpl>
-rem set PATH=%PATH%;$<TARGET_LINKER_FILE_DIR:unit_test_callbacks>
-rem set PATH=%PATH%;${DEPENDENCIES_openssl_DIR}/bin
-rem set PATH=%PATH%;${DEPENDENCIES_sqlite_DIR}/bin
-rem set PATH=%PATH%;${DEPENDENCIES_ACE_DIR}/lib
-rem set PATH=%PATH%;${DEPENDENCIES_libxml2_DIR}/bin
+
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:apache-geode>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:framework>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:testobject>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:SqLiteImpl>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:cryptoImpl>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:DHImpl>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:securityImpl>>;%PATH%
+set PATH=$<SHELL_PATH:$<TARGET_LINKER_FILE_DIR:PkcsWrapper>>;%PATH%
+set PATH=$<JOIN:$<SHELL_PATH:${PATH}>,;>;%PATH%
set PATH=c:\Program Files (x86)\Nunit 2.6.4\bin;%PATH%
@@ -58,7 +56,6 @@ if %errorlevel% neq 0 exit /b %errorlevel%
rem In Windows, pipes to tee return tee's exit code instead of executable's
rem exit code. As a workaround we write exit codes to files.
-rem ($<TARGET_FILE:${TEST}> && echo 0 >${TEST}.errorlevel || echo 1 >${TEST}.errorlevel) | tee %LOG%
(${NUNIT_CONSOLE} /run:${NAMESPACE}.${TESTCLASS} ..\..\${CMAKE_BUILD_TYPE}\UnitTests.dll 2>&1 && echo 0 >${TEST}.errorlevel || echo 1 >${TEST}.errorlevel) | tee %LOG%
set /p errorlevel= <${TEST}.errorlevel
http://git-wip-us.apache.org/repos/asf/geode-native/blob/1365aade/src/clicache/src/IAuthInitialize.hpp
----------------------------------------------------------------------
diff --git a/src/clicache/src/IAuthInitialize.hpp b/src/clicache/src/IAuthInitialize.hpp
index c1e9c47..1b7decc 100644
--- a/src/clicache/src/IAuthInitialize.hpp
+++ b/src/clicache/src/IAuthInitialize.hpp
@@ -76,6 +76,8 @@ namespace Apache
/// </summary>
void Close();
+ delegate Properties<String^, Object^>^ GetCredentialsDelegate(Properties<String^, String^>^ props, String^ server);
+ delegate void CloseDelegate();
};
} // namespace Client
} // namespace Geode
http://git-wip-us.apache.org/repos/asf/geode-native/blob/1365aade/src/clicache/src/impl/ManagedAuthInitialize.cpp
----------------------------------------------------------------------
diff --git a/src/clicache/src/impl/ManagedAuthInitialize.cpp b/src/clicache/src/impl/ManagedAuthInitialize.cpp
index 0e022cd..69b1a62 100644
--- a/src/clicache/src/impl/ManagedAuthInitialize.cpp
+++ b/src/clicache/src/impl/ManagedAuthInitialize.cpp
@@ -178,7 +178,7 @@ namespace apache
Apache::Geode::Client::Properties<String^, String^>::Create<String^, String^>(securityprops.ptr());
String^ mg_server = Apache::Geode::Client::ManagedString::Get(server);
- return PropertiesPtr(m_managedptr->GetCredentials(mprops, mg_server)->NativePtr());
+ return PropertiesPtr(m_getCredentials->Invoke(mprops, mg_server)->NativePtr());
}
catch (Apache::Geode::Client::GeodeException^ ex) {
ex->ThrowNative();
@@ -192,7 +192,7 @@ namespace apache
void ManagedAuthInitializeGeneric::close()
{
try {
- m_managedptr->Close();
+ m_close->Invoke();
}
catch (Apache::Geode::Client::GeodeException^ ex) {
ex->ThrowNative();
http://git-wip-us.apache.org/repos/asf/geode-native/blob/1365aade/src/clicache/src/impl/ManagedAuthInitialize.hpp
----------------------------------------------------------------------
diff --git a/src/clicache/src/impl/ManagedAuthInitialize.hpp b/src/clicache/src/impl/ManagedAuthInitialize.hpp
index 4c0a628..45c9e05 100644
--- a/src/clicache/src/impl/ManagedAuthInitialize.hpp
+++ b/src/clicache/src/impl/ManagedAuthInitialize.hpp
@@ -47,7 +47,12 @@ namespace apache
/// The managed object.
/// </param>
inline ManagedAuthInitializeGeneric(Apache::Geode::Client::IAuthInitialize^ managedptr)
- : m_managedptr(managedptr) { }
+ : m_managedptr(managedptr) {
+ m_getCredentials = gcnew Apache::Geode::Client::IAuthInitialize::GetCredentialsDelegate(managedptr,
+ &Apache::Geode::Client::IAuthInitialize::GetCredentials);
+ m_close = gcnew Apache::Geode::Client::IAuthInitialize::CloseDelegate(managedptr,
+ &Apache::Geode::Client::IAuthInitialize::Close);
+ }
/// <summary>
/// Static function to create a <c>ManagedAuthInitialize</c> using given
@@ -114,6 +119,8 @@ namespace apache
/// managed object may be created by the user and will be handled automatically by the GC.
/// </summary>
gcroot<Apache::Geode::Client::IAuthInitialize^> m_managedptr;
+ gcroot<Apache::Geode::Client::IAuthInitialize::GetCredentialsDelegate^> m_getCredentials;
+ gcroot<Apache::Geode::Client::IAuthInitialize::CloseDelegate^> m_close;
// Disable the copy and assignment constructors
ManagedAuthInitializeGeneric(const ManagedAuthInitializeGeneric&);
http://git-wip-us.apache.org/repos/asf/geode-native/blob/1365aade/src/tests/cli/FwkClient/ClientComm.cs
----------------------------------------------------------------------
diff --git a/src/tests/cli/FwkClient/ClientComm.cs b/src/tests/cli/FwkClient/ClientComm.cs
index 921c1a3..d91916c 100644
--- a/src/tests/cli/FwkClient/ClientComm.cs
+++ b/src/tests/cli/FwkClient/ClientComm.cs
@@ -144,7 +144,14 @@ namespace Apache.Geode.Client.FwkClient
}
}
if (result == null) {
- mInfo.Invoke(typeInst, paramList);
+ try
+ {
+ mInfo.Invoke(typeInst, paramList);
+ }
+ catch (TargetInvocationException tie)
+ {
+ Util.Log(Util.LogLevel.Error, tie.InnerException.StackTrace.ToString());
+ }
}
else {
result = mInfo.Invoke(typeInst, paramList);