[mapguide-commits] r10124 - in branches/4.0/MgDev: . Server/src/Core UnitTest cmake/configs
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Mon Feb 17 02:59:57 PST 2025
Author: jng
Date: 2025-02-17 02:59:55 -0800 (Mon, 17 Feb 2025)
New Revision: 10124
Added:
branches/4.0/MgDev/UnitTest/run_server_tests.sh
branches/4.0/MgDev/UnitTest/run_web_tests.sh
branches/4.0/MgDev/cmake/configs/mgserver_test.sh.in
branches/4.0/MgDev/prepare_test_pack.sh
Modified:
branches/4.0/MgDev/Server/src/Core/CMakeLists.txt
branches/4.0/MgDev/UnitTest/run_server_tests.bat
Log:
Initial linux version of test pack preparation and test execution scripts
Modified: branches/4.0/MgDev/Server/src/Core/CMakeLists.txt
===================================================================
--- branches/4.0/MgDev/Server/src/Core/CMakeLists.txt 2025-02-08 23:04:50 UTC (rev 10123)
+++ branches/4.0/MgDev/Server/src/Core/CMakeLists.txt 2025-02-17 10:59:55 UTC (rev 10124)
@@ -124,6 +124,8 @@
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/mgserver.sh DESTINATION ${MG_SERVER_BIN_DIR} COMPONENT ${MG_COMPONENT})
configure_file(${CMAKE_MODULE_PATH}/../configs/mgserverd.sh.in ${CMAKE_CURRENT_BINARY_DIR}/mgserverd.sh)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/mgserverd.sh DESTINATION ${MG_SERVER_BIN_DIR} COMPONENT ${MG_COMPONENT})
+configure_file(${CMAKE_MODULE_PATH}/../configs/mgserver_test.sh.in ${CMAKE_CURRENT_BINARY_DIR}/mgserver_test.sh)
+install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/mgserver_test.sh DESTINATION ${MG_SERVER_BIN_DIR} COMPONENT ${MG_COMPONENT})
file(GLOB DBXML_LIBS "${MG_OEM_WORK_DIR}/dbxml/install/lib/libdb*.so")
install(FILES ${DBXML_LIBS} DESTINATION ${LIB_INSTALL_DIR})
install(FILES ${MG_OEM_WORK_DIR}/dbxml/xqilla/build/.libs/libxqilla.so DESTINATION ${LIB_INSTALL_DIR})
Modified: branches/4.0/MgDev/UnitTest/run_server_tests.bat
===================================================================
--- branches/4.0/MgDev/UnitTest/run_server_tests.bat 2025-02-08 23:04:50 UTC (rev 10123)
+++ branches/4.0/MgDev/UnitTest/run_server_tests.bat 2025-02-17 10:59:55 UTC (rev 10124)
@@ -36,7 +36,6 @@
:pre_flight_check
echo ******** Test Run Summary **********************
-echo Test Suite to run: %TEST_SUITE%
echo Server Path: %SERVER_PATH%
echo Server Test Scope: %SERVER_TEST_SCOPE%
echo ************************************************
Added: branches/4.0/MgDev/UnitTest/run_server_tests.sh
===================================================================
--- branches/4.0/MgDev/UnitTest/run_server_tests.sh (rev 0)
+++ branches/4.0/MgDev/UnitTest/run_server_tests.sh 2025-02-17 10:59:55 UTC (rev 10124)
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+MG_INST_DIR=/usr/local/mapguideopensource-4.0.0
+MG_TEST_SCOPE=all
+
+while [ $# -gt 0 ]; do # Until you run out of parameters...
+ case "$1" in
+ --install-dir)
+ MG_INST_DIR="$2"
+ shift
+ ;;
+ --test-scope)
+ MG_TEST_SCOPE="$2"
+ shift
+ ;;
+ --help)
+ echo "Usage: $0 (options)"
+ echo "Options:"
+ echo " --install-dir [MapGuide install directory, default: $MG_INST_DIR]"
+ echo " --test-scope [Server test suite to run, default: $MG_TEST_SCOPE]"
+ exit
+ ;;
+ esac
+ shift # Check next set of parameters.
+done
+
+# Pre-flight checks
+echo "******** Test Run Summary **********************"
+echo "MapGuide Install Path: $MG_INST_DIR"
+echo "Server Test Scope: $MG_TEST_SCOPE"
+echo "************************************************"
+
+if [ ! -f "$MG_INST_DIR/server/bin/mgserver_test.sh" ];
+then
+ echo "FATAL: Could not find the mgserver_test.sh script in [$MG_INST_DIR]"
+ exit 1
+fi
+
+THIS_DIR=$(pwd)
+
+# Prepare test data
+if [ ! -d "$THIS_DIR/UnitTestFiles" ];
+then
+ mkdir -p "$THIS_DIR/UnitTestFiles"
+ cd UnitTest/TestData || exit
+ find . -type f -exec cp '{}' "$THIS_DIR"/UnitTestFiles \;
+ cp ResourceService/Shuttle.zip "$THIS_DIR/UnitTestFiles/World.mgp"
+else
+ echo "UnitTestFiles exists. Assume it is already prepared"
+fi
+
+# Rather than copy this directory to the expected path relative to mgserver, just
+# symlink to our prepared directory at the right level
+
+test_data_dir=$MG_INST_DIR/server/UnitTestFiles
+if [ -e "$test_data_dir" ] && [ -L "$test_data_dir" ]; then
+ echo "$test_data_dir is a symbolic link and exists"
+else
+ echo "$test_data_dir is not a symbolic link or does not exist"
+ ln -s "$THIS_DIR/UnitTestFiles" "$test_data_dir"
+fi
+
+# Run the mgserver with the given suite
+"$MG_INST_DIR"/server/bin/mgserver_test.sh "$MG_TEST_SCOPE"
\ No newline at end of file
Property changes on: branches/4.0/MgDev/UnitTest/run_server_tests.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: branches/4.0/MgDev/UnitTest/run_web_tests.sh
===================================================================
--- branches/4.0/MgDev/UnitTest/run_web_tests.sh (rev 0)
+++ branches/4.0/MgDev/UnitTest/run_web_tests.sh 2025-02-17 10:59:55 UTC (rev 10124)
@@ -0,0 +1,145 @@
+#!/bin/sh
+
+THIS_DIR=$(pwd)
+MG_TEST_WEBCONFIG_PATH=/usr/local/mapguideopensource-4.0.0/webserverextensions/www/webconfig.ini
+MG_TEST_SUITE=all
+MG_MAPAGENT_BASE=localhost:8008
+MG_TEST_DATA_PATH=$THIS_DIR/UnitTest/TestData
+MENTOR_DICTIONARY_PATH=/usr/local/mapguideopensource-4.0.0/share/gis/coordsys
+MG_PHP_DIR=/usr/local/mapguideopensource-4.0.0/webserverextensions/php/bin
+
+while [ $# -gt 0 ]; do # Until you run out of parameters...
+ case "$1" in
+ --webconfig-path)
+ MG_TEST_WEBCONFIG_PATH="$2"
+ shift
+ ;;
+ --test-suite)
+ MG_TEST_SUITE="$2"
+ shift
+ ;;
+ --coordsys-path)
+ MENTOR_DICTIONARY_PATH="$2"
+ shift
+ ;;
+ --php-dir)
+ MG_PHP_DIR="$2"
+ shift
+ ;;
+ --test-data-dir)
+ MG_TEST_DATA_PATH="$2"
+ shift
+ ;;
+ --mapagent-base)
+ MG_MAPAGENT_BASE="$2"
+ shift
+ ;;
+ --help)
+ echo "Usage: $0 (options)"
+ echo "Options:"
+ echo " --webconfig-path [Path to webconfig.ini, default: $MG_TEST_WEBCONFIG_PATH]"
+ echo " --test-suite [Web tier test suite to run, default: $MG_TEST_SUITE]"
+ echo " --coordsys-path [Path to CS-Map dictionaries, default: $MENTOR_DICTIONARY_PATH]"
+ echo " --php-dir [Path to directory containing the php executable, default: $MG_PHP_DIR]"
+ echo " --test-data-dir [Root directory for test data, default: $MG_TEST_DATA_PATH]"
+ echo " --mapagent-base [Base domain/port for mapagent, default: $MG_MAPAGENT_BASE]"
+ exit
+ ;;
+ esac
+ shift # Check next set of parameters.
+done
+
+test_mapagent()
+{
+ echo "Testing mapagent"
+ PREV_DIR=$(pwd)
+ cd "$PREV_DIR" || exit
+}
+
+test_php()
+{
+ echo "Testing PHP"
+ PREV_DIR=$(pwd)
+ cd "$THIS_DIR/UnitTest/Php" || exit
+ "$MG_PHP_DIR"/php RunTests.php
+ cd "$PREV_DIR" || exit
+}
+
+test_java()
+{
+ if [ ! -f "$JAVA_HOME/bin/java" ]; then
+ echo "Java not found"
+ exit 1
+ fi
+
+ echo "Testing Java"
+ PREV_DIR=$(pwd)
+ cd "$THIS_DIR/UnitTest/Java" || exit
+ LD_LIBRARY_PATH=/usr/local/mapguideopensource-4.0.0/webserverextensions/lib64 "$JAVA_HOME"/bin/java -jar MgUnitTest.jar
+ cd "$PREV_DIR" || exit
+}
+
+test_dotnet()
+{
+ echo "Testing dotnet"
+ PREV_DIR=$(pwd)
+ cd "$PREV_DIR" || exit
+}
+
+echo "******** Test Run Summary **********************"
+echo "Test Suite to run: $MG_TEST_SUITE"
+echo "MapAgent base: $MG_MAPAGENT_BASE"
+echo "Test data path: $MG_TEST_DATA_PATH"
+echo "*** Required paths for non-mapagent tests ******"
+echo "webconfig.ini path: $MG_TEST_WEBCONFIG_PATH"
+echo "CS dictionary path: $MENTOR_DICTIONARY_PATH"
+echo "*** Required paths for PHP tests ***************"
+echo "PHP dir: $MG_PHP_DIR"
+echo "************************************************"
+
+if [ ! -f "$MG_TEST_DATA_PATH/ResourceService/ResourceServiceTest.dump" ];
+then
+ echo "Test data path not found or invalid"
+ exit 1
+fi
+if [ "$MG_TEST_SUITE" = "mapagent" ];
+then
+ test_mapagent
+else
+ if [ ! -f "$MENTOR_DICTIONARY_PATH/Coordsys.CSD" ];
+ then
+ echo "CS-Map dictionary path not found"
+ exit 1
+ fi
+ if [ ! -f "$MG_TEST_WEBCONFIG_PATH" ];
+ then
+ echo "webconfig.ini not found"
+ exit 1
+ fi
+
+ export MENTOR_DICTIONARY_PATH
+ export MG_TEST_DATA_PATH
+ export MG_TEST_WEBCONFIG_PATH
+
+ case $MG_TEST_SUITE in
+ php)
+ test_php
+ ;;
+ java)
+ test_java
+ ;;
+ dotnet)
+ test_dotnet
+ ;;
+ all)
+ test_php
+ test_java
+ test_dotnet
+ test_mapagent
+ ;;
+ *)
+ echo "Unknown test suite: $MG_TEST_SUITE"
+ exit 1
+ ;;
+ esac
+fi
\ No newline at end of file
Property changes on: branches/4.0/MgDev/UnitTest/run_web_tests.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: branches/4.0/MgDev/cmake/configs/mgserver_test.sh.in
===================================================================
--- branches/4.0/MgDev/cmake/configs/mgserver_test.sh.in (rev 0)
+++ branches/4.0/MgDev/cmake/configs/mgserver_test.sh.in 2025-02-17 10:59:55 UTC (rev 10124)
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+export PATH=@MG_INSTALL_PREFIX@/server/bin:$PATH
+export LD_LIBRARY_PATH=@FDO_LIBRARY_DIR@:@MG_INSTALL_PREFIX@/lib64:@MG_INSTALL_PREFIX@/server/lib64:"$LD_LIBRARY_PATH"
+export NLSPATH=@FDO_NLS_DIR@/%N:"$NLSPATH"
+mkdir -p /var/lock/mgserver
+pushd @MG_INSTALL_PREFIX@/server/bin
+./mgserver test $1
+popd
Added: branches/4.0/MgDev/prepare_test_pack.sh
===================================================================
--- branches/4.0/MgDev/prepare_test_pack.sh (rev 0)
+++ branches/4.0/MgDev/prepare_test_pack.sh 2025-02-17 10:59:55 UTC (rev 10124)
@@ -0,0 +1,53 @@
+#!/bin/sh
+MG_TEST_OUTPUT_DIR=~/mapguide_test
+
+while [ $# -gt 0 ]; do # Until you run out of parameters...
+ case "$1" in
+ --output)
+ MG_TEST_OUTPUT_DIR="$2"
+ shift
+ ;;
+ --help)
+ echo "Usage: $0 (options)"
+ echo "Options:"
+ echo " --output [Output directory, default: $MG_TEST_OUTPUT_DIR]"
+ exit
+ ;;
+ esac
+ shift # Check next set of parameters.
+done
+
+ANT_CMD=ant
+which $ANT_CMD
+if [ $? -ne 0 ]; then
+ echo "ant not found globally. Falling back to ANT_HOME env var"
+ ANT_CMD=$ANT_HOME/bin/ant
+ which $ANT_CMD
+ if [ $? -ne 0 ]; then
+ echo "FATAL: ant not found"
+ exit 1
+ fi
+fi
+
+THIS_DIR=$(pwd)
+STAGING_DIR=/tmp/mgtest
+mkdir -p "$MG_TEST_OUTPUT_DIR"
+mkdir -p "$STAGING_DIR/UnitTest/TestData"
+mkdir -p "$STAGING_DIR/UnitTest/Php"
+mkdir -p "$STAGING_DIR/UnitTest/Java"
+
+# Copy scripts
+cp "$THIS_DIR/UnitTest/run_server_tests.sh" "$STAGING_DIR"
+cp "$THIS_DIR/UnitTest/run_web_tests.sh" "$STAGING_DIR"
+
+# Prep test data
+cp -R "$THIS_DIR"/UnitTest/TestData/* "$STAGING_DIR/UnitTest/TestData"
+cp "$THIS_DIR/UnitTest/test_readme.txt" "$STAGING_DIR"
+
+# Copy PHP test runner
+cp -R "$THIS_DIR"/Bindings/src/Test/Php/* "$STAGING_DIR/UnitTest/Php"
+
+# Deploy Java test runner
+cd "$THIS_DIR/Bindings/src/Test/Java" || exit
+$ANT_CMD -Ddist="$STAGING_DIR/UnitTest/Java" -Djarsrc.web="/usr/local/mapguideopensource-4.0.0/webserverextensions/www/WEB-INF/lib" -f build.xml || exit
+rm "$THIS_DIR/Bindings/src/Test/Java/webconfig.ini"
Property changes on: branches/4.0/MgDev/prepare_test_pack.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
More information about the mapguide-commits
mailing list