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

Commit 930deac

Browse files
committed
Test script
1 parent 56f705c commit 930deac

File tree

3 files changed

+74
-1
lines changed

3 files changed

+74
-1
lines changed
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"files.associations": {
33
"iostream": "cpp"
4-
}
4+
},
5+
"cmake.sourceDirectory": "${workspaceRoot}/test-project"
56
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
cmake_minimum_required(VERSION 3.0.0)
2+
project(test-project VERSION 0.1.0)
3+
4+
include(CTest)
5+
enable_testing()
6+
7+
add_executable(test-project main.cpp)
8+
9+
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
10+
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
11+
include(CPack)
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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.cpptools"
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 g++ gcc cmake cppcheck valgrind
46+
check "g++" g++ -g main.cpp -o main.out
47+
rm main.out
48+
mkdir -p build
49+
cd build
50+
check "cmake" cmake ..
51+
cd ..
52+
rm -rf build
53+
54+
# Report result
55+
if [ ${#FAILED[@]} -ne 0 ]; then
56+
echo -e "\n💥 Failed tests: ${FAILED[@]}"
57+
exit 1
58+
else
59+
echo -e "\n💯 All passed!"
60+
exit 0
61+
fi

0 commit comments

Comments
 (0)