-
Notifications
You must be signed in to change notification settings - Fork 0
60 lines (52 loc) · 1.92 KB
/
test.yml
File metadata and controls
60 lines (52 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
name: test
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
jobs:
test:
name: Python ${{ matrix.python }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python: ['3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install pytest
run: python -m pip install --upgrade pip pytest
- name: Clone cpp-cpm-engine (for LPM cross-check)
shell: bash
run: |
git clone --depth 1 https://github.com/danafitkowski/cpp-cpm-engine "$RUNNER_TEMP/cpp-cpm-engine"
echo "CPP_CPM_ENGINE_PATH=$RUNNER_TEMP/cpp-cpm-engine/python_reference" >> "$GITHUB_ENV"
- name: Run unit tests (pytest)
shell: bash
env:
PYTHONPATH: ${{ env.CPP_CPM_ENGINE_PATH }}
run: pytest tests/ -v
- name: Run unit tests (direct, no pytest)
shell: bash
env:
PYTHONPATH: ${{ env.CPP_CPM_ENGINE_PATH }}
run: |
python tests/test_cp_validator.py
python tests/test_dcma14.py
python tests/test_cp_forensic.py
- name: Check xer_parser.py drift vs cpp-xer-parser upstream
if: matrix.os == 'ubuntu-latest' && matrix.python == '3.12'
shell: bash
run: |
UPSTREAM=$(curl -fsSL https://raw.githubusercontent.com/danafitkowski/cpp-xer-parser/main/scripts/xer_parser.py | sha256sum | awk '{print $1}')
LOCAL=$(sha256sum scripts/xer_parser.py | awk '{print $1}')
echo "upstream: $UPSTREAM"
echo "local: $LOCAL"
if [ "$UPSTREAM" != "$LOCAL" ]; then
echo "Drift detected: validator's xer_parser.py differs from cpp-xer-parser main. Re-vendor."
exit 1
fi