@@ -135,3 +135,100 @@ runs:
135135 tail -n1 test_xfailed.log
136136 echo "Return Code: ${RETCODE}"
137137 exit $RETCODE
138+
139+ - name : Build and Install cppyy-backend
140+ if : ${{ matrix.cppyy == 'On' && runner.os == 'Windows' }}
141+ shell : powershell
142+ run : |
143+ # Download cppyy-backend
144+ git clone --depth=1 https://github.com/compiler-research/cppyy-backend.git
145+ cd cppyy-backend
146+ mkdir $env:CPPINTEROP_DIR\lib
147+ mkdir build
148+ cd build
149+ # Install CppInterOp
150+ cd $env:CPPINTEROP_BUILD_DIR
151+ cmake --build . --target install --parallel ${{ env.ncpus }}
152+ cd ..\cppyy-backend\build\
153+ # Build and Install cppyy-backend
154+ $env:INCLUDE=$env:CPLUS_INCLUDE_PATH
155+ cmake -DCppInterOp_DIR=$env:CPPINTEROP_DIR ..
156+ cmake --build . --parallel ${{ env.ncpus }}
157+ cp libcppyy-backend.lib $env:CPPINTEROP_DIR\lib\
158+ cd ..
159+
160+ - name : Install CPyCppyy
161+ if : ${{ matrix.cppyy == 'On' && runner.os == 'Windows' }}
162+ shell : powershell
163+ run : |
164+ python -m venv .venv
165+ . .\.venv\Scripts\Activate.ps1
166+ # Install CPyCppyy
167+ git clone --depth=1 https://github.com/compiler-research/CPyCppyy.git
168+ mkdir CPyCppyy\build
169+ cd CPyCppyy\build
170+ cmake ..
171+ cmake --build . --parallel ${{ env.ncpus }}
172+ #
173+ env:CPYCPPYY_DIR = $PWD.Path
174+ cd ../..
175+ # We need CPYCPPYY_DIR later
176+ echo "CPYCPPYY_DIR=$env:CPYCPPYY_DIR" >> $env:GITHUB_ENV
177+
178+ - name : Install cppyy
179+ if : ${{ matrix.cppyy == 'On' && runner.os == 'Windows' }}
180+ shell : powershell
181+ run : |
182+ # source virtual environment
183+ . .\.venv\Scripts\Activate.ps1
184+ # Install cppyy
185+ git clone --depth=1 https://github.com/compiler-research/cppyy.git
186+ cd cppyy
187+ python -m pip install --upgrade . --no-deps
188+ cd ..
189+
190+ - name : Run cppyy
191+ if : ${{ matrix.cppyy == 'On' && runner.os == 'Windows' }}
192+ shell : powershell
193+ run : |
194+ # Run cppyy
195+ . .\.venv\Scripts\Activate.ps1
196+ $env:PYTHONPATH=$env:PYTHONPATH:$env:CPYCPPYY_DIR:$env:CB_PYTHON_DIR
197+ python -c "import cppyy"
198+ # We need PYTHONPATH later
199+ echo "PYTHONPATH=$env:PYTHONPATH" >> $GITHUB_ENV
200+
201+ - name : Run the tests
202+ if : ${{ matrix.cppyy == 'On' && runner.os == 'Windows' }}
203+ shell : powershell
204+ run : |
205+ # Run the tests
206+ . .\.venv\Scripts\Activate.ps1
207+ cd cppyy\test
208+ echo ::group::Prepare For Testing
209+ make all
210+ python -m pip install --upgrade pip
211+ python -m pip install pytest
212+ python -m pip install pytest-xdist
213+ python -m pip install numba
214+ echo ::endgroup::
215+ echo ::group::Run complete test suite
216+ $ErrorActionPreference = "Stop"
217+ python -m pytest -sv -ra 2>&1 | Tee-Object -FilePath complete_testrun.log
218+ $ErrorActionPreference = "Continue"
219+ echo ::group::Crashing Test Logs
220+ # See if we don't have a crash that went away
221+ # Comment out all xfails but the ones that have a run=False condition.
222+ find.exe . -name "*.py" -exec sed.exe -i '/run=False/!s/^ *@mark.xfail\(.*\)/#&/' {} \;
223+ python -m pytest -n 1 -m "xfail" --runxfail -sv -ra --max-worker-restart 512 2>&1 | Tee-Object -FilePath test_crashed.log
224+ $LASTEXITCODE = 0
225+ git checkout .
226+ echo ::endgroup::
227+ echo ::group::XFAIL Test Logs
228+ # Rewrite all xfails that have a run clause to skipif. This way we will
229+ # avoid conditionally crashing xfails
230+ find.exe . -name "*.py" -exec sed.exe -i -E 's/(^ *)@mark.xfail\(run=(.*)/\[email protected] (condition=not \2/g' {} \; 231+ # See if we don't have an xfail that went away
232+ python -m pytest --runxfail -sv -ra | tee test_xfailed.log 2>&1 || true
233+ git checkout .
234+ echo ::endgroup::
0 commit comments