Skip to content
This repository was archived by the owner on Nov 30, 2023. It is now read-only.

Commit bd8e9e1

Browse files
committed
Improved test scripts
1 parent c529d49 commit bd8e9e1

File tree

19 files changed

+618
-9
lines changed

19 files changed

+618
-9
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/usr/bin/env bash
2+
cd $(dirname "$0")
3+
4+
# -- Utility functions --
5+
if [ -z $HOME ]; then
6+
HOME="/root"
7+
fi
8+
9+
FAILED=()
10+
11+
check() {
12+
LABEL=$1
13+
shift
14+
echo -e "\n🧪 Testing $LABEL: $@"
15+
if $@; then
16+
echo "🏆 Passed!"
17+
else
18+
echo "💥 $LABEL check failed."
19+
FAILED+=("$LABEL")
20+
fi
21+
}
22+
23+
checkMultiple() {
24+
PASSED=0
25+
LABEL="$1"
26+
shift; MINIMUMPASSED=$1
27+
shift; EXPRESSION="$1"
28+
while [ "$EXPRESSION" != "" ]; do
29+
if $EXPRESSION; then ((PASSED++)); fi
30+
shift; EXPRESSION=$1
31+
done
32+
check "$LABEL" [ $PASSED -ge $MINIMUMPASSED ]
33+
}
34+
35+
checkExtension() {
36+
checkMultiple "$1" 1 "[ -d ""$HOME/.vscode-server/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-server-insiders/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-test-server/extensions/$1*"" ]"
37+
}
38+
39+
# -- Actual tests - add more here --
40+
checkMultiple "vscode-server" 1 "[ -d ""$HOME/.vscode-server/bin"" ]" "[ -d ""$HOME/.vscode-server-insiders/bin"" ]" "[ -d ""$HOME/.vscode-test-server/bin"" ]"
41+
check "non-root-user" "id vscode"
42+
check "/home/vscode" [ -d "/home/vscode" ]
43+
check "sudo" sudo -u vscode echo "sudo works."
44+
check "git" git --version
45+
check "command-line-tools" which top ip lsb_release
46+
47+
# -- Report results --
48+
if [ ${#FAILED[@]} -ne 0 ]; then
49+
echo -e "\n💥 Failed tests: ${FAILED[@]}"
50+
exit 1
51+
else
52+
echo -e "\n💯 All passed!"
53+
exit 0
54+
fi
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/usr/bin/env bash
2+
cd $(dirname "$0")
3+
4+
# -- Utility functions --
5+
if [ -z $HOME ]; then
6+
HOME="/root"
7+
fi
8+
9+
FAILED=()
10+
11+
check() {
12+
LABEL=$1
13+
shift
14+
echo -e "\n🧪 Testing $LABEL: $@"
15+
if $@; then
16+
echo "🏆 Passed!"
17+
else
18+
echo "💥 $LABEL check failed."
19+
FAILED+=("$LABEL")
20+
fi
21+
}
22+
23+
checkMultiple() {
24+
PASSED=0
25+
LABEL="$1"
26+
shift; MINIMUMPASSED=$1
27+
shift; EXPRESSION="$1"
28+
while [ "$EXPRESSION" != "" ]; do
29+
if $EXPRESSION; then ((PASSED++)); fi
30+
shift; EXPRESSION=$1
31+
done
32+
check "$LABEL" [ $PASSED -ge $MINIMUMPASSED ]
33+
}
34+
35+
checkExtension() {
36+
checkMultiple "$1" 1 "[ -d ""$HOME/.vscode-server/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-server-insiders/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-test-server/extensions/$1*"" ]"
37+
}
38+
39+
# -- Actual tests - add more here --
40+
checkMultiple "vscode-server" 1 "[ -d ""$HOME/.vscode-server/bin"" ]" "[ -d ""$HOME/.vscode-server-insiders/bin"" ]" "[ -d ""$HOME/.vscode-test-server/bin"" ]"
41+
check "non-root-user" "id vscode"
42+
check "/home/vscode" [ -d "/home/vscode" ]
43+
check "sudo" sudo -u vscode echo "sudo works."
44+
check "git" git --version
45+
check "command-line-tools" which top ip lsb_release
46+
47+
# -- Report results --
48+
if [ ${#FAILED[@]} -ne 0 ]; then
49+
echo -e "\n💥 Failed tests: ${FAILED[@]}"
50+
exit 1
51+
else
52+
echo -e "\n💯 All passed!"
53+
exit 0
54+
fi
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#!/usr/bin/env bash
2+
cd $(dirname "$0")
3+
4+
# -- Utility functions --
5+
if [ -z $HOME ]; then
6+
HOME="/root"
7+
fi
8+
9+
FAILED=()
10+
11+
check() {
12+
LABEL=$1
13+
shift
14+
echo -e "\n🧪 Testing $LABEL: $@"
15+
if $@; then
16+
echo "🏆 Passed!"
17+
else
18+
echo "💥 $LABEL check failed."
19+
FAILED+=("$LABEL")
20+
fi
21+
}
22+
23+
checkMultiple() {
24+
PASSED=0
25+
LABEL="$1"
26+
shift; MINIMUMPASSED=$1
27+
shift; EXPRESSION="$1"
28+
while [ "$EXPRESSION" != "" ]; do
29+
if $EXPRESSION; then ((PASSED++)); fi
30+
shift; EXPRESSION=$1
31+
done
32+
check "$LABEL" [ $PASSED -ge $MINIMUMPASSED ]
33+
}
34+
35+
checkExtension() {
36+
checkMultiple "$1" 1 "[ -d ""$HOME/.vscode-server/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-server-insiders/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-test-server/extensions/$1*"" ]"
37+
}
38+
39+
# -- Actual tests - add more here --
40+
checkMultiple "vscode-server" 1 "[ -d ""$HOME/.vscode-server/bin"" ]" "[ -d ""$HOME/.vscode-server-insiders/bin"" ]" "[ -d ""$HOME/.vscode-test-server/bin"" ]"
41+
42+
43+
# -- Report results --
44+
if [ ${#FAILED[@]} -ne 0 ]; then
45+
echo -e "\n💥 Failed tests: ${FAILED[@]}"
46+
exit 1
47+
else
48+
echo -e "\n💯 All passed!"
49+
exit 0
50+
fi
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#!/usr/bin/env bash
2+
cd $(dirname "$0")
3+
4+
if [ -z $HOME ]; then
5+
HOME="/root"
6+
fi
7+
8+
FAILED=()
9+
10+
check() {
11+
LABEL=$1
12+
shift
13+
echo -e "\n🧪 Testing $LABEL: $@"
14+
if $@; then
15+
echo "🏆 Passed!"
16+
else
17+
echo "💥 $LABEL check failed."
18+
FAILED+=("$LABEL")
19+
fi
20+
}
21+
22+
checkMultiple() {
23+
PASSED=0
24+
LABEL="$1"
25+
shift; MINIMUMPASSED=$1
26+
shift; EXPRESSION="$1"
27+
while [ "$EXPRESSION" != "" ]; do
28+
if $EXPRESSION; then ((PASSED++)); fi
29+
shift; EXPRESSION=$1
30+
done
31+
check "$LABEL" [ $PASSED -ge $MINIMUMPASSED ]
32+
}
33+
34+
checkExtension() {
35+
checkMultiple "$1" 1 "[ -d ""$HOME/.vscode-server/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-server-insiders/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-test-server/extensions/$1*"" ]"
36+
}
37+
38+
# Actual tests
39+
checkMultiple "vscode-server" 1 "[ -d ""$HOME/.vscode-server/bin"" ]" "[ -d ""$HOME/.vscode-server-insiders/bin"" ]" "[ -d ""$HOME/.vscode-test-server/bin"" ]"
40+
checkExtension "ms-vscode.azurecli"
41+
check "non-root-user" "id vscode"
42+
check "/home/vscode" [ -d "/home/vscode" ]
43+
check "sudo" sudo -u vscode echo "sudo works."
44+
check "git" git --version
45+
check "command-line-tools" which top ip lsb_release
46+
check "azure-cli" az --version
47+
48+
49+
# Report result
50+
if [ ${#FAILED[@]} -ne 0 ]; then
51+
echo -e "\n💥 Failed tests: ${FAILED[@]}"
52+
exit 1
53+
else
54+
echo -e "\n💯 All passed!"
55+
exit 0
56+
fi
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/usr/bin/env bash
2+
cd $(dirname "$0")
3+
4+
if [ -z $HOME ]; then
5+
HOME="/root"
6+
fi
7+
8+
FAILED=()
9+
10+
check() {
11+
LABEL=$1
12+
shift
13+
echo -e "\n🧪 Testing $LABEL: $@"
14+
if $@; then
15+
echo "🏆 Passed!"
16+
else
17+
echo "💥 $LABEL check failed."
18+
FAILED+=("$LABEL")
19+
fi
20+
}
21+
22+
checkMultiple() {
23+
PASSED=0
24+
LABEL="$1"
25+
shift; MINIMUMPASSED=$1
26+
shift; EXPRESSION="$1"
27+
while [ "$EXPRESSION" != "" ]; do
28+
if $EXPRESSION; then ((PASSED++)); fi
29+
shift; EXPRESSION=$1
30+
done
31+
check "$LABEL" [ $PASSED -ge $MINIMUMPASSED ]
32+
}
33+
34+
checkExtension() {
35+
checkMultiple "$1" 1 "[ -d ""$HOME/.vscode-server/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-server-insiders/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-test-server/extensions/$1*"" ]"
36+
}
37+
38+
# Actual tests
39+
checkMultiple "vscode-server" 1 "[ -d ""$HOME/.vscode-server/bin"" ]" "[ -d ""$HOME/.vscode-server-insiders/bin"" ]" "[ -d ""$HOME/.vscode-test-server/bin"" ]"
40+
check "non-root-user" "id vscode"
41+
check "/home/vscode" [ -d "/home/vscode" ]
42+
check "sudo" sudo -u vscode echo "sudo works."
43+
check "git" git --version
44+
check "command-line-tools" which top ip lsb_release
45+
46+
# Report result
47+
if [ ${#FAILED[@]} -ne 0 ]; then
48+
echo -e "\n💥 Failed tests: ${FAILED[@]}"
49+
exit 1
50+
else
51+
echo -e "\n💯 All passed!"
52+
exit 0
53+
fi
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#!/usr/bin/env bash
2+
cd $(dirname "$0")
3+
4+
if [ -z $HOME ]; then
5+
HOME="/root"
6+
fi
7+
8+
FAILED=()
9+
10+
check() {
11+
LABEL=$1
12+
shift
13+
echo -e "\n🧪 Testing $LABEL: $@"
14+
if $@; then
15+
echo "🏆 Passed!"
16+
else
17+
echo "💥 $LABEL check failed."
18+
FAILED+=("$LABEL")
19+
fi
20+
}
21+
22+
checkMultiple() {
23+
PASSED=0
24+
LABEL="$1"
25+
shift; MINIMUMPASSED=$1
26+
shift; EXPRESSION="$1"
27+
while [ "$EXPRESSION" != "" ]; do
28+
if $EXPRESSION; then ((PASSED++)); fi
29+
shift; EXPRESSION=$1
30+
done
31+
check "$LABEL" [ $PASSED -ge $MINIMUMPASSED ]
32+
}
33+
34+
checkExtension() {
35+
checkMultiple "$1" 1 "[ -d ""$HOME/.vscode-server/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-server-insiders/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-test-server/extensions/$1*"" ]"
36+
}
37+
38+
# Actual tests
39+
checkMultiple "vscode-server" 1 "[ -d ""$HOME/.vscode-server/bin"" ]" "[ -d ""$HOME/.vscode-server-insiders/bin"" ]" "[ -d ""$HOME/.vscode-test-server/bin"" ]"
40+
checkExtension "ms-azuretools.vscode-docker"
41+
check "non-root-user" "id vscode"
42+
check "/home/vscode" [ -d "/home/vscode" ]
43+
check "sudo" sudo -u vscode echo "sudo works."
44+
check "git" git --version
45+
check "command-line-tools" which top ip lsb_release
46+
check "docker" docker ps -a
47+
check "docker-compose" docker-compose --version
48+
49+
# Report result
50+
if [ ${#FAILED[@]} -ne 0 ]; then
51+
echo -e "\n💥 Failed tests: ${FAILED[@]}"
52+
exit 1
53+
else
54+
echo -e "\n💯 All passed!"
55+
exit 0
56+
fi
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#!/usr/bin/env bash
2+
cd $(dirname "$0")
3+
4+
if [ -z $HOME ]; then
5+
HOME="/root"
6+
fi
7+
8+
FAILED=()
9+
10+
check() {
11+
LABEL=$1
12+
shift
13+
echo -e "\n🧪 Testing $LABEL: $@"
14+
if $@; then
15+
echo "🏆 Passed!"
16+
else
17+
echo "💥 $LABEL check failed."
18+
FAILED+=("$LABEL")
19+
fi
20+
}
21+
22+
checkMultiple() {
23+
PASSED=0
24+
LABEL="$1"
25+
shift; MINIMUMPASSED=$1
26+
shift; EXPRESSION="$1"
27+
while [ "$EXPRESSION" != "" ]; do
28+
if $EXPRESSION; then ((PASSED++)); fi
29+
shift; EXPRESSION=$1
30+
done
31+
check "$LABEL" [ $PASSED -ge $MINIMUMPASSED ]
32+
}
33+
34+
checkExtension() {
35+
checkMultiple "$1" 1 "[ -d ""$HOME/.vscode-server/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-server-insiders/extensions/$1*"" ]" "[ -d ""$HOME/.vscode-test-server/extensions/$1*"" ]"
36+
}
37+
38+
# Actual tests
39+
checkMultiple "vscode-server" 1 "[ -d ""$HOME/.vscode-server/bin"" ]" "[ -d ""$HOME/.vscode-server-insiders/bin"" ]" "[ -d ""$HOME/.vscode-test-server/bin"" ]"
40+
checkExtension "ms-azuretools.vscode-docker"
41+
check "non-root-user" "id vscode"
42+
check "/home/vscode" [ -d "/home/vscode" ]
43+
check "sudo" sudo -u vscode echo "sudo works."
44+
check "git" git --version
45+
check "command-line-tools" which top ip lsb_release
46+
check "docker" docker ps -a
47+
check "docker-compose" docker-compose --version
48+
49+
# Report result
50+
if [ ${#FAILED[@]} -ne 0 ]; then
51+
echo -e "\n💥 Failed tests: ${FAILED[@]}"
52+
exit 1
53+
else
54+
echo -e "\n💯 All passed!"
55+
exit 0
56+
fi

containers/javascript-node-8/test-project/test.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ checkExtension "dbaeumer.vscode-eslint"
4141
check "non-root-user" "id node"
4242
check "/home/node" [ -d "/home/node" ]
4343
check "sudo" sudo -u node echo "sudo works."
44+
check "git" git --version
45+
check "command-line-tools" which top ip lsb_release
4446
check "node" "node --version"
4547
check "yarn" yarn install
4648
check "npm" npm install

0 commit comments

Comments
 (0)