@@ -8,23 +8,55 @@ touch "${HOME}"/.ide/.license.agreement
88
99source " $( dirname " ${0} " ) " /all-tests-functions.sh
1010
11- MATRIX_OS=" $1 "
11+ # Remove side-effects
12+ BAK_IDE_ROOT=" ${IDE_ROOT} "
13+ BAK_PATH=" ${PATH} "
14+ DEBUG_INTEGRATION_TEST_PREFIX=" ${HOME} /tmp/ideasy-integration-test-debug"
15+
16+ # Create backups of shell RC files to prevent destroying user's existing configuration
17+ BAK_BASHRC=" "
18+ BAK_ZSHRC=" "
19+ if [ -f " $HOME /.bashrc" ]; then
20+ BAK_BASHRC=" $HOME /.bashrc.ideasy-test-backup"
21+ cp " $HOME /.bashrc" " $BAK_BASHRC "
22+ fi
23+ if [ -f " $HOME /.zshrc" ]; then
24+ BAK_ZSHRC=" $HOME /.zshrc.ideasy-test-backup"
25+ cp " $HOME /.zshrc" " $BAK_ZSHRC "
26+ fi
27+
28+ trap " export PATH=\" ${BAK_PATH} \" && export IDE_ROOT=\" ${BAK_IDE_ROOT} \" && rm -rf \" ${DEBUG_INTEGRATION_TEST_PREFIX} \" && doRestoreRcFiles && echo \" PATH, IDE_ROOT, and shell RC files restored\" " EXIT
29+
30+ function doRestoreRcFiles() {
31+ # Restore shell RC files from backups to preserve user's existing configuration
32+ if [ -n " $BAK_BASHRC " ] && [ -f " $BAK_BASHRC " ]; then
33+ mv " $BAK_BASHRC " " $HOME /.bashrc"
34+ echo " Restored ~/.bashrc from backup"
35+ fi
36+ if [ -n " $BAK_ZSHRC " ] && [ -f " $BAK_ZSHRC " ]; then
37+ mv " $BAK_ZSHRC " " $HOME /.zshrc"
38+ echo " Restored ~/.zshrc from backup"
39+ fi
40+ }
41+
42+ function doResetVariables() {
43+ IDE_HOME=" ${DEBUG_INTEGRATION_TEST} /home-dir"
44+ export IDE_ROOT=" ${IDE_HOME} /projects"
45+ IDEASY_DIR=" ${IDE_ROOT} /_ide"
46+ FUNCTIONS=" ${IDEASY_DIR} /installation/functions"
47+ IDE=" ${DEBUG_INTEGRATION_TEST} /home-dir/projects/_ide/bin/${BINARY_FILE_NAME} "
48+ TEST_RESULTS_FILE=" ${IDE_ROOT} /testResults"
49+ }
50+
1251# Switch IDEasy binary file name based on github workflow matrix.os name (first argument of all-tests.sh)
1352BINARY_FILE_NAME=" ideasy"
14- if [ " ${MATRIX_OS} " == " windows-latest " ] ; then
53+ if doIsWindows ; then
1554 BINARY_FILE_NAME=" ideasy.exe"
1655fi
1756
1857START_TIME=$( date ' +%Y-%m-%d_%H-%M-%S' )
19-
20- DEBUG_INTEGRATION_TEST_PREFIX=" ${HOME} /tmp/ideasy-integration-test-debug"
2158DEBUG_INTEGRATION_TEST=" ${DEBUG_INTEGRATION_TEST_PREFIX} -${START_TIME} "
22- IDE_HOME=" ${DEBUG_INTEGRATION_TEST} /home-dir"
23- export IDE_ROOT=" ${IDE_HOME} /projects"
24- IDEASY_DIR=" ${IDE_ROOT} /_ide"
25- FUNCTIONS=" ${IDEASY_DIR} /installation/functions"
26- IDE=" ${DEBUG_INTEGRATION_TEST} /home-dir/projects/_ide/bin/${BINARY_FILE_NAME} "
27- TEST_RESULTS_FILE=" ${IDE_ROOT} /testResults"
59+ doResetVariables
2860
2961test_files_directory=$( realpath " $0 " | xargs dirname)
3062
@@ -35,6 +67,7 @@ total=0
3567function doTestsInner() {
3668 # Note: requires var test_files_directory to be set.
3769 for testpath in " ${test_files_directory:? } /integration-tests" /* ; do
70+ doResetVariables
3871 testcase=" ${testpath/* \/ / } "
3972 echo " Running test #${total} : ${testcase} (${testpath} )"
4073
@@ -69,8 +102,6 @@ function doDisplayResults() {
69102 while read -r line; do echo -e " ${line} " ; done < " ${TEST_RESULTS_FILE} "
70103}
71104
72-
73-
74105function doTests () {
75106 doTestsInner
76107 echo -e " \n*****************************************************"
@@ -114,11 +145,22 @@ function main () {
114145
115146 # upgrade to latest snapshot
116147 echo " Upgrading IDEasy to latest SNAPSHOT"
117- $IDE -d --batch upgrade --mode=snapshot
148+ $IDE -d --batch upgrade --mode=snapshot || echo " Upgrade failed, continuing with downloaded version "
118149
119150 # source functions (resets IDEasy)
120151 echo " Sourcing functions to: ${FUNCTIONS} "
121- source " ${FUNCTIONS:? } "
152+ # Add IDE bin to PATH so ideasy command can be found
153+ export PATH=" ${IDEASY_DIR} /bin:$PATH "
154+ # Try installation path first, then fall back to root
155+ if [ -f " ${FUNCTIONS:? } " ]; then
156+ source " ${FUNCTIONS:? } "
157+ elif [ -f " ${IDEASY_DIR} /functions" ]; then
158+ echo " Using functions from root: ${IDEASY_DIR} /functions"
159+ source " ${IDEASY_DIR} /functions"
160+ else
161+ echo " ERROR: Could not find functions file"
162+ exit 1
163+ fi
122164
123165 echo " Checking version after upgrade"
124166 ide -v
0 commit comments