Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 34 additions & 2 deletions .github/actions/setup-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ runs:
build_flint=false
automake=false diffutils=false gcc=true git=false ruby=true wget=false
latex=false latex2html=false
formlib=false color=false forcer=false mincer=false series=false
formlib=false color=false forcer=false mincer=false series=false hyperform=false fmft=false
mzv=false
# NOTE: Some features and OS image combinations are not implemented.
shell: bash
run: |
Expand Down Expand Up @@ -134,15 +135,21 @@ runs:
feat_forcer=true
feat_mincer=true
feat_series=true
feat_hyperform=true
feat_fmft=true
feat_mzv=true
fi

if $feat_color || $feat_forcer || $feat_mincer || $feat_series; then
if $feat_color || $feat_forcer || $feat_mincer || $feat_series || $feat_hyperform || $feat_fmft || $feat_mzv; then
feat_formlib=true
items=''
$feat_color && items="$items-color-1.0.0"
$feat_forcer && items="$items-forcer-1.0.0"
$feat_mincer && items="$items-mincer-1.0.0"
$feat_series && items="$items-series-1.0.0"
$feat_hyperform && items="$items-hyperform-1.0.0"
$feat_fmft && items="$items-fmft-1.0.0"
$feat_mzv && items="$items-mzv-1.0.0"
echo "formlib_key=formlib$items" >>"$GITHUB_OUTPUT"
echo "formlib_restore_keys=formlib-" >>"$GITHUB_OUTPUT"
echo "FORMPATH=${{ github.workspace }}/formlib" >>"$GITHUB_ENV"
Expand Down Expand Up @@ -552,6 +559,31 @@ runs:
wget https://github.com/a-maier/series/releases/download/1.0.0/series.h -P formlib
touch formlib/series-1.0.0
fi
if ${{ steps.setup.outputs.hyperform }} && [ ! -f formlib/hyperform-1.0.0 ]; then
rm -f formlib/{declare-hyperform.h,hyperform.h,mzvlow.h}
git clone https://github.com/adamkardos/HyperFORM.git
git -C HyperFORM checkout 44705844f8585454c70b6702024b357d15e7b2c3
mv HyperFORM/src/{declare-hyperform.h,hyperform.h,mzvlow.h} formlib/
# this file needs to be copied to check/extra when running the tests
cat HyperFORM/check/*.frm | sed 's/\*{{{/*--#[/' | sed 's/\*}}}/*--#]/' > formlib/hyperform.frm
rm -f formlib/hyperform-*
touch formlib/hyperform-1.0.0
fi
if ${{ steps.setup.outputs.fmft }} && [ ! -f formlib/fmft-1.0.0 ]; then
rm -f formlib/fmft*
wget https://raw.githubusercontent.com/apik/fmft/refs/tags/1.0/fmft.hh -P formlib
touch formlib/fmft-1.0.0
fi
if ${{ steps.setup.outputs.mzv }} && [ ! -f formlib/mzv-1.0.0 ]; then
rm -f formlib/hexall.h
wget https://raw.githubusercontent.com/form-dev/form-bench/refs/heads/main/tests/mzv-dm/hexall.h -P formlib
touch formlib/mzv-1.0.0
fi

- name: Copy test files from cache
if: steps.setup.outputs.hyperform == 'true'
shell: ${{ steps.setup.outputs.msys2 == 'true' && 'msys2 {0}' || 'bash' }}
run: cp formlib/hyperform.frm check/extra/

# Fix dubious ownership in containers for Git operations.
# See: https://github.com/actions/runner/issues/2033#issuecomment-1204205989
Expand Down
42 changes: 37 additions & 5 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,12 @@ jobs:
run: make -C sources -j 4 ${{ matrix.bin }}

- name: Test
run: ./check/check.rb ./sources/${{ matrix.bin }} --stat ${{ matrix.nthreads && format('-w{0}', matrix.nthreads) || '' }} ${{ matrix.timeout && format('--timeout {0}', matrix.timeout) || '' }} ${{ matrix.test != 'default' && format('-C {0}', matrix.test) || '' }}
run: >-
./check/check.rb ./sources/${{ matrix.bin }} --stat
${{ matrix.nthreads && format('-w{0}', matrix.nthreads) || '' }}
${{ matrix.timeout && format('--timeout {0}', matrix.timeout) || '' }}
${{ matrix.test != 'default' && format('-C {0}', matrix.test) || '' }}
${{ ( matrix.test != 'default' && matrix.flint == 'no' ) && '-x ''HypSimplifyDiffLogDiffFuncs_(59|60|61|62)*'' -x HypSimplifyDiffLogDiffFuncs_126' || '' }}

check-parform:
name: Test (${{ matrix.test }}) for ${{ matrix.bin }}${{ matrix.nthreads && format(' -w{0}', matrix.nthreads) || '' }}${{ matrix.flint && format(' (flint - {0})', matrix.flint) || '' }}
Expand Down Expand Up @@ -115,9 +120,31 @@ jobs:
- {bin: tvorm, test: default, nthreads: 2, group: 8/10}
- {bin: tvorm, test: default, nthreads: 2, group: 9/10}
- {bin: tvorm, test: default, nthreads: 2, group: 10/10}
- {bin: vorm, test: extra, group: 1/1}
- {bin: tvorm, test: extra, group: 1/1}
- {bin: tvorm, test: extra, nthreads: 2, group: 1/1}
- {bin: vorm, test: extra, group: 1/5}
- {bin: vorm, test: extra, group: 2/5}
- {bin: vorm, test: extra, group: 3/5}
- {bin: vorm, test: extra, group: 4/5}
- {bin: vorm, test: extra, group: 5/5}
- {bin: tvorm, test: extra, group: 1/10}
- {bin: tvorm, test: extra, group: 2/10}
- {bin: tvorm, test: extra, group: 3/10}
- {bin: tvorm, test: extra, group: 4/10}
- {bin: tvorm, test: extra, group: 5/10}
- {bin: tvorm, test: extra, group: 6/10}
- {bin: tvorm, test: extra, group: 7/10}
- {bin: tvorm, test: extra, group: 8/10}
- {bin: tvorm, test: extra, group: 9/10}
- {bin: tvorm, test: extra, group: 10/10}
- {bin: tvorm, test: extra, nthreads: 2, group: 1/10}
- {bin: tvorm, test: extra, nthreads: 2, group: 2/10}
- {bin: tvorm, test: extra, nthreads: 2, group: 3/10}
- {bin: tvorm, test: extra, nthreads: 2, group: 4/10}
- {bin: tvorm, test: extra, nthreads: 2, group: 5/10}
- {bin: tvorm, test: extra, nthreads: 2, group: 6/10}
- {bin: tvorm, test: extra, nthreads: 2, group: 7/10}
- {bin: tvorm, test: extra, nthreads: 2, group: 8/10}
- {bin: tvorm, test: extra, nthreads: 2, group: 9/10}
- {bin: tvorm, test: extra, nthreads: 2, group: 10/10}
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down Expand Up @@ -180,7 +207,12 @@ jobs:
run: make -C sources -j 4 ${{ matrix.bin }}

- name: Test
run: ./check/check.rb ./sources/${{ matrix.bin }} --stat --timeout ${{ matrix.timeout && format('{0}', matrix.timeout) || '30' }} ${{ matrix.nthreads && format('-w{0}', matrix.nthreads) || '' }} ${{ matrix.test != 'default' && format('-C {0}', matrix.test) || '' }} --fake-valgrind
run: >-
./check/check.rb ./sources/${{ matrix.bin }} --stat --fake-valgrind
--timeout ${{ matrix.timeout && format('{0}', matrix.timeout) || '30' }}
${{ matrix.nthreads && format('-w{0}', matrix.nthreads) || '' }}
${{ matrix.test != 'default' && format('-C {0}', matrix.test) || '' }}
${{ ( matrix.test != 'default' && matrix.flint == 'no' ) && '-x ''HypSimplifyDiffLogDiffFuncs_(59|60|61|62)*'' -x HypSimplifyDiffLogDiffFuncs_126' || '' }}

- name: Generate LCOV coverage data
run: |
Expand Down
15 changes: 15 additions & 0 deletions check/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,31 @@ endif
TESTS += benchmark-fu.sh

EXTRA_DIST = \
.diagrams_cache/feyngraph_qcd_3_none.dat \
.diagrams_cache/feyngraph_qcd_3_onepi_opicomponents1.dat \
.diagrams_cache/qgraf_qcd_glu_glu_3_none.dat \
.diagrams_cache/qgraf_qcd_glu_glu_3_onepifloop.dat \
.diagrams_cache/qgraf_qcd_quaQUA_gluglu_2_onepifloop.dat \
.diagrams_cache/qgraf_qcd_qua_qua_3_none.dat \
.diagrams_cache/qgraf_qcd_qua_qua_3_onepifloop.dat \
.diagrams_cache/qgraf_qcd_qua_quaglu_3_onepifloop.dat \
benchmark-fu.sh \
check-help.sh \
check.rb \
coverage.frm \
diagrams.frm \
diagrams/diagrams.h \
examples.frm \
extra/checkpoint.frm \
extra/color.frm \
extra/forcer.frm \
extra/mincer.frm \
extra/multithreaded.frm \
extra/mzv-dm.frm \
extra/series.frm \
extra/z-fmft.frm \
features.frm \
fixes.frm \
formunit/fu.frm \
polynomial.frm \
user.frm
Loading
Loading