#!/bin/bash
# Tests the SDP - basic tests
declare -i ExitCode=0
/p4/reset_sdp.sh
sudo ln -f -s /sdp/Server/test/test_SDP.py /p4/test_SDP.py
sudo ln -f -s /sdp/Server/test/test_Upgrade.py /p4/test_Upgrade.py
if ! python3 /p4/test_SDP.py; then
tail /tmp/SDPTest.log
exit 1
fi
if ! python3 /p4/test_Upgrade.py; then
tail /tmp/UpgradeSDPTest.log
exit 1
fi
#------------------------------------------------------------------------------
# To test extraction of custom logic during SDP upgrade, inject some custom
# logic pre-upgrade. Later, we'll test both the extraction and the post-
# extraction shell environment load order.
echo -e "### MAKE LOCAL CHANGES HERE\\nexport TEST_MESSAGE=Life\\n" >> /p4/common/bin/p4_vars
echo -e "### MAKE LOCAL CHANGES HERE\\nexport TEST_MESSAGE+=\" is Good\"\\n" >> /p4/common/config/p4_1.vars
echo -e "export DO_PARALLEL_CHECKPOINTS=6" >> /p4/common/config/p4_1.vars
#------------------------------------------------------------------------------
# Test SDP Upgrade
# This steps are pulled from the 'Upgrading the SDP' section of the SDP
# Guide.
echo Testing the SDP Upgrade Procedure
cd /hxdepots
[[ -d downloads ]] || mkdir downloads
cd downloads
[[ -d new ]] && mv new old.$(date +'%Y%m%d-%H%M')
[[ -e sdp.Unix.tgz ]] && mv sdp.Unix.tgz sdp.Unix.old.$(date +'%Y%m%d-%H%M%S')
curl -s -k -O https://swarm.workshop.perforce.com/projects/perforce-software-sdp/download/downloads/sdp.Unix.tgz
mkdir new
cd new
tar -xzf ../sdp.Unix.tgz
rsync -a /hxdepots/sdp/ /hxdepots/downloads/new/sdp
cd /hxdepots/downloads/new/sdp/Server/Unix/p4/common/sdp_upgrade
if ./sdp_upgrade.sh -y > /tmp/sdp_upgrade.log 2>&1; then
echo SDP Upgrade OK.
else
echo SDP Upgrade FAILED.
tail /tmp/sdp_upgrade.log
exit 1
fi
#------------------------------------------------------------------------------
# Call verify_sdp.sh after the SDP upgrade.
echo Calling verify_sdp.sh after the SDP Upgrade.
if /p4/common/bin/verify_sdp.sh 1 > /tmp/post_upgrade_verify.log 2>&1; then
echo SDP Post-Upgrade Verify Completed OK.
else
echo SDP Post-Upgrade Verify FAILED.
tail /tmp/post_upgrade_verify.log
exit 1
fi
#------------------------------------------------------------------------------
# Test extraction of custom logic after SDP upgrade.
for c in p4_vars.local p4_1.vars.local; do
if [[ -r "/p4/common/site/config/$c" ]]; then
echo "Found expected post-upgrade extracted file: $c"
else
echo "FAILED: Missing expected post-upgrade extracted file: $c"
ExitCode=1
fi
done
source /p4/common/bin/p4_vars 1
Output=$(echo $TEST_MESSAGE)
if [[ "$Output" == *"Life is Good"* ]]; then
echo "Post-upgrade Test Message is as expected: $Output"
else
echo "FAILED: Post-upgrade Test Message is not as expected: $Output"
ExitCode=1
fi
#------------------------------------------------------------------------------
# Test parallel checkpoint feature post-upgrade.
live_checkpoint.sh 1
if grep -q 'root -Z -N 6 -jcpm' /p4/1/logs/checkpoint.log; then
echo "Verified: Multifile P4D 2023.1+ parallel checkpoint attempted."
if grep -q 'End p4_1 Checkpoint' /p4/1/logs/checkpoint.log; then
echo "Verified: Multifile P4D 2023.1+ parallel checkpoint succeeded."
else
echo "FAILED: Multifile parallel checkpoint was not successful."
ExitCode=1
fi
else
echo "FAILED: Multifile parallel checkpoint not attempted."
ExitCode=1
fi
exit "$ExitCode"
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #10 | 32236 | C. Thomas Tyler |
Released SDP 2025.2.32234 (2025/12/05). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #9 | 31566 | C. Thomas Tyler |
Released SDP 2024.2.31564 (2025/05/14). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #8 | 31077 | C. Thomas Tyler |
Released SDP 2024.2.31075 (2024/12/20). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #7 | 29612 | C. Thomas Tyler |
Released SDP 2023.1.29610 (2023/05/25). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #6 | 28858 | C. Thomas Tyler |
Released SDP 2022.1.28855 (2022/05/27). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #5 | 28412 | C. Thomas Tyler |
Released SDP 2021.2.28410 (2021/11/24). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #4 | 28259 | C. Thomas Tyler |
Released SDP 2021.1.28253 (2021/11/13). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #3 | 28240 | C. Thomas Tyler |
Released SDP 2021.1.28238 (2021/11/12). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #2 | 25596 | C. Thomas Tyler |
Released SDP 2019.2.25594 (2019/05/02). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| #1 | 25279 | C. Thomas Tyler |
Released SDP 2019.1.25276 (2019/03/06). Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'. |
||
| //guest/perforce_software/sdp/dev/test/docker/files/test_sdp.sh | |||||
| #1 | 25258 | Robert Cowham |
Rework the containers in preparation for multi container testing mkrep changes: Remove -c cfg option which was unused anyway Converted tabs to spaces Fixed logic error causing forwarding replicas to bail due to unsupported p4d version Standby servers require ReplicatingFrom field Add seconds to log file name (useful for testing to avoid overwriting files) |
||