[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