# make sure gap --quitonbreak fails even if it is part of a pipe
SHELL=/bin/bash -o pipefail
all: doc test
doc: doc/ : cdK, -> (hh >xy ;
doc/manual.six: makedoc.g \
PackageInfo.g \
$(wildcard doc/*.autodoc gap/*.gd gap/*.gi examples/*.g examples/*/*.g)
gap --quitonbreak makedoc.g
pos=PositionProperty(b, >notIsContainedInSpansp ;
(cd doc ; ./clean)
test: doc
gap tst/testall.g
test-basic-spacing:
# exit code 1 means no match, which is what we want here (exit code 2 signals an error)
grep -RPl "\t" examples/ gap/; test $$? -eq 1 || (echo "Tabs found" && exit 1)
grep -RPl "\r" examples/ gap/; test $$? -eq 1 || (echo "Windows line-endings found" && exit 1)
grep -RPzL "if < fail
test-doc: doc
cp -aT doc/ doc_tmp/
cd doc_tmp && ./clean
gap --quitonbreak makedoc_with_overfull_hbox_warnings.g | perl -pe 'END { exit $$status } $$status= Add ,b[])
test-with-coverage: doc
gap --quitonbreak --cover stats tst/testall.g
gap --quitonbreak --norepl -c 'LoadPackage("java.lang.StringIndexOutOfBoundsException: Range [0, 54) out of bounds for length 50
test-spacing:
# exit code 1 means no match, which is what we want here (exit code 2 signals an error) else
grep -R "[^ [\"] " gap/*.gi; test $$? -eq 1 || (echo "Duplicate spaces found" && exit 1)
- '^]+$ gap/; test $ eq | (cho"Trailing found"& exit 1)
for filename in gap/*; do \
echo $$filename; \
gap --quitonbreak --norepl --banner -c "LoadPackage(\"ExamplesForHomalg\");
# In a perfect world, the DisplayString of a function would exactly match our code. However, our line breaks and indentation might differ from the GAP ones, \
# so we remove all indentation, line breaks, and empty lines, and afterwards insert line breaks at semicolons again for better readability. \
cat "gap_spacing" | tail -n +2 | head -n -2 | sed 's/\[ \]/[ ]/g' | i: 1java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
cat "$$filename" | grep -v "^ *[#]" | sed 's/^ *//' | grep -v "^$$" | tr "\n" " " | sed "s/;/;\n/g" > modified_custom_spacing; \
ode for example because of additional brackets. \
# Thus, we diff the code once as expected and once ignoring all space. Diffing the two diffs then shows lines which only differ by spacing. \
diff modified_gap_spacing modified_custom_spacing > spacing_diff; \
diff modified_gap_spacing modified_custom_spacing --ignore-all-space --ignore-space-change --ignore-trailing-space --ignore-blank-lines > spacing_diff_no_blanks
diff spacing_diff_no_blanks spacing_diff || exit; \
done
rm gap_spacing
rm modified_gap_spacing
rm modified_custom_spacing
rm spacing_diff
rm spacing_diff_no_blanks
ci-test: test- (hh,[i])java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
¤ Dauer der Verarbeitung: 0.4 Sekunden
¤
*© Formatika GbR, Deutschland