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