Make symbolic serialization type-safe #7727
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: General Tests | |
| on: | |
| push: | |
| branches: [ main, ci-fix ] | |
| pull_request: | |
| branches: [ main, ci-fix ] | |
| merge_group: | |
| branches: [ main, ci-fix ] | |
| concurrency: | |
| group: ${{github.workflow}}-${{github.ref}} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| if: "!contains(github.event.pull_request.labels.*.name, 'no-ci')" | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ['3.10','3.14'] | |
| simplify: [0,1,autoopt] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| # Make dependency setup faster | |
| echo 'set man-db/auto-update false' | sudo debconf-communicate >/dev/null | |
| sudo dpkg-reconfigure man-db | |
| # Install dependencies | |
| sudo apt-get update | |
| sudo apt-get install -y libyaml-dev cmake libblas-dev libopenblas-dev liblapacke-dev libpapi-dev papi-tools | |
| pip install flake8 pytest-xdist coverage | |
| pip install -e ".[testing]" | |
| curl -Os https://uploader.codecov.io/latest/linux/codecov | |
| chmod +x codecov | |
| - name: Test dependencies | |
| run: | | |
| papi_avail | |
| - name: Test with pytest | |
| run: | | |
| export NOSTATUSBAR=1 | |
| export DACE_testing_serialization=1 | |
| export DACE_testing_deserialize_exception=1 | |
| export DACE_cache=unique | |
| if [ "${{ matrix.simplify }}" = "autoopt" ]; then | |
| export DACE_optimizer_automatic_simplification=1 | |
| export DACE_optimizer_autooptimize=1 | |
| echo "Auto-optimization heuristics" | |
| else | |
| export DACE_optimizer_automatic_simplification=${{ matrix.simplify }} | |
| fi | |
| pytest -n auto --cov-report=xml --cov=dace --tb=short --timeout_method thread --timeout=300 -m "not gpu and not autodiff and not torch and not onnx and not tensorflow and not mkl and not sve and not papi and not mlir and not lapack and not mpi and not scalapack and not datainstrument and not long and not sequential" | |
| ./codecov | |
| - name: Test OpenBLAS LAPACK | |
| run: | | |
| export NOSTATUSBAR=1 | |
| export DACE_testing_serialization=1 | |
| export DACE_testing_deserialize_exception=1 | |
| export DACE_cache=unique | |
| if [ "${{ matrix.simplify }}" = "autoopt" ]; then | |
| export DACE_optimizer_automatic_simplification=1 | |
| export DACE_optimizer_autooptimize=1 | |
| echo "Auto-optimization heuristics" | |
| else | |
| export DACE_optimizer_automatic_simplification=${{ matrix.simplify }} | |
| fi | |
| pytest -n 1 --cov-report=xml --cov=dace --tb=short --timeout_method thread --timeout=300 -m "lapack" | |
| ./codecov | |
| - name: Run sequential tests | |
| run: | | |
| export NOSTATUSBAR=1 | |
| export DACE_testing_serialization=1 | |
| export DACE_testing_deserialize_exception=1 | |
| export DACE_cache=unique | |
| if [ "${{ matrix.simplify }}" = "autoopt" ]; then | |
| export DACE_optimizer_automatic_simplification=1 | |
| export DACE_optimizer_autooptimize=1 | |
| echo "Auto-optimization heuristics" | |
| else | |
| export DACE_optimizer_automatic_simplification=${{ matrix.simplify }} | |
| fi | |
| pytest -n 1 --cov-report=xml --cov=dace --tb=short --timeout_method thread --timeout=300 -m "sequential" | |
| ./codecov | |
| - name: Run other tests | |
| run: | | |
| export NOSTATUSBAR=1 | |
| export DACE_testing_serialization=0 | |
| export DACE_testing_deserialize_exception=1 | |
| export DACE_cache=single | |
| export DACE_optimizer_automatic_simplification=${{ matrix.simplify }} | |
| export PYTHON_BINARY="coverage run --source=dace --parallel-mode" | |
| ./tests/polybench_test.sh | |
| ./tests/xform_test.sh | |
| coverage combine .; coverage report; coverage xml | |
| - uses: codecov/codecov-action@v6 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| verbose: true |