test: run _demo/* and _pydemo/*

This commit is contained in:
Li Jie
2024-06-08 10:15:18 +08:00
parent 91e1fa6aff
commit ee848e66ac
3 changed files with 63 additions and 52 deletions

View File

@@ -11,22 +11,32 @@ on:
jobs:
test-macos:
test:
strategy:
matrix:
os: [macos-latest, macos-12, macos-13]
os: [macos-latest, macos-12, macos-13, ubuntu-latest]
llvm: [17]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Update Homebrew
if: matrix.llvm == 17 # needed as long as LLVM 17 is still fresh
# needed as long as LLVM 17 is still fresh
if: matrix.llvm == 17 && startsWith(matrix.os, 'macos')
run: brew update
- name: Install LLVM ${{ matrix.llvm }} and bdw-gc
if: startsWith(matrix.os, 'macos')
run: |
HOMEBREW_NO_AUTO_UPDATE=1 brew install llvm@${{ matrix.llvm }} bdw-gc
echo `brew --prefix llvm@${{ matrix.llvm }}`/bin >> $GITHUB_PATH
- name: Install LLVM ${{ matrix.llvm }} and libgc-dev
if: startsWith(matrix.os, 'ubuntu')
run: |
echo 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-${{ matrix.llvm }} main' | sudo tee /etc/apt/sources.list.d/llvm.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install --no-install-recommends clang-${{ matrix.llvm }} llvm-${{ matrix.llvm }}-dev libgc-dev
echo /usr/lib/llvm-${{ matrix.llvm }}/bin >> $GITHUB_PATH
- name: Clang information
run: |
@@ -43,59 +53,35 @@ jobs:
run: go build -v ./...
- name: Test
if: matrix.os != 'ubuntu-latest'
run: go test -v ./...
- name: Test with coverage
if: matrix.os == 'ubuntu-latest'
run: go test -v -coverprofile="coverage.txt" -covermode=atomic ./...
- name: Install
run: go install ./...
- name: LLGO tests
run: |
export LLGOROOT=$PWD
bash _test/run.sh
echo "Test result on ${{ matrix.os }} with LLVM ${{ matrix.llvm }}" > result.txt
LLGOROOT=$PWD bash .github/workflows/test_llgo.sh
test-linux:
runs-on: ubuntu-20.04
strategy:
matrix:
llvm: [17]
steps:
- uses: actions/checkout@v4
- name: Test _demo and _pydemo
run: |
set +e
LLGOROOT=$PWD bash .github/workflows/test_demo.sh
exit 0
- name: Install LLVM ${{ matrix.llvm }} and libgc-dev
run: |
echo 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-${{ matrix.llvm }} main' | sudo tee /etc/apt/sources.list.d/llvm.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install --no-install-recommends clang-${{ matrix.llvm }} llvm-${{ matrix.llvm }}-dev libgc-dev
echo /usr/lib/llvm-${{ matrix.llvm }}/bin >> $GITHUB_PATH
- name: PR comment with test result
uses: thollander/actions-comment-pull-request@v2
with:
filePath: result.md
create_if_not_exists: true
comment_tag: test-result-on-${{ matrix.os }}-with-llvm-${{ matrix.llvm }}
- name: Clang information
run: |
echo $PATH
which clang
clang --version
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.20'
- name: Build
run: go build -v ./...
- name: Test
run: go test -v -coverprofile="coverage.txt" -covermode=atomic ./...
- name: Install
run: go install ./...
- name: LLGO tests
run: |
export LLGOROOT=$PWD
bash _test/run.sh
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: goplus/llgo
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: goplus/llgo

26
.github/workflows/test_demo.sh vendored Normal file
View File

@@ -0,0 +1,26 @@
#!/bin/bash
# llgo run subdirectories under _demo and _pydemo
total=0
failed=0
failed_cases=""
for d in ./_demo/* ./_pydemo/*; do
total=$((total+1))
if [ -d "$d" ]; then
echo "Testing $d"
if ! llgo run -v "$d"; then
echo "FAIL"
failed=$((failed+1))
failed_cases="$failed_cases\n$d"
else
echo "PASS"
fi
fi
done
echo "=== Done"
echo "$((total-failed))/$total tests passed"
if [ "$failed" -ne 0 ]; then
echo -e "Failed cases:$failed_cases"
exit 1
fi

View File

@@ -7,7 +7,6 @@ total=$(echo "$cases" | wc -l | tr -d ' ')
succ=0
for idx in $(seq 1 $((total))); do
case=$(echo "$cases" | sed -n "${idx}p")
case_id=$(echo "$case" | cut -d',' -f1)
case_name=$(echo "$case" | cut -d',' -f2)
echo "=== Test case: $case_name"
set +e