Mercurial
comparison third_party/emsdk/test/test_source_env.sh @ 186:8cf4ec5e2191 hg-web
Fixed merge conflict.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Fri, 23 Jan 2026 22:38:59 -0800 |
| parents | 8d17f6e6e290 |
| children |
comparison
equal
deleted
inserted
replaced
| 176:fed99fc04e12 | 186:8cf4ec5e2191 |
|---|---|
| 1 #!/usr/bin/env bash | |
| 2 | |
| 3 echo "Test ability to source emsdk_env.sh in different shells" | |
| 4 | |
| 5 if [ -n "$EMSDK" ]; then | |
| 6 echo "EMSDK is already defined in this shell. Run tests in a shell without sourcing emsdk_env.sh first" | |
| 7 exit 1 | |
| 8 fi | |
| 9 | |
| 10 DIR=$(dirname "$BASH_SOURCE") | |
| 11 | |
| 12 # setup a symlink relative to the current dir | |
| 13 REL_LINK_DIR="$DIR/tmp" | |
| 14 if [ -d "$REL_LINK_DIR" ]; then | |
| 15 rm -rf "$REL_LINK_DIR" | |
| 16 fi | |
| 17 echo "Creating links in $REL_LINK_DIR" | |
| 18 mkdir -p "$REL_LINK_DIR" | |
| 19 (cd $DIR/.. && ln -s `pwd` "$REL_LINK_DIR/emsdk") | |
| 20 (cd $DIR/.. && ln -s `pwd`/emsdk_env.sh "$REL_LINK_DIR") | |
| 21 | |
| 22 # setup a symlink in an absolute directory | |
| 23 ABS_LINK_DIR="/tmp/emsdk_env_test" | |
| 24 if [ -d "$ABS_LINK_DIR" ]; then | |
| 25 rm -rf "$ABS_LINK_DIR" | |
| 26 fi | |
| 27 echo "Creating links in $ABS_LINK_DIR" | |
| 28 mkdir -p "$ABS_LINK_DIR" | |
| 29 (cd $DIR/.. && ln -s `pwd` "$ABS_LINK_DIR/emsdk") | |
| 30 (cd $DIR/.. && ln -s `pwd`/emsdk_env.sh "$ABS_LINK_DIR") | |
| 31 | |
| 32 PATH1="$DIR/../emsdk_env.sh" | |
| 33 PATH2="$REL_LINK_DIR/emsdk/emsdk_env.sh" | |
| 34 PATH3="$REL_LINK_DIR/emsdk_env.sh" | |
| 35 PATH4="$ABS_LINK_DIR/emsdk/emsdk_env.sh" | |
| 36 PATH5="$ABS_LINK_DIR/emsdk_env.sh" | |
| 37 | |
| 38 assert_emcc() { | |
| 39 current=$1 | |
| 40 cmd=$2 | |
| 41 value=$3 | |
| 42 if [ -z "$value" ] || [ "$value" == "false" ]; then | |
| 43 echo "FAILED: $current" | |
| 44 echo " unable to get EMSDK in $current using '$cmd'" | |
| 45 else | |
| 46 echo "SUCCESS: $current testing $cmd" | |
| 47 echo " -> EMSDK = $value" | |
| 48 fi | |
| 49 } | |
| 50 | |
| 51 test_bash() { | |
| 52 value=$(bash --rcfile <(echo $1)) | |
| 53 assert_emcc bash "$1" "$value" | |
| 54 } | |
| 55 | |
| 56 test_zsh() { | |
| 57 value=$(zsh -d -c "$1") | |
| 58 assert_emcc zsh "$1" "$value" | |
| 59 } | |
| 60 | |
| 61 test_ksh() { | |
| 62 value=$(ksh -c "$1") | |
| 63 assert_emcc ksh "$1" "$value" | |
| 64 } | |
| 65 | |
| 66 it_tests_direct_path() { | |
| 67 TEST_SCRIPT=". ${PATH1}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' | |
| 68 test_bash "$TEST_SCRIPT" | |
| 69 test_zsh "$TEST_SCRIPT" | |
| 70 test_ksh "$TEST_SCRIPT" | |
| 71 TEST_SCRIPT="source ${PATH1}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' | |
| 72 test_bash "$TEST_SCRIPT" | |
| 73 test_zsh "$TEST_SCRIPT" | |
| 74 test_ksh "$TEST_SCRIPT" | |
| 75 } | |
| 76 | |
| 77 it_tests_via_relative_dir_symlink() { | |
| 78 TEST_SCRIPT=". ${PATH2}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' | |
| 79 test_bash "$TEST_SCRIPT" | |
| 80 test_zsh "$TEST_SCRIPT" | |
| 81 test_ksh "$TEST_SCRIPT" | |
| 82 TEST_SCRIPT="source ${PATH2}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' | |
| 83 test_bash "$TEST_SCRIPT" | |
| 84 test_zsh "$TEST_SCRIPT" | |
| 85 test_ksh "$TEST_SCRIPT" | |
| 86 } | |
| 87 | |
| 88 it_tests_via_relative_file_symlink() { | |
| 89 TEST_SCRIPT=". ${PATH3}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' | |
| 90 test_bash "$TEST_SCRIPT" | |
| 91 test_zsh "$TEST_SCRIPT" | |
| 92 test_ksh "$TEST_SCRIPT" | |
| 93 TEST_SCRIPT="source ${PATH3}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' | |
| 94 test_bash "$TEST_SCRIPT" | |
| 95 test_zsh "$TEST_SCRIPT" | |
| 96 test_ksh "$TEST_SCRIPT" | |
| 97 } | |
| 98 | |
| 99 it_tests_via_absolute_dir_symlink() { | |
| 100 TEST_SCRIPT=". ${PATH4}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' | |
| 101 test_bash "$TEST_SCRIPT" | |
| 102 test_zsh "$TEST_SCRIPT" | |
| 103 test_ksh "$TEST_SCRIPT" | |
| 104 TEST_SCRIPT="source ${PATH4}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' | |
| 105 test_bash "$TEST_SCRIPT" | |
| 106 test_zsh "$TEST_SCRIPT" | |
| 107 test_ksh "$TEST_SCRIPT" | |
| 108 } | |
| 109 | |
| 110 it_tests_via_absolute_file_symlink() { | |
| 111 TEST_SCRIPT=". ${PATH5}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' | |
| 112 test_bash "$TEST_SCRIPT" | |
| 113 test_zsh "$TEST_SCRIPT" | |
| 114 test_ksh "$TEST_SCRIPT" | |
| 115 TEST_SCRIPT="source ${PATH5}"' >/dev/null 2>&1; if [ -n "$EMSDK" ]; then echo "$EMSDK"; else echo false; fi ; exit' | |
| 116 test_bash "$TEST_SCRIPT" | |
| 117 test_zsh "$TEST_SCRIPT" | |
| 118 test_ksh "$TEST_SCRIPT" | |
| 119 } | |
| 120 | |
| 121 run_bash_tests() { | |
| 122 it_tests_direct_path | |
| 123 it_tests_via_relative_dir_symlink | |
| 124 it_tests_via_relative_file_symlink | |
| 125 it_tests_via_absolute_dir_symlink | |
| 126 it_tests_via_absolute_file_symlink | |
| 127 } | |
| 128 | |
| 129 run_bash_tests | |
| 130 | |
| 131 rm -rf $REL_LINK_DIR | |
| 132 rm -rf $ABS_LINK_DIR |