From: <svn...@op...> - 2009-03-26 00:17:42
|
Author: scriptor Date: Thu Mar 26 01:17:22 2009 New Revision: 5337 URL: http://www.opensync.org/changeset/5337 Log: Initial version of the LDAP plugin having been ported to libopensync-0.3x. Added: plugins/ldap-sync/tests/ plugins/ldap-sync/tests/CMakeLists.txt (contents, props changed) plugins/ldap-sync/tests/check_add_modify_delete_and_sync (contents, props changed) plugins/ldap-sync/tests/check_add_modify_delete_and_valgrind_and_sync (contents, props changed) plugins/ldap-sync/tests/check_add_modify_delete_four_ldifs_and_sync (contents, props changed) plugins/ldap-sync/tests/check_add_modify_delete_four_ldifs_and_valgrind_and_sync (contents, props changed) plugins/ldap-sync/tests/check_connect (contents, props changed) plugins/ldap-sync/tests/check_delete_and_fastsync (contents, props changed) plugins/ldap-sync/tests/check_fastsync (contents, props changed) plugins/ldap-sync/tests/check_init (contents, props changed) plugins/ldap-sync/tests/check_ldap_add_entry (contents, props changed) plugins/ldap-sync/tests/check_ldap_base_entries_objtype (contents, props changed) plugins/ldap-sync/tests/check_ldap_delete_entry (contents, props changed) plugins/ldap-sync/tests/check_ldap_modify_entry (contents, props changed) plugins/ldap-sync/tests/check_ldap_read_entryCSN (contents, props changed) plugins/ldap-sync/tests/check_modify_and_fastsync (contents, props changed) plugins/ldap-sync/tests/check_plugin1 (contents, props changed) plugins/ldap-sync/tests/check_plugin2 (contents, props changed) plugins/ldap-sync/tests/check_plugin3 (contents, props changed) plugins/ldap-sync/tests/check_slowsync (contents, props changed) plugins/ldap-sync/tests/check_stylesheet1 (contents, props changed) plugins/ldap-sync/tests/check_stylesheet2 (contents, props changed) plugins/ldap-sync/tests/check_stylesheet3 (contents, props changed) plugins/ldap-sync/tests/check_stylesheet4 (contents, props changed) plugins/ldap-sync/tests/check_stylesheet5 (contents, props changed) plugins/ldap-sync/tests/check_sync (contents, props changed) plugins/ldap-sync/tests/contact1.ldif (contents, props changed) plugins/ldap-sync/tests/contact1.xml (contents, props changed) plugins/ldap-sync/tests/contact1_entrymods (contents, props changed) plugins/ldap-sync/tests/contact2.ldif (contents, props changed) plugins/ldap-sync/tests/contact2.xml (contents, props changed) plugins/ldap-sync/tests/contact2_entrymods (contents, props changed) plugins/ldap-sync/tests/event1.ldif (contents, props changed) plugins/ldap-sync/tests/event1.xml (contents, props changed) plugins/ldap-sync/tests/event1_entrymods (contents, props changed) plugins/ldap-sync/tests/ldap_event1.xml (contents, props changed) plugins/ldap-sync/tests/ldap_evolutionperson1.xml (contents, props changed) plugins/ldap-sync/tests/ldap_evolutionperson2.xml (contents, props changed) plugins/ldap-sync/tests/ldap_inetorgperson1.xml (contents, props changed) plugins/ldap-sync/tests/ldap_inetorgperson2.xml (contents, props changed) plugins/ldap-sync/tests/ldap_note1.xml (contents, props changed) plugins/ldap-sync/tests/ldap_todo1.xml (contents, props changed) plugins/ldap-sync/tests/note1.ldif (contents, props changed) plugins/ldap-sync/tests/note1.xml (contents, props changed) plugins/ldap-sync/tests/note1_entrymods (contents, props changed) plugins/ldap-sync/tests/opensync.suppr (contents, props changed) plugins/ldap-sync/tests/remove_test_ldifs (contents, props changed) plugins/ldap-sync/tests/test.conf (contents, props changed) plugins/ldap-sync/tests/todo1.ldif plugins/ldap-sync/tests/todo1.xml plugins/ldap-sync/tests/todo1_entrymods Added: plugins/ldap-sync/tests/CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ plugins/ldap-sync/tests/CMakeLists.txt Thu Mar 26 01:17:22 2009 (r5337) @@ -0,0 +1,440 @@ + +# CTEST_CUSTOM_TESTS_IGNORE does not work as expected. Even not +# in any CTestCustom.cmake, be it located here or in cmake/modules or whereever. +# So I have simply commented out those tests, where some data is missing +# or where the errors are known to me. + +SET ( TESTDIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE STRING "Path where the test scripts are located.") +SET ( XSLDIR "${CMAKE_SOURCE_DIR}/src/xslt" CACHE STRING "Path where the stylesheeets are located.") +SET ( XMLDIR "${CMAKE_SOURCE_DIR}/tests" CACHE STRING "Path where any *.xml files are located.") +SET ( SCHEMADIR "${LDAP_PLUGIN_OPENSYNC_SCHEMASDIR}" CACHE STRING "Path where any *.xml files are located.") + + +MESSAGE(STATUS "checking for xmllint...") +FIND_PROGRAM( XMLLINT_EXECUTABLE xmllint ) +IF (XMLLINT_EXECUTABLE) + MESSAGE( STATUS " Found ${XMLLINT_EXECUTABLE}") +ELSE (XMLLINT_EXECUTABLE) + MESSAGE( STATUS " Could NOT find xmllint. Corresponding tests will be ignored.") +ENDIF (XMLLINT_EXECUTABLE) + + +MESSAGE(STATUS "checking for ldapsearch...") +FIND_PROGRAM( LDAPSEARCH_EXECUTABLE ldapsearch ) +IF (LDAPSEARCH_EXECUTABLE) + MESSAGE( STATUS " Found ${LDAPSEARCH_EXECUTABLE}") +ELSE (LDAPSEARCH_EXECUTABLE) + MESSAGE( STATUS " Could NOT find ldapsearch. Corresponding tests will be ignored.") +ENDIF (LDAPSEARCH_EXECUTABLE) + + +MESSAGE(STATUS "checking for xsltproc...") +FIND_PROGRAM( XSLTPROC_EXECUTABLE xsltproc ) +IF (XSLTPROC_EXECUTABLE) + MESSAGE( STATUS " Found ${XSLTPROC_EXECUTABLE}") +ELSE (XSLTPROC_EXECUTABLE) + MESSAGE( STATUS " Could NOT find xsltproc. Corresponding tests will be ignored.") +ENDIF (XSLTPROC_EXECUTABLE) + + +MESSAGE(STATUS "checking for ldapadd...") +FIND_PROGRAM( LDAPADD_EXECUTABLE ldapadd ) +IF (LDAPADD_EXECUTABLE) + MESSAGE( STATUS " Found ${LDAPADD_EXECUTABLE}") +ELSE (LDAPADD_EXECUTABLE) + MESSAGE( STATUS " Could NOT find ldapadd. Corresponding tests will be ignored.") +ENDIF (LDAPADD_EXECUTABLE) + + +MESSAGE(STATUS "checking for ldapmodify...") +FIND_PROGRAM( LDAPMODIFY_EXECUTABLE ldapmodify ) +IF (LDAPMODIFY_EXECUTABLE) + MESSAGE( STATUS " Found ${LDAPMODIFY_EXECUTABLE}") +ELSE (LDAPMODIFY_EXECUTABLE) + MESSAGE( STATUS " Could NOT find ldapmodify. Corresponding tests will be ignored.") +ENDIF (LDAPMODIFY_EXECUTABLE) + + +MESSAGE(STATUS "checking for ldapdelete...") +FIND_PROGRAM( LDAPDELETE_EXECUTABLE ldapdelete ) +IF (LDAPDELETE_EXECUTABLE) + MESSAGE( STATUS " Found ${LDAPDELETE_EXECUTABLE}") +ELSE (LDAPDELETE_EXECUTABLE) + MESSAGE( STATUS " Could NOT find ldapdelete. Corresponding tests will be ignored.") +ENDIF (LDAPDELETE_EXECUTABLE) + + +MESSAGE(STATUS "checking for valgrind...") +FIND_PROGRAM( VALGRIND_EXECUTABLE valgrind ) +IF (VALGRIND_EXECUTABLE) + MESSAGE( STATUS " Found ${VALGRIND_EXECUTABLE}") +ELSE (VALGRIND_EXECUTABLE) + MESSAGE( STATUS " Could NOT find valgrind. Corresponding tests will be ignored.") +ENDIF (VALGRIND_EXECUTABLE) + + + +MESSAGE(STATUS "TESTDIR = ${TESTDIR}") +MESSAGE(STATUS "XSLDIR = ${XSLDIR}") +MESSAGE(STATUS "XMLDIR = ${XMLDIR}") +MESSAGE(STATUS "SCHEMADIR = ${SCHEMADIR}") + + + +##################################################### +# Check just the stylesheets themselves for validity using external tools: +IF (XMLLINT_EXECUTABLE) + + ADD_TEST( stylesheet1.1 ${TESTDIR}/check_stylesheet1 ${XSLDIR}/ldap_evolutionperson2xmlformat_contact.xsl) + + ADD_TEST( stylesheet1.2 ${TESTDIR}/check_stylesheet1 ${XSLDIR}/ldap_inetorgperson2xmlformat_contact.xsl) + + ADD_TEST( stylesheet1.3 ${TESTDIR}/check_stylesheet1 ${XSLDIR}/ldap_event2xmlformat_event.xsl) + + ADD_TEST( stylesheet1.4 ${TESTDIR}/check_stylesheet1 ${XSLDIR}/ldap_evolutionperson2xmlformat_contact.xsl) + + ADD_TEST( stylesheet1.5 ${TESTDIR}/check_stylesheet1 ${XSLDIR}/ldap_evolutionperson2xmlformat_contact.xsl) + + ADD_TEST( stylesheet1.6 ${TESTDIR}/check_stylesheet1 ${XSLDIR}/xmlformat_contact2ldap_evolutionperson.xsl) + + ADD_TEST( stylesheet1.7 ${TESTDIR}/check_stylesheet1 ${XSLDIR}/xmlformat_contact2ldap_inetorgperson.xsl) + + ADD_TEST( stylesheet1.8 ${TESTDIR}/check_stylesheet1 ${XSLDIR}/xmlformat_event2ldap_event.xsl) + + ADD_TEST( stylesheet1.9 ${TESTDIR}/check_stylesheet1 ${XSLDIR}/xmlformat_todo2ldap_todo.xsl) + + ADD_TEST( stylesheet1.10 ${TESTDIR}/check_stylesheet1 ${XSLDIR}/xmlformat_note2ldap_note.xsl) + +ENDIF (XMLLINT_EXECUTABLE) + + + +################################################### +# Try and apply all the stylesheets to an XML file using external tools: +IF (XMLLINT_EXECUTABLE) + IF (XSLTPROC_EXECUTABLE) + + ADD_TEST( stylesheet2.1 ${TESTDIR}/check_stylesheet2 ${XSLDIR}/ldap_evolutionperson2xmlformat_contact.xsl ${TESTDIR}/ldap_evolutionperson1.xml ) + + ADD_TEST( stylesheet2.2 ${TESTDIR}/check_stylesheet2 ${XSLDIR}/ldap_evolutionperson2xmlformat_contact.xsl ${TESTDIR}/ldap_evolutionperson2.xml ) + + ADD_TEST( stylesheet2.3 ${TESTDIR}/check_stylesheet2 ${XSLDIR}/ldap_inetorgperson2xmlformat_contact.xsl ${TESTDIR}/ldap_inetorgperson1.xml ) + + ADD_TEST( stylesheet2.4 ${TESTDIR}/check_stylesheet2 ${XSLDIR}/ldap_inetorgperson2xmlformat_contact.xsl ${TESTDIR}/ldap_inetorgperson2.xml ) + + ADD_TEST( stylesheet2.5 ${TESTDIR}/check_stylesheet2 ${XSLDIR}/ldap_event2xmlformat_event.xsl ${TESTDIR}/ldap_event1.xml ) + + ADD_TEST( stylesheet2.6 ${TESTDIR}/check_stylesheet2 ${XSLDIR}/ldap_todo2xmlformat_todo.xsl ${TESTDIR}/ldap_todo1.xml ) + + ADD_TEST( stylesheet2.7 ${TESTDIR}/check_stylesheet2 ${XSLDIR}/ldap_note2xmlformat_note.xsl ${TESTDIR}/ldap_note1.xml ) + + ADD_TEST( stylesheet2.8 ${TESTDIR}/check_stylesheet2 ${XSLDIR}/xmlformat_contact2ldap_evolutionperson.xsl ${TESTDIR}/contact1.xml ) + + ADD_TEST( stylesheet2.9 ${TESTDIR}/check_stylesheet2 ${XSLDIR}/xmlformat_contact2ldap_inetorgperson.xsl ${TESTDIR}/contact1.xml ) + + ADD_TEST( stylesheet2.10 ${TESTDIR}/check_stylesheet2 ${XSLDIR}/xmlformat_event2ldap_event.xsl ${TESTDIR}/event1.xml ) + + ADD_TEST( stylesheet2.11 ${TESTDIR}/check_stylesheet2 ${XSLDIR}/xmlformat_todo2ldap_todo.xsl ${TESTDIR}/todo1.xml ) + + ADD_TEST( stylesheet2.12 ${TESTDIR}/check_stylesheet2 ${XSLDIR}/xmlformat_note2ldap_note.xsl ${TESTDIR}/note1.xml) + + ENDIF (XSLTPROC_EXECUTABLE) +ENDIF (XMLLINT_EXECUTABLE) + + +############################################ +# Apply schema files to conversion from ldap_... to xmlformat_... +# using external tools: +IF (XMLLINT_EXECUTABLE) + IF (XSLTPROC_EXECUTABLE) + + ADD_TEST( stylesheet3.1 ${TESTDIR}/check_stylesheet3 ${XSLDIR}/ldap_evolutionperson2xmlformat_contact.xsl ${SCHEMADIR}/xmlformat-contact.xsd ${XMLDIR}/ldap_evolutionperson1.xml) + + ADD_TEST( stylesheet3.2 ${TESTDIR}/check_stylesheet3 ${XSLDIR}/ldap_evolutionperson2xmlformat_contact.xsl ${SCHEMADIR}/xmlformat-contact.xsd ${XMLDIR}/ldap_evolutionperson2.xml) + + ADD_TEST( stylesheet3.3 ${TESTDIR}/check_stylesheet3 ${XSLDIR}/ldap_inetorgperson2xmlformat_contact.xsl ${SCHEMADIR}/xmlformat-contact.xsd ${XMLDIR}/ldap_inetorgperson1.xml) + + ADD_TEST( stylesheet3.4 ${TESTDIR}/check_stylesheet3 ${XSLDIR}/ldap_inetorgperson2xmlformat_contact.xsl ${SCHEMADIR}/xmlformat-contact.xsd ${XMLDIR}/ldap_inetorgperson2.xml) + + ADD_TEST( stylesheet3.5 ${TESTDIR}/check_stylesheet3 ${XSLDIR}/ldap_event2xmlformat_event.xsl ${SCHEMADIR}/xmlformat-event.xsd ${XMLDIR}/ldap_event1.xml) + + ADD_TEST( stylesheet3.6 ${TESTDIR}/check_stylesheet3 ${XSLDIR}/ldap_todo2xmlformat_todo.xsl ${SCHEMADIR}/xmlformat-todo.xsd ${XMLDIR}/ldap_todo1.xml) + + ADD_TEST( stylesheet3.7 ${TESTDIR}/check_stylesheet3 ${XSLDIR}/ldap_note2xmlformat_note.xsl ${SCHEMADIR}/xmlformat-note.xsd ${XMLDIR}/ldap_note1.xml) + + ENDIF (XSLTPROC_EXECUTABLE) +ENDIF (XMLLINT_EXECUTABLE) + + + +############################################# +# Check validity of conversion and reconversion against XML schema files (*.xsd) +# using external tools +IF (XMLLINT_EXECUTABLE) + IF (XSLTPROC_EXECUTABLE) + + ADD_TEST( stylesheet4.1 ${TESTDIR}/check_stylesheet4 ${XSLDIR}/xmlformat_contact2ldap_evolutionperson.xsl ${XSLDIR}/ldap_evolutionperson2xmlformat_contact.xsl ${SCHEMADIR}/xmlformat-contact.xsd ${XMLDIR}/contact1.xml) + + ADD_TEST( stylesheet4.2 ${TESTDIR}/check_stylesheet4 ${XSLDIR}/xmlformat_contact2ldap_inetorgperson.xsl ${XSLDIR}/ldap_inetorgperson2xmlformat_contact.xsl ${SCHEMADIR}/xmlformat-contact.xsd ${XMLDIR}/contact1.xml) + + ADD_TEST( stylesheet4.3 ${TESTDIR}/check_stylesheet4 ${XSLDIR}/xmlformat_contact2ldap_evolutionperson.xsl ${XSLDIR}/ldap_evolutionperson2xmlformat_contact.xsl ${SCHEMADIR}/xmlformat-contact.xsd ${XMLDIR}/contact2.xml) + + ADD_TEST( stylesheet4.4 ${TESTDIR}/check_stylesheet4 ${XSLDIR}/xmlformat_contact2ldap_inetorgperson.xsl ${XSLDIR}/ldap_inetorgperson2xmlformat_contact.xsl ${SCHEMADIR}/xmlformat-contact.xsd ${XMLDIR}/contact2.xml) + + ADD_TEST( stylesheet4.5 ${TESTDIR}/check_stylesheet4 ${XSLDIR}/xmlformat_event2ldap_event.xsl ${XSLDIR}/ldap_event2xmlformat_event.xsl ${SCHEMADIR}/xmlformat-event.xsd ${XMLDIR}/event1.xml) + + ADD_TEST( stylesheet4.6 ${TESTDIR}/check_stylesheet4 ${XSLDIR}/xmlformat_todo2ldap_todo.xsl ${XSLDIR}/ldap_todo2xmlformat_todo.xsl ${SCHEMADIR}/xmlformat-todo.xsd ${XMLDIR}/todo1.xml) + + ADD_TEST( stylesheet4.7 ${TESTDIR}/check_stylesheet4 ${XSLDIR}/xmlformat_note2ldap_note.xsl ${XSLDIR}/ldap_note2xmlformat_note.xsl ${SCHEMADIR}/xmlformat-note.xsd ${XMLDIR}/note1.xml) + + ENDIF (XSLTPROC_EXECUTABLE) +ENDIF (XMLLINT_EXECUTABLE) + + + +################################################ +# Check whether the result after conversion and reconversion is identical +# to the original file +IF (XMLLINT_EXECUTABLE) + IF (XSLTPROC_EXECUTABLE) + + ADD_TEST( stylesheet5.1 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/contact1.xml ${XSLDIR}/xmlformat_contact2ldap_evolutionperson.xsl ${XSLDIR}/ldap_evolutionperson2xmlformat_contact.xsl ) + + ADD_TEST( stylesheet5.2 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/contact2.xml ${XSLDIR}/xmlformat_contact2ldap_evolutionperson.xsl ${XSLDIR}/ldap_evolutionperson2xmlformat_contact.xsl ) + + ADD_TEST( stylesheet5.3 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/contact1.xml ${XSLDIR}/xmlformat_contact2ldap_inetorgperson.xsl ${XSLDIR}/ldap_inetorgperson2xmlformat_contact.xsl ) + + ADD_TEST( stylesheet5.4 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/contact2.xml ${XSLDIR}/xmlformat_contact2ldap_inetorgperson.xsl ${XSLDIR}/ldap_inetorgperson2xmlformat_contact.xsl ) + + # ADD_TEST( stylesheet5.5 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/ldap_evolutionperson1.xml ${XSLDIR}/ldap_evolutionperson2xmlformat_contact.xsl ${XSLDIR}/xmlformat_contact2ldap_evolutionperson.xsl ) + + # ADD_TEST( stylesheet5.6 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/ldap_evolutionperson2.xml ${XSLDIR}/ldap_evolutionperson2xmlformat_contact.xsl ${XSLDIR}/xmlformat_contact2ldap_evolutionperson.xsl ) + + ADD_TEST( stylesheet5.7 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/ldap_inetorgperson1.xml ${XSLDIR}/ldap_inetorgperson2xmlformat_contact.xsl ${XSLDIR}/xmlformat_contact2ldap_inetorgperson.xsl ) + + ADD_TEST( stylesheet5.8 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/ldap_inetorgperson2.xml ${XSLDIR}/ldap_inetorgperson2xmlformat_contact.xsl ${XSLDIR}/xmlformat_contact2ldap_inetorgperson.xsl ) + + ADD_TEST( stylesheet5.9 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/event1.xml ${XSLDIR}/xmlformat_event2ldap_event.xsl ${XSLDIR}/ldap_event2xmlformat_event.xsl ) + + ADD_TEST( stylesheet5.10 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/ldap_event1.xml ${XSLDIR}/ldap_event2xmlformat_event.xsl ${XSLDIR}/xmlformat_event2ldap_event.xsl ) + + # ADD_TEST( stylesheet5.11 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/todo1.xml ${XSLDIR}/xmlformat_todo2ldap_todo.xsl ${XSLDIR}/ldap_todo2xmlformat_todo.xsl ) + + # ADD_TEST( stylesheet5.12 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/ldap_todo1.xml ${XSLDIR}/ldap_todo2xmlformat_todo.xsl ${XSLDIR}/xmlformat_todo2ldap_todo.xsl ) + + ADD_TEST( stylesheet5.13 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/note1.xml ${XSLDIR}/xmlformat_note2ldap_note.xsl ${XSLDIR}/ldap_note2xmlformat_note.xsl ) + + # ADD_TEST( stylesheet5.14 ${TESTDIR}/check_stylesheet5 ${XMLDIR}/ldap_note1.xml ${XSLDIR}/ldap_note2xmlformat_note.xsl ${XSLDIR}/xmlformat_note2ldap_note.xsl ) + + ENDIF (XSLTPROC_EXECUTABLE) +ENDIF (XMLLINT_EXECUTABLE) + + + + + +########################################################## +# Can the plugin be found, at all? +# Using osyncplugin and osynctool from libopensync. +ADD_TEST( plugin1 ${TESTDIR}/check_plugin1 ) +ADD_TEST( plugin2 ${TESTDIR}/check_plugin2 ) +ADD_TEST( plugin3 ${TESTDIR}/check_plugin3 ) + + + +########################################################## +# Interact with the LDAP server using external tools only... +# This set of tests checks whether the LDAP server is sufficiently +# configured to allow read and write access. This is, of course, +# prerequisite for the opensync plugin to do anything useful. +IF (LDAPSEARCH_EXECUTABLE) + + ADD_TEST( ldap_objtypes ${TESTDIR}/check_ldap_base_entries_objtype) + + # This is a critical test: The current implementation of getting + # hash values is based on the operational attribute "entryCSN". + # If this can not be found, the whole plugin does not work. + ADD_TEST( ldap_entryCSN ${TESTDIR}/check_ldap_read_entryCSN) + +ENDIF (LDAPSEARCH_EXECUTABLE) + + +# This is not a real test in the strict sense of the word. +# It is a script that makes sure, that the DN's of the *.ldif files +# used by the following tests are not present, yet. If they are +# present, the script removes them. +# Otherwise the first test trying to add an already exising DN will fail +# just because of "Already exists (68)" error. +ADD_TEST( remove_test_ldifs ${TESTDIR}/remove_test_ldifs ) + + +IF (LDAPADD_EXECUTABLE) + ADD_TEST( ldap_add_contact1 ${TESTDIR}/check_ldap_add_entry ${TESTDIR}/contact1.ldif ) +ENDIF (LDAPADD_EXECUTABLE) + +IF (LDAPMODIFY_EXECUTABLE) + ADD_TEST( ldap_modify_contact1 ${TESTDIR}/check_ldap_modify_entry ${TESTDIR}/contact1_entrymods) +ENDIF (LDAPMODIFY_EXECUTABLE) + +IF (LDAPDELETE_EXECUTABLE) + ADD_TEST( ldap_delete_contact1 ${TESTDIR}/check_ldap_delete_entry ${TESTDIR}/contact1.ldif ) +ENDIF (LDAPDELETE_EXECUTABLE) + + + +IF (LDAPADD_EXECUTABLE) + ADD_TEST( ldap_add_contact2 ${TESTDIR}/check_ldap_add_entry ${TESTDIR}/contact2.ldif ) +ENDIF (LDAPADD_EXECUTABLE) + +IF (LDAPMODIFY_EXECUTABLE) + ADD_TEST( ldap_modify_contact2 ${TESTDIR}/check_ldap_modify_entry ${TESTDIR}/contact2_entrymods) +ENDIF (LDAPMODIFY_EXECUTABLE) + +IF (LDAPDELETE_EXECUTABLE) + ADD_TEST( ldap_delete_contact2 ${TESTDIR}/check_ldap_delete_entry ${TESTDIR}/contact2.ldif ) +ENDIF (LDAPDELETE_EXECUTABLE) + + + +IF (LDAPADD_EXECUTABLE) + ADD_TEST( ldap_add_event ${TESTDIR}/check_ldap_add_entry ${TESTDIR}/event1.ldif ) +ENDIF (LDAPADD_EXECUTABLE) + +IF (LDAPMODIFY_EXECUTABLE) + ADD_TEST( ldap_modify_event ${TESTDIR}/check_ldap_modify_entry ${TESTDIR}/event1_entrymods) +ENDIF (LDAPMODIFY_EXECUTABLE) + +IF (LDAPDELETE_EXECUTABLE) + ADD_TEST( ldap_delete_event ${TESTDIR}/check_ldap_delete_entry ${TESTDIR}/event1.ldif ) +ENDIF (LDAPDELETE_EXECUTABLE) + + + +IF (LDAPADD_EXECUTABLE) + ADD_TEST( ldap_add_todo ${TESTDIR}/check_ldap_add_entry ${TESTDIR}/todo1.ldif ) +ENDIF (LDAPADD_EXECUTABLE) + +IF (LDAPMODIFY_EXECUTABLE) + ADD_TEST( ldap_modify_todo ${TESTDIR}/check_ldap_modify_entry ${TESTDIR}/todo1_entrymods) +ENDIF (LDAPMODIFY_EXECUTABLE) + +IF (LDAPDELETE_EXECUTABLE) + ADD_TEST( ldap_delete_todo ${TESTDIR}/check_ldap_delete_entry ${TESTDIR}/todo1.ldif ) +ENDIF (LDAPDELETE_EXECUTABLE) + + + +IF (LDAPADD_EXECUTABLE) + ADD_TEST( ldap_add_note ${TESTDIR}/check_ldap_add_entry ${TESTDIR}/note1.ldif ) +ENDIF (LDAPADD_EXECUTABLE) + +IF (LDAPMODIFY_EXECUTABLE) + ADD_TEST( ldap_modify_note ${TESTDIR}/check_ldap_modify_entry ${TESTDIR}/note1_entrymods ) +ENDIF (LDAPMODIFY_EXECUTABLE) + +IF (LDAPDELETE_EXECUTABLE) + ADD_TEST( ldap_delete_note ${TESTDIR}/check_ldap_delete_entry ${TESTDIR}/note1.ldif ) +ENDIF (LDAPDELETE_EXECUTABLE) + + + + + + + + +########################################################### +# Interact with the LDAP server using osyncplugin... +# Requires the LDAP server being configured in a way, that the +# default settings in ldap-sync lead to 1. authentication, 2. write access. +# +ADD_TEST( check_init ${TESTDIR}/check_init ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ) + +ADD_TEST( check_connect ${TESTDIR}/check_connect ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ) + +ADD_TEST( check_slowsync ${TESTDIR}/check_slowsync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ) + +ADD_TEST( check_sync ${TESTDIR}/check_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ) + +ADD_TEST( check_fastsync ${TESTDIR}/check_fastsync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ) + + + +IF (LDAPADD_EXECUTABLE) + IF (LDAPMODIFY_EXECUTABLE) + IF (LDAPDELETE_EXECUTABLE) + + ADD_TEST( add_modify_delete_contact1_and_fastsync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/contact1.ldif ${TESTDIR}/contact1_entrymods "--fastsync") + + ADD_TEST( add_modify_delete_contact2_and_fastsync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/contact2.ldif ${TESTDIR}/contact2_entrymods "--fastsync") + + ADD_TEST( add_modify_delete_event_and_fastsync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/event1.ldif ${TESTDIR}/event1_entrymods "--fastsync") + + ADD_TEST( add_modify_delete_todo_and_fastsync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/todo1.ldif ${TESTDIR}/todo1_entrymods "--fastsync" ) + + ADD_TEST( add_modify_delete_note_and_fastsync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/note1.ldif ${TESTDIR}/note1_entrymods "-fastsync") + + + ADD_TEST( add_modify_delete_contact1_and_sync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/contact1.ldif ${TESTDIR}/contact1_entrymods "--sync") + + ADD_TEST( add_modify_delete_contact2_and_sync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/contact2.ldif ${TESTDIR}/contact2_entrymods "--sync") + + ADD_TEST( add_modify_delete_event_and_sync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/event1.ldif ${TESTDIR}/event1_entrymods "--sync") + + ADD_TEST( add_modify_delete_todo_and_sync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/todo1.ldif ${TESTDIR}/todo1_entrymods "--sync" ) + + ADD_TEST( add_modify_delete_note_and_sync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/note1.ldif ${TESTDIR}/note1_entrymods "-sync") + + + ADD_TEST( add_modify_delete_contact1_and_slowsync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/contact1.ldif ${TESTDIR}/contact1_entrymods "--slowsync") + + ADD_TEST( add_modify_delete_contact2_and_slowsync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/contact2.ldif ${TESTDIR}/contact2_entrymods "--slowsync") + + ADD_TEST( add_modify_delete_event_and_slowsync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/event1.ldif ${TESTDIR}/event1_entrymods "--slowsync") + + ADD_TEST( add_modify_delete_todo_and_slowsync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/todo1.ldif ${TESTDIR}/todo1_entrymods "--slowsync" ) + + ADD_TEST( add_modify_delete_note_and_slowsync ${TESTDIR}/check_add_modify_delete_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/note1.ldif ${TESTDIR}/note1_entrymods "-slowsync") + + + ADD_TEST( add_modify_delete_all_four_objtypes_and_fastsync ${TESTDIR}/check_add_modify_delete_four_ldifs_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/contact1.ldif ${TESTDIR}/event1.ldif ${TESTDIR}/todo1.ldif ${TESTDIR}/note1.ldif ${TESTDIR}/contact1_entrymods ${TESTDIR}/event1_entrymods ${TESTDIR}/todo1_entrymods ${TESTDIR}/note1_entrymods "--fastsync") + + ADD_TEST( add_modify_delete_all_four_objtypes_and_fastsync ${TESTDIR}/check_add_modify_delete_four_ldifs_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/contact1.ldif ${TESTDIR}/event1.ldif ${TESTDIR}/todo1.ldif ${TESTDIR}/note1.ldif ${TESTDIR}/contact1_entrymods ${TESTDIR}/event1_entrymods ${TESTDIR}/todo1_entrymods ${TESTDIR}/note1_entrymods "--sync") + + ADD_TEST( add_modify_delete_all_four_objtypes_and_fastsync ${TESTDIR}/check_add_modify_delete_four_ldifs_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/contact1.ldif ${TESTDIR}/event1.ldif ${TESTDIR}/todo1.ldif ${TESTDIR}/note1.ldif ${TESTDIR}/contact1_entrymods ${TESTDIR}/event1_entrymods ${TESTDIR}/todo1_entrymods ${TESTDIR}/note1_entrymods "--slowsync") + + ENDIF (LDAPDELETE_EXECUTABLE) + ENDIF (LDAPMODIFY_EXECUTABLE) +ENDIF (LDAPADD_EXECUTABLE) + + + +############################ +# Now with valgrind... +IF (LDAPADD_EXECUTABLE) + IF (LDAPMODIFY_EXECUTABLE) + IF (LDAPDELETE_EXECUTABLE) + IF (VALGRIND_EXECUTABLE) + + ADD_TEST( valgrind_add_modify_delete_contact1_and_fastsync ${TESTDIR}/check_add_modify_delete_and_valgrind_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/contact1.ldif ${TESTDIR}/contact1_entrymods "--fastsync" ${TESTDIR}/opensync.suppr ) + + ADD_TEST( valgrind_add_modify_delete_contact2_and_fastsync ${TESTDIR}/check_add_modify_delete_and_valgrind_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/contact2.ldif ${TESTDIR}/contact2_entrymods "--fastsync" ${TESTDIR}/opensync.suppr ) + + ADD_TEST( valgrind_add_modify_delete_event_and_fastsync ${TESTDIR}/check_add_modify_delete_and_valgrind_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/event1.ldif ${TESTDIR}/event1_entrymods "--fastsync" ${TESTDIR}/opensync.suppr ) + + ADD_TEST( valgrind_add_modify_delete_todo_and_fastsync ${TESTDIR}/check_add_modify_delete_and_valgrind_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/todo1.ldif ${TESTDIR}/todo1_entrymods "--fastsync" ${TESTDIR}/opensync.suppr ) + + ADD_TEST( valgrind_add_modify_delete_note_and_fastsync ${TESTDIR}/check_add_modify_delete_and_valgrind_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/note1.ldif ${TESTDIR}/note1_entrymods "-fastsync" ${TESTDIR}/opensync.suppr ) + + + ADD_TEST( valgrind_add_modify_delete_all_four_objtypes_and_fastsync ${TESTDIR}/check_add_modify_delete_four_ldifs_and_valgrind_and_sync ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR} ${TESTDIR}/contact1.ldif ${TESTDIR}/event1.ldif ${TESTDIR}/todo1.ldif ${TESTDIR}/note1.ldif ${TESTDIR}/contact1_entrymods ${TESTDIR}/event1_entrymods ${TESTDIR}/todo1_entrymods ${TESTDIR}/note1_entrymods "--fastsync") + + ENDIF (VALGRIND_EXECUTABLE) + ENDIF (LDAPDELETE_EXECUTABLE) + ENDIF (LDAPMODIFY_EXECUTABLE) +ENDIF (LDAPADD_EXECUTABLE) + + + + +# vim:tw=0:nowrap Added: plugins/ldap-sync/tests/check_add_modify_delete_and_sync ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ plugins/ldap-sync/tests/check_add_modify_delete_and_sync Thu Mar 26 01:17:22 2009 (r5337) @@ -0,0 +1,225 @@ +#!/bin/bash + +# Call as check_add_modify_delete_and_sync /path/to/ldap-sync/build/dir /path/to/ldap-sync/src/dir /path/to/ldif /path/to/entrymods +# +# E.g.: +# ./check_add_modify_delete_and_sync /home/user1/dev/plugins/ldap-sync/build /home/user1/dev/plugins/ldap-sync contact2.ldif contact_entrymods1 + +set -x + +FILE=$0 +PLUGINNAME="ldap-sync" +PLUGINPATH="$1/src" +CFG="$2/src/$PLUGINNAME" +LDIF=$3 +ENTRYMODS=$4 +SYNCMETHOD=$5 + + +echo "PLUGINPATH = \"$PLUGINPATH\"" +echo "CFG = \"$CFG\"" +echo "LDIF = \"$LDIF\"" +echo "ENTRYMODS = \"$ENTRYMODS\"" +echo "SYNCMETHOD = \"$SYNCMETHOD\"" + +SOURCE_DIR=`dirname $FILE` +if test ! -d "$SOURCE_DIR"; then + echo "$FILE:$LINENO: ERROR: \"$SOURCE_DIR\" is not a directory. Exiting." + exit 1 +fi + +if test ! -r "$SOURCE_DIR/test.conf"; then + echo "$FILE:$LINENO: ERROR: \"$SOURCE_DIR/test.conf\" could not be read. Exiting." + exit 1 +fi + +source "$SOURCE_DIR/test.conf" + +if test -z "$AUTH"; then + echo "$FILE:$LINENO: ERROR: \$AUTH is empty. Exiting."; + exit 1 +fi + +if test "$SYNCMETHOD" != "--fastsync"; then + if test "$SYNCMETHOD" != "--slowsync"; then + if test "$SYNCMETHOD" != "--sync"; then + echo "$FILE:$FILENO: WARNING: Syncronization method \"$SYNCMETHOD\" is unknown. Forcebly falling back to \"--fastsync\"." + SYNCMETHOD="--fastsync" + fi + fi +fi + + +b=$(echo $SYNCMETHOD | cut -c "1-2") +if test "$b" != "--"; then + echo "$FILE:$LINENO: WARNING: Prepending \"--\" to SYNCMETHOD." + $SYNCMETHOD = "--${SYNCMETHOD}" +fi + + +LDAPADD=$(which ldapadd 2>/dev/null) + +if test ! -f "$LDAPADD"; then + echo "$FILE:$LINENO: ERROR: ldapadd could not be found. Exiting." + exit 1 +fi + +if test ! -x "$LDAPADD"; then + echo "$FILE:$LINENO: ERROR: ldapadd could be found, but is not executable. Exiting." + exit 1 +fi + + + + + +LDAPMODIFY=$(which ldapmodify 2>/dev/null) + +if test ! -f "$LDAPMODIFY"; then + echo "$FILE:$LINENO: ERROR: ldapmodify could not be found. Exiting." + exit 1 +fi + +if test ! -x "$LDAPMODIFY"; then + echo "$FILE:$LINENO: ERROR: ldapmodify could be found, but is not executable. Exiting." + exit 1 +fi + + + +LDAPDELETE=$(which ldapdelete 2>/dev/null) + +if test ! -f "$LDAPDELETE"; then + echo "$FILE:$LINENO: ERROR: ldapdelete could not be found. Exiting." + exit 1 +fi + +if test ! -x "$LDAPDELETE"; then + echo "$FILE:$LINENO: ERROR: ldapdelete could be found, but is not executable. Exiting." + exit 1 +fi + + + + + + + +OSYNCPLUGIN=$(which osyncplugin 2>/dev/null) +if test ! -f "$OSYNCPLUGIN"; then + echo "$FILE:$LINENO: ERROR: osyncplugin could not be found. Exiting." + exit 1 +fi + +if test ! -x "$OSYNCPLUGIN"; then + echo "$FILE:$LINENO: ERROR: osyncplugin could be found, but it is not executable. Exiting." + exit 1 +fi + + + +WHOAMI=$(which whoami 2>/dev/null) +if test -n "$WHOAMI"; then + if test -x "$WHOAMI"; then + echo -n "This script $FILE is running under the login name: "; + $WHOAMI; + fi +fi + +echo "AUTH = \"$AUTH\"" + + +if test ! -f "$LDIF"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$LDIF"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + +if test ! -f "$ENTRYMODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRYMODS\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$ENTRYMODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRYMODS\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + + + + + + +echo "Command: $LDAPADD $AUTH -a -f $LDIF" + +$LDAPADD $AUTH -a -f $LDIF +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapadd has failed. Exiting." + exit $rv; +fi + + +echo "${PLUGINPATH} ${CFG}" + +TMPDIR=`mktemp -d /tmp/ldap_sync_test.XXXXXX` || exit 1 + +$OSYNCPLUGIN --plugin $PLUGINNAME --pluginpath $PLUGINPATH --config $CFG --configdir $TMPDIR --initialize --connect $SYNCMETHOD --syncdone --disconnect --finalize || exit 1 + + + + + +echo "Command: $LDAPMODIFY $AUTH -f $ENTRYMODS" + +$LDAPMODIFY $AUTH -f $ENTRYMODS +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapmodify has failed. Exiting." + exit $rv; +fi + + +$OSYNCPLUGIN --plugin $PLUGINNAME --pluginpath $PLUGINPATH --config $CFG --configdir $TMPDIR --initialize --connect $SYNCMETHOD --syncdone --disconnect --finalize || exit 1 + + + + + + +DN_FULL=$(head -n 1 $LDIF) +if test -z "$DN_FULL"; then + echo "$FILE:$LINENO: ERROR: \$DN_FULL is empty. Exiting." + exit 1; +fi + +DN=${DN_FULL#dn:} +if test -z "$DN"; then + echo "$FILE:$LINENO: ERROR: \$DN is empty. Exiting." + exit 1; +fi + +echo "To be deleted: \"$DN\"" +echo "Command: $LDAPDELETE $AUTH -r $DN" + +$LDAPDELETE $AUTH -r $DN +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapdelete has failed. Exiting." + exit $rv; +fi + + + +$OSYNCPLUGIN --plugin $PLUGINNAME --pluginpath $PLUGINPATH --config $CFG --configdir $TMPDIR --initialize --connect $SYNCMETHOD --syncdone --disconnect --finalize || exit 1 + + + Added: plugins/ldap-sync/tests/check_add_modify_delete_and_valgrind_and_sync ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ plugins/ldap-sync/tests/check_add_modify_delete_and_valgrind_and_sync Thu Mar 26 01:17:22 2009 (r5337) @@ -0,0 +1,280 @@ +#!/bin/bash + +# Call as check_add_modify_delete_and_sync /path/to/ldap-sync/build/dir /path/to/ldap-sync/src/dir ldif entrymods suppressions +# +# E.g.: +# ./check_add_modify_delete_and_sync /home/user1/dev/plugins/ldap-sync/build /home/user1/dev/plugins/ldap-sync contact2.ldif contact_entrymods1 opensync.suppr + +set -x + +FILE=$0 +PLUGINNAME="ldap-sync" +PLUGINPATH="$1/src" +CFG="$2/src/$PLUGINNAME" +LDIF=$3 +ENTRYMODS=$4 +SYNCMETHOD=$5 +SUPPRESSION_FILE=$6 + + +SOURCE_DIR=`dirname $FILE` +if test ! -d "$SOURCE_DIR"; then + echo "$FILE:$LINENO: ERROR: \"$SOURCE_DIR\" is not a directory. Exiting." + exit 1 +fi + +if test ! -r "$SOURCE_DIR/test.conf"; then + echo "$FILE:$LINENO: ERROR: \"$SOURCE_DIR/test.conf\" could not be read. Exiting." + exit 1 +fi + + +source "$SOURCE_DIR/test.conf" + +if test -z "$AUTH"; then + echo "$FILE:$LINENO: ERROR: \$AUTH is empty. Exiting."; + exit 1 +fi + +if test -z "$VALGRIND"; then + echo "$FILE:$LINENO: ERROR: \$VALGRIND is empty. Exiting."; + exit 1; +fi + + +if test -n "$SUPPRESSION_FILE" -a -f "$SUPPRESSION_FILE" -a -r "$SUPPRESSION_FILE"; then + VALGRIND="$VALGRIND --suppressions=$SUPPRESSION_FILE" +fi + + + +echo "PLUGINPATH = \"$PLUGINPATH\"" +echo "CFG = \"$CFG\"" +echo "LDIF = \"$LDIF\"" +echo "ENTRYMODS = \"$ENTRYMODS\"" +echo "SYNCMETHOD = \"$SYNCMETHOD\"" +echo "VALGRIND = \"$VALGRIND\"" + + +if test "$SYNCMETHOD" != "--fastsync"; then + if test "$SYNCMETHOD" != "--slowsync"; then + if test "$SYNCMETHOD" != "--sync"; then + echo "$FILE:$FILENO: WARNING: Syncronization method \"$SYNCMETHOD\" is unknown. Forcebly falling back to \"--fastsync\"." + SYNCMETHOD="--fastsync" + fi + fi +fi + + +b=$(echo $SYNCMETHOD | cut -c "1-2") +if test "$b" != "--"; then + echo "$FILE:$LINENO: WARNING: Prepending \"--\" to SYNCMETHOD." + $SYNCMETHOD = "--${SYNCMETHOD}" +fi + + +LDAPADD=$(which ldapadd 2>/dev/null) + +if test ! -f "$LDAPADD"; then + echo "$FILE:$LINENO: ERROR: ldapadd could not be found. Exiting." + exit 1 +fi + +if test ! -x "$LDAPADD"; then + echo "$FILE:$LINENO: ERROR: ldapadd could be found, but is not executable. Exiting." + exit 1 +fi + + + + + +LDAPMODIFY=$(which ldapmodify 2>/dev/null) + +if test ! -f "$LDAPMODIFY"; then + echo "$FILE:$LINENO: ERROR: ldapmodify could not be found. Exiting." + exit 1 +fi + +if test ! -x "$LDAPMODIFY"; then + echo "$FILE:$LINENO: ERROR: ldapmodify could be found, but is not executable. Exiting." + exit 1 +fi + + + +LDAPDELETE=$(which ldapdelete 2>/dev/null) + +if test ! -f "$LDAPDELETE"; then + echo "$FILE:$LINENO: ERROR: ldapdelete could not be found. Exiting." + exit 1 +fi + +if test ! -x "$LDAPDELETE"; then + echo "$FILE:$LINENO: ERROR: ldapdelete could be found, but is not executable. Exiting." + exit 1 +fi + + + + + + + +OSYNCPLUGIN=$(which osyncplugin 2>/dev/null) +if test ! -f "$OSYNCPLUGIN"; then + echo "$FILE:$LINENO: ERROR: osyncplugin could not be found. Exiting." + exit 1 +fi + +if test ! -x "$OSYNCPLUGIN"; then + echo "$FILE:$LINENO: ERROR: osyncplugin could be found, but it is not executable. Exiting." + exit 1 +fi + + + +WHOAMI=$(which whoami 2>/dev/null) +if test -n "$WHOAMI"; then + if test -x "$WHOAMI"; then + echo -n "This script $FILE is running under the login name: "; + $WHOAMI; + fi +fi + +echo "AUTH = \"$AUTH\"" + + +if test ! -f "$LDIF"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$LDIF"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + +if test ! -f "$ENTRYMODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRYMODS\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$ENTRYMODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRYMODS\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + + + + + + +echo "Command: $LDAPADD $AUTH -a -f $LDIF" + +$LDAPADD $AUTH -a -f $LDIF +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapadd has failed. Exiting." + exit $rv; +fi + + +echo "${PLUGINPATH} ${CFG}" + +TMPDIR=`mktemp -d /tmp/ldap_sync_test.XXXXXX` || exit 1 + +echo +echo +echo + + +$VALGRIND $OSYNCPLUGIN --plugin $PLUGINNAME --pluginpath $PLUGINPATH --config $CFG --configdir $TMPDIR --initialize --connect $SYNCMETHOD --syncdone --disconnect --finalize +add_rv=$? + + +echo +echo +echo + + + +echo "Command: $LDAPMODIFY $AUTH -f $ENTRYMODS" + +$LDAPMODIFY $AUTH -f $ENTRYMODS +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapmodify has failed. Exiting." + exit $rv; +fi + + +echo +echo +echo + + +$VALGRIND $OSYNCPLUGIN --plugin $PLUGINNAME --pluginpath $PLUGINPATH --config $CFG --configdir $TMPDIR --initialize --connect $SYNCMETHOD --syncdone --disconnect --finalize +modify_rv=$? + + +echo +echo +echo + + + +DN_FULL=$(head -n 1 $LDIF) +if test -z "$DN_FULL"; then + echo "$FILE:$LINENO: ERROR: \$DN_FULL is empty. Exiting." + exit 1; +fi + +DN=${DN_FULL#dn:} +if test -z "$DN"; then + echo "$FILE:$LINENO: ERROR: \$DN is empty. Exiting." + exit 1; +fi + +echo "To be deleted: \"$DN\"" +echo "Command: $LDAPDELETE $AUTH -r $DN" + +$LDAPDELETE $AUTH -r $DN +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapdelete has failed. Exiting." + exit $rv; +fi + + +echo +echo +echo + +$VALGRIND $OSYNCPLUGIN --plugin $PLUGINNAME --pluginpath $PLUGINPATH --config $CFG --configdir $TMPDIR --initialize --connect $SYNCMETHOD --syncdone --disconnect --finalize +delete_rv=$? + +echo +echo +echo + +echo "add_rv = $add_rv"; +echo "modify_rv = $modify_rv"; +echo "delete_rv = $delete_rv"; + +echo +echo +echo + +if test $add_rv -ne 0 -o $modify_rv -ne 0 -o $delete_rv -ne 0; then + echo "Valgrind has reported memory errors." + exit 1 +fi + +echo +echo +echo Added: plugins/ldap-sync/tests/check_add_modify_delete_four_ldifs_and_sync ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ plugins/ldap-sync/tests/check_add_modify_delete_four_ldifs_and_sync Thu Mar 26 01:17:22 2009 (r5337) @@ -0,0 +1,414 @@ +#!/bin/bash + +# Call as check_add_modify_delete_four_ldifs_and_sync /path/to/ldap-sync/build/dir /path/to/ldap-sync/src/dir /path/to/ldif1 path/to/ldif2 path/to/ldif3 path/to/ldif4 /path/to/entry1mods /path/to/entry2mods /path/to/entry3mods /path/to/entry4mods + +set -x + +FILE=$0 +PLUGINNAME="ldap-sync" +PLUGINPATH="$1/src" +CFG="$2/src/$PLUGINNAME" +LDIF1=$3 +LDIF2=$4 +LDIF3=$5 +LDIF4=$6 +ENTRY1MODS=$7 +ENTRY2MODS=$8 +ENTRY3MODS=$9 +ENTRY4MODS=${10} +SYNCMETHOD=${11} + + +echo "PLUGINPATH = \"$PLUGINPATH\"" +echo "CFG = \"$CFG\"" +echo "LDIF = \"$LDIF\"" +echo "ENTRYMODS = \"$ENTRYMODS\"" +echo "SYNCMETHOD = \"$SYNCMETHOD\"" + +SOURCE_DIR=`dirname $FILE` +if test ! -d "$SOURCE_DIR"; then + echo "$FILE:$LINENO: ERROR: \"$SOURCE_DIR\" is not a directory. Exiting." + exit 1 +fi + +if test ! -r "$SOURCE_DIR/test.conf"; then + echo "$FILE:$LINENO: ERROR: \"$SOURCE_DIR/test.conf\" could not be read. Exiting." + exit 1 +fi + +source "$SOURCE_DIR/test.conf" + +if test -z "$AUTH"; then + echo "$FILE:$LINENO: ERROR: \$AUTH is empty. Exiting."; + exit 1 +fi + +if test "$SYNCMETHOD" != "--fastsync"; then + if test "$SYNCMETHOD" != "--slowsync"; then + if test "$SYNCMETHOD" != "--sync"; then + echo "$FILE:$FILENO: WARNING: Syncronization method \"$SYNCMETHOD\" is unknown. Forcebly falling back to \"--fastsync\"." + SYNCMETHOD="--fastsync" + fi + fi +fi + + +b=$(echo $SYNCMETHOD | cut -c "1-2") +if test "$b" != "--"; then + echo "$FILE:$LINENO: WARNING: Prepending \"--\" to SYNCMETHOD." + $SYNCMETHOD = "--${SYNCMETHOD}" +fi + + +LDAPADD=$(which ldapadd 2>/dev/null) + +if test ! -f "$LDAPADD"; then + echo "$FILE:$LINENO: ERROR: ldapadd could not be found. Exiting." + exit 1 +fi + +if test ! -x "$LDAPADD"; then + echo "$FILE:$LINENO: ERROR: ldapadd could be found, but is not executable. Exiting." + exit 1 +fi + + + + + +LDAPMODIFY=$(which ldapmodify 2>/dev/null) + +if test ! -f "$LDAPMODIFY"; then + echo "$FILE:$LINENO: ERROR: ldapmodify could not be found. Exiting." + exit 1 +fi + +if test ! -x "$LDAPMODIFY"; then + echo "$FILE:$LINENO: ERROR: ldapmodify could be found, but is not executable. Exiting." + exit 1 +fi + + + +LDAPDELETE=$(which ldapdelete 2>/dev/null) + +if test ! -f "$LDAPDELETE"; then + echo "$FILE:$LINENO: ERROR: ldapdelete could not be found. Exiting." + exit 1 +fi + +if test ! -x "$LDAPDELETE"; then + echo "$FILE:$LINENO: ERROR: ldapdelete could be found, but is not executable. Exiting." + exit 1 +fi + + + + + + + +OSYNCPLUGIN=$(which osyncplugin 2>/dev/null) +if test ! -f "$OSYNCPLUGIN"; then + echo "$FILE:$LINENO: ERROR: osyncplugin could not be found. Exiting." + exit 1 +fi + +if test ! -x "$OSYNCPLUGIN"; then + echo "$FILE:$LINENO: ERROR: osyncplugin could be found, but it is not executable. Exiting." + exit 1 +fi + + + +WHOAMI=$(which whoami 2>/dev/null) +if test -n "$WHOAMI"; then + if test -x "$WHOAMI"; then + echo -n "This script $FILE is running under the login name: "; + $WHOAMI; + fi +fi + +echo "AUTH = \"$AUTH\"" + + +if test ! -f "$LDIF1"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF1\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$LDIF1"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF1\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + +if test ! -f "$LDIF2"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF2\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$LDIF2"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF2\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + +if test ! -f "$LDIF3"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF3\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$LDIF3"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF3\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + +if test ! -f "$LDIF4"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF4\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$LDIF4"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF4\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + + + + +if test ! -f "$ENTRY1MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY1MODS\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$ENTRY1MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY1MODS\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + + +if test ! -f "$ENTRY2MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY2MODS\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$ENTRY2MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY2MODS\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + +if test ! -f "$ENTRY3MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY3MODS\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$ENTRY3MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY3MODS\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + + +if test ! -f "$ENTRY4MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY4MODS\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$ENTRY4MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY4MODS\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + + + + + + +############# Add all the four *.ldif files ############ +echo -e "\n\n\nCommand: $LDAPADD $AUTH -a -f $LDIF1\n\n\n" + +$LDAPADD $AUTH -a -f $LDIF1 +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapadd has failed. Exiting." + exit $rv; +fi + + + + + +echo -e "\n\n\nCommand: $LDAPADD $AUTH -a -f $LDIF2\n\n\n" + +$LDAPADD $AUTH -a -f $LDIF2 +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapadd has failed. Exiting." + exit $rv; +fi + + + + + +echo -e "\n\n\nCommand: $LDAPADD $AUTH -a -f $LDIF3\n\n\n" + +$LDAPADD $AUTH -a -f $LDIF3 +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapadd has failed. Exiting." + exit $rv; +fi + + + + + +echo -e "\n\n\nCommand: $LDAPADD $AUTH -a -f $LDIF4\n\n\n" + +$LDAPADD $AUTH -a -f $LDIF4 +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapadd has failed. Exiting." + exit $rv; +fi + + + + + +################# Synchronize ################### +echo "${PLUGINPATH} ${CFG}" + +TMPDIR=`mktemp -d /tmp/ldap_sync_test.XXXXXX` || exit 1 + +$OSYNCPLUGIN --plugin $PLUGINNAME --pluginpath $PLUGINPATH --config $CFG --configdir $TMPDIR --initialize --connect $SYNCMETHOD --syncdone --disconnect --finalize || exit 1 + + + + +########### Modify all the four entries ############# +echo -e "\n\n\nCommand: $LDAPMODIFY $AUTH -f $ENTRY1MODS" + +$LDAPMODIFY $AUTH -f $ENTRY1MODS +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapmodify has failed. Exiting." + exit $rv; +fi + + +echo -e "\n\n\nCommand: $LDAPMODIFY $AUTH -f $ENTRY2MODS" + +$LDAPMODIFY $AUTH -f $ENTRY2MODS +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapmodify has failed. Exiting." + exit $rv; +fi + + + + +echo -e "\n\n\nCommand: $LDAPMODIFY $AUTH -f $ENTRY3MODS" + +$LDAPMODIFY $AUTH -f $ENTRY3MODS +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapmodify has failed. Exiting." + exit $rv; +fi + + + + +echo -e "\n\n\nCommand: $LDAPMODIFY $AUTH -f $ENTRY4MODS" + +$LDAPMODIFY $AUTH -f $ENTRY4MODS +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapmodify has failed. Exiting." + exit $rv; +fi + + + + + + + + +############# Synchronize ################ + +$OSYNCPLUGIN --plugin $PLUGINNAME --pluginpath $PLUGINPATH --config $CFG --configdir $TMPDIR --initialize --connect $SYNCMETHOD --syncdone --disconnect --finalize || exit 1 + + + + + +############ Delete all the four entries ########### +delete_dn() +{ + ldif="$1" + if test -z "$ldif"; then + echo "$FILE:$LINENO: ERROR: \$ldif is empty. Exiting." + exit 1 + fi + + if test ! -r "$ldif"; then + echo "$FILE:$LINENO: ERROR: \"$ldif\" is not readable. Exiting." + exit 1 + fi + + + + DN_FULL=$(head -n 1 $ldif) + if test -z "$DN_FULL"; then + echo "$FILE:$LINENO: ERROR: \$DN_FULL is empty. Exiting." + exit 1; + fi + + DN=${DN_FULL#dn:} + if test -z "$DN"; then + echo "$FILE:$LINENO: ERROR: \$DN is empty. Exiting." + exit 1; + fi + + echo -e "\n\n\nTo be deleted: \"$DN\"" + echo "Command: $LDAPDELETE $AUTH -r $DN" + + $LDAPDELETE $AUTH -r $DN + rv=$? + if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapdelete has failed. Exiting." + exit $rv; + fi +} + + +delete_dn "$LDIF1" +delete_dn "$LDIF2" +delete_dn "$LDIF3" +delete_dn "$LDIF4" + + + +########## Synchronize ############# +$OSYNCPLUGIN --plugin $PLUGINNAME --pluginpath $PLUGINPATH --config $CFG --configdir $TMPDIR --initialize --connect $SYNCMETHOD --syncdone --disconnect --finalize || exit 1 + + + Added: plugins/ldap-sync/tests/check_add_modify_delete_four_ldifs_and_valgrind_and_sync ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ plugins/ldap-sync/tests/check_add_modify_delete_four_ldifs_and_valgrind_and_sync Thu Mar 26 01:17:22 2009 (r5337) @@ -0,0 +1,429 @@ +#!/bin/bash + +# Call as check_add_modify_delete_four_objtypes_and_valgrind_and_sync /path/to/ldap-sync/build/dir /path/to/ldap-sync/src/dir /path/to/ldif1 /path/to/ldif2 /path/to/ldif3 /path/to/ldif4 /path/to/entry1mods /path/to/entry2mods /path/to/entry3mods /path/to/entry4mods /path/to/suppressions +# + + +set -x + +FILE=$0 +PLUGINNAME="ldap-sync" +PLUGINPATH="$1/src" +CFG="$2/src/$PLUGINNAME" +LDIF1=$3 +LDIF2=$4 +LDIF3=$5 +LDIF4=$6 +ENTRY1MODS=$7 +ENTRY2MODS=$8 +ENTRY3MODS=$9 +ENTRY4MODS=${10} +SYNCMETHOD=${11} +SUPPRESSION_FILE=${12} + + +SOURCE_DIR=`dirname $FILE` +if test ! -d "$SOURCE_DIR"; then + echo "$FILE:$LINENO: ERROR: \"$SOURCE_DIR\" is not a directory. Exiting." + exit 1 +fi + +if test ! -r "$SOURCE_DIR/test.conf"; then + echo "$FILE:$LINENO: ERROR: \"$SOURCE_DIR/test.conf\" could not be read. Exiting." + exit 1 +fi + + +source "$SOURCE_DIR/test.conf" + +if test -z "$AUTH"; then + echo "$FILE:$LINENO: ERROR: \$AUTH is empty. Exiting."; + exit 1 +fi + +if test -z "$VALGRIND"; then + echo "$FILE:$LINENO: ERROR: \$VALGRIND is empty. Exiting."; + exit 1; +fi + + +if test -n "$SUPPRESSION_FILE" -a -f "$SUPPRESSION_FILE" -a -r "$SUPPRESSION_FILE"; then + VALGRIND="$VALGRIND --suppressions=$SUPPRESSION_FILE" +fi + + + +echo "PLUGINPATH = \"$PLUGINPATH\"" +echo "CFG = \"$CFG\"" +echo "LDIF = \"$LDIF\"" +echo "ENTRYMODS = \"$ENTRYMODS\"" +echo "SYNCMETHOD = \"$SYNCMETHOD\"" +echo "VALGRIND = \"$VALGRIND\"" + + +if test "$SYNCMETHOD" != "--fastsync"; then + if test "$SYNCMETHOD" != "--slowsync"; then + if test "$SYNCMETHOD" != "--sync"; then + echo "$FILE:$FILENO: WARNING: Syncronization method \"$SYNCMETHOD\" is unknown. Forcebly falling back to \"--fastsync\"." + SYNCMETHOD="--fastsync" + fi + fi +fi + + +b=$(echo $SYNCMETHOD | cut -c "1-2") +if test "$b" != "--"; then + echo "$FILE:$LINENO: WARNING: Prepending \"--\" to SYNCMETHOD." + $SYNCMETHOD = "--${SYNCMETHOD}" +fi + + +LDAPADD=$(which ldapadd 2>/dev/null) + +if test ! -f "$LDAPADD"; then + echo "$FILE:$LINENO: ERROR: ldapadd could not be found. Exiting." + exit 1 +fi + +if test ! -x "$LDAPADD"; then + echo "$FILE:$LINENO: ERROR: ldapadd could be found, but is not executable. Exiting." + exit 1 +fi + + + + + +LDAPMODIFY=$(which ldapmodify 2>/dev/null) + +if test ! -f "$LDAPMODIFY"; then + echo "$FILE:$LINENO: ERROR: ldapmodify could not be found. Exiting." + exit 1 +fi + +if test ! -x "$LDAPMODIFY"; then + echo "$FILE:$LINENO: ERROR: ldapmodify could be found, but is not executable. Exiting." + exit 1 +fi + + + +LDAPDELETE=$(which ldapdelete 2>/dev/null) + +if test ! -f "$LDAPDELETE"; then + echo "$FILE:$LINENO: ERROR: ldapdelete could not be found. Exiting." + exit 1 +fi + +if test ! -x "$LDAPDELETE"; then + echo "$FILE:$LINENO: ERROR: ldapdelete could be found, but is not executable. Exiting." + exit 1 +fi + + + + + + + +OSYNCPLUGIN=$(which osyncplugin 2>/dev/null) +if test ! -f "$OSYNCPLUGIN"; then + echo "$FILE:$LINENO: ERROR: osyncplugin could not be found. Exiting." + exit 1 +fi + +if test ! -x "$OSYNCPLUGIN"; then + echo "$FILE:$LINENO: ERROR: osyncplugin could be found, but it is not executable. Exiting." + exit 1 +fi + + + +WHOAMI=$(which whoami 2>/dev/null) +if test -n "$WHOAMI"; then + if test -x "$WHOAMI"; then + echo -n "This script $FILE is running under the login name: "; + $WHOAMI; + fi +fi + +echo "AUTH = \"$AUTH\"" + + + + + +if test ! -f "$LDIF1"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF1\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$LDIF1"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF1\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + +if test ! -f "$LDIF2"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF2\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$LDIF2"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF2\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + +if test ! -f "$LDIF3"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF3\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$LDIF3"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF3\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + +if test ! -f "$LDIF4"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF4\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$LDIF4"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF4\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + + + + +if test ! -f "$ENTRY1MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY1MODS\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$ENTRY1MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY1MODS\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + + +if test ! -f "$ENTRY2MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY2MODS\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$ENTRY2MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY2MODS\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + + +if test ! -f "$ENTRY3MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY3MODS\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$ENTRY3MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY3MODS\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + + + +if test ! -f "$ENTRY4MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY4MODS\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$ENTRY4MODS"; then + echo "$FILE:$LINENO: ERROR: \"$ENTRY4MODS\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + + + + + + + +add_ldif() +{ + ldif=$1 + if test -z "$ldif"; then + echo "$FILE:$LINENO: ERROR: \$ldif is empty. Returning." + return 1; + fi + + echo "Command: $LDAPADD $AUTH -a -f \"$ldif\"" + + $LDAPADD $AUTH -a -f "$ldif" + rv=$? + if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapadd has failed. Exiting." + exit $rv; + fi + + return $rv +} + + + + + + + + +run_valgrind_and_osyncplugin() +{ + echo "${PLUGINPATH} ${CFG}" + + + echo + echo + echo + + + $VALGRIND $OSYNCPLUGIN --plugin $PLUGINNAME --pluginpath $PLUGINPATH --config $CFG --configdir $TMPDIR --initialize --connect $SYNCMETHOD --syncdone --disconnect --finalize +rv=$? + + + echo + echo + echo + + return $rv +} + + + + + + +modify_dn() +{ + entrymods=$1 + if test -z "$entrymods"; then + echo "$FILE:$LINENO: ERROR: \$entrymods is empty. Returning." + return 1; + fi + + + echo "Command: $LDAPMODIFY $AUTH -f \"$entrymods\"" + + $LDAPMODIFY $AUTH -f "$entrymods" + rv=$? + if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapmodify has failed. Exiting." + exit $rv; + fi +} + + + + + +delete_dn() +{ + ldif=$1 + if test -z "$ldif"; then + echo "$FILE:$LINENO: ERROR: \$ldif is empty. Returning." + return 1; + fi + + DN_FULL=$(head -n 1 $ldif) + if test -z "$DN_FULL"; then + echo "$FILE:$LINENO: ERROR: \$DN_FULL is empty. Exiting." + exit 1; + fi + + DN=${DN_FULL#dn:} + if test -z "$DN"; then + echo "$FILE:$LINENO: ERROR: \$DN is empty. Exiting." + exit 1; + fi + + echo "To be deleted: \"$DN\"" + echo "Command: $LDAPDELETE $AUTH -r \"$DN\"" + + $LDAPDELETE $AUTH -r "$DN" + rv=$? + if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapdelete has failed. Exiting." + exit $rv; + fi +} + + + + + +############### main() ############### + +TMPDIR=`mktemp -d /tmp/ldap_sync_test.XXXXXX` || exit 1 + + +add_ldif "$LDIF1"; +add_ldif "$LDIF2"; +add_ldif "$LDIF3"; +add_ldif "$LDIF4"; + +run_valgrind_and_osyncplugin +add_rv=$? + + + +modify_dn "$ENTRY1MODS"; +modify_dn "$ENTRY2MODS"; +modify_dn "$ENTRY3MODS"; +modify_dn "$ENTRY4MODS"; + +run_valgrind_and_osyncplugin +modify_rv=$? + + + +delete_dn "$LDIF1"; +delete_dn "$LDIF2"; +delete_dn "$LDIF3"; +delete_dn "$LDIF4"; + +run_valgrind_and_osyncplugin +delete_rv=$? + + + +echo +echo +echo + +echo "add_rv = $add_rv"; +echo "modify_rv = $modify_rv"; +echo "delete_rv = $delete_rv"; + +echo +echo +echo + +if test $add_rv -ne 0 -o $modify_rv -ne 0 -o $delete_rv -ne 0; then + echo "Valgrind has reported memory errors." + exit 1 +fi + +echo +echo +echo Added: plugins/ldap-sync/tests/check_connect ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ plugins/ldap-sync/tests/check_connect Thu Mar 26 01:17:22 2009 (r5337) @@ -0,0 +1,34 @@ +#!/bin/bash + +# Call as check_connect /path/to/ldap-sync/build/dir /path/to/ldap-sync/src/dir +# +# E.g.: +# ./check_connect /home/user1/dev/plugins/ldap-sync/build_debug /home/user1/dev/plugins/ldap-sync + +set -x + +FILE=$0 +PLUGINNAME="ldap-sync" +PLUGINPATH="$1/src" +CFG="$2/src/$PLUGINNAME" + +OSYNCPLUGIN=$(which osyncplugin 2>/dev/null) +if test ! -f "$OSYNCPLUGIN"; then + echo "$FILE:$LINENO: ERROR: osyncplugin could not be found. Exiting." + exit 1 +fi + +if test ! -x "$OSYNCPLUGIN"; then + echo "$FILE:$LINENO: ERROR: osyncplugin could be found, but it is not executable. Exiting." + exit 1 +fi + + +echo "${PLUGINPATH} ${CFG}" + +TMPDIR=`mktemp -d /tmp/ldap_sync_test.XXXXXX` || exit 1 + +echo "$OSYNCPLUGIN --plugin $PLUGINNAME --pluginpath $PLUGINPATH --config $CFG --configdir $TMPDIR --initialize --connect --disconnect --finalize" + +$OSYNCPLUGIN --plugin $PLUGINNAME --pluginpath $PLUGINPATH --config $CFG --configdir $TMPDIR --initialize --connect --disconnect --finalize || exit 1 + Added: plugins/ldap-sync/tests/check_delete_and_fastsync ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ plugins/ldap-sync/tests/check_delete_and_fastsync Thu Mar 26 01:17:22 2009 (r5337) @@ -0,0 +1,121 @@ +#!/bin/bash + +# Call as check_add_and_sync /path/to/ldap-sync/build/dir /path/to/ldap-sync/src/dir +# E.g.: +# ./check_add_and_sync /home/user1/dev/plugins/ldap-sync/build /home/user1/dev/plugins/ldap-sync contact2.ldif + +set -x + +FILE=$0 +PLUGINNAME="ldap-sync" +PLUGINPATH="$1/src" +CFG="$2/src/$PLUGINNAME" +LDIF=$3 + + +echo "PLUGINPATH = \"$PLUGINPATH\"" +echo "CFG = \"$CFG\"" +echo "LDIF = \"$LDIF\"" + + +SOURCE_DIR=`dirname $FILE` +if test ! -d "$SOURCE_DIR"; then + echo "$FILE:$LINENO: ERROR: \"$SOURCE_DIR\" is not a directory. Exiting." + exit 1 +fi + +if test ! -r "$SOURCE_DIR/test.conf"; then + echo "$FILE:$LINENO: ERROR: \"$SOURCE_DIR/test.conf\" could not be read. Exiting." + exit 1 +fi + +source "$SOURCE_DIR/test.conf" + +if test -z "$AUTH"; then + echo "$FILE:$LINENO: ERROR: \$AUTH is empty. Exiting."; + exit 1 +fi + + +LDAPDELETE=$(which ldapdelete 2>/dev/null) + +if test ! -f "$LDAPDELETE"; then + echo "$FILE:$LINENO: ERROR: ldapdelete could not be found. Exiting." + exit 1 +fi + +if test ! -x "$LDAPDELETE"; then + echo "$FILE:$LINENO: ERROR: ldapdelete could be found, but is not executable. Exiting." + exit 1 +fi + + + + +OSYNCPLUGIN=$(which osyncplugin 2>/dev/null) +if test ! -f "$OSYNCPLUGIN"; then + echo "$FILE:$LINENO: ERROR: osyncplugin could not be found. Exiting." + exit 1 +fi + +if test ! -x "$OSYNCPLUGIN"; then + echo "$FILE:$LINENO: ERROR: osyncplugin could be found, but it is not executable. Exiting." + exit 1 +fi + + + +WHOAMI=$(which whoami 2>/dev/null) +if test -n "$WHOAMI"; then + if test -x "$WHOAMI"; then + echo -n "This script $FILE is running under the login name: "; + $WHOAMI; + fi +fi + +echo "AUTH = \"$AUTH\"" + + +if test ! -f "$LDIF"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF\" could not be found. Exiting."; + exit 1; +fi + +if test ! -r "$LDIF"; then + echo "$FILE:$LINENO: ERROR: \"$LDIF\" could be found, but it is not readable. Exiting."; + exit 1; +fi + + + +DN_FULL=$(head -n 1 $LDIF) +if test -z "$DN_FULL"; then + echo "$FILE:$LINENO: ERROR: \$DN_FULL is empty. Exiting." + exit 1; +fi + +DN=${DN_FULL#dn:} +if test -z "$DN"; then + echo "$FILE:$LINENO: ERROR: \$DN is empty. Exiting." + exit 1; +fi + +echo "To be deleted: \"$DN\"" +echo "Command: $LDAPDELETE $AUTH -r $DN" + +$LDAPDELETE $AUTH -r $DN +rv=$? +if test $rv -ne 0; then + echo "$FILE:$LINENO: ERROR: ldapdelete has failed. Exiting." + exit $rv; +fi + + + + +echo "${PLUGINPATH} ${CFG}" + +TMPDIR=`mktemp -d /tmp/ldap_sync_test.XXXXXX` || exit 1 + +$OSYNCPLUGIN --plugin $PLUGINNAME --pluginpath $PLUGINPATH --config $CFG --configdir $TMPDIR --initialize --connect --fastsync --syncdone --disconnect --finalize || exit 1 + Added: plugins/ldap-sync/tests/check_fastsync ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ plugins/ldap-sync/tests/check_fastsync Thu Mar 26 01:17:22 2009 (r5337) @@ -0,0 +1,33 @@ +#!/bin/bash + +# Call as check_fastsync /pa... [truncated message content] |