manual: test case-insensitive collisions

master
Florian Angeletti 2019-07-03 18:41:13 +02:00
parent 4ad7c70a43
commit 9102f6a2f7
2 changed files with 29 additions and 4 deletions

View File

@ -1,9 +1,11 @@
TOPDIR=$(abspath ../..)
SRC=$(TOPDIR)
include $(TOPDIR)/Makefile.tools
include $(TOPDIR)/ocamldoc/Makefile.docfiles
MANUAL=$(TOPDIR)/manual/manual
.PHONY: all
all: check-cross-references check-stdlib
all: check-cross-references check-stdlib check-case-collision
.PHONY: tools
tools: cross-reference-checker
@ -13,6 +15,7 @@ cross-reference-checker: cross_reference_checker.ml
-I $(TOPDIR)/parsing -I $(TOPDIR)/driver \
$< -o $@
# check cross-references between the manual and error messages
.PHONY: check-cross-references
check-cross-references: cross-reference-checker
$(SET_LD_PATH) \
@ -22,11 +25,32 @@ check-cross-references: cross-reference-checker
$(TOPDIR)/driver/main_args.ml \
$(TOPDIR)/lambda/translmod.ml
# check that all standard library modules are referenced by the
# standard library chapter of the manual
.PHONY: check-stdlib
check-stdlib:
./check-stdlib-modules $(TOPDIR)
# check name collision between latex source file and module documentation
# on case-insensitive file systems
normalize = $(shell echo $(basename $(notdir $(1) )) | tr A-Z a-z)
LOWER_MLIS= $(call normalize,$(DOC_ALL_MLIS))
LOWER_ETEX= $(call normalize,$(wildcard $(MANUAL)/*/*.etex) $(wildcard *.etex))
INTER = $(filter $(LOWER_ETEX), $(LOWER_MLIS))
.PHONY: check-case-collision
check-case-collision:
ifeq ($(INTER),)
else
@echo "The following names"
@echo " $(INTER)"
@echo "are used by both an OCaml module and a latex source file."
@echo "This creates a conflict on case-insensitive file systems."
@false
endif
.PHONY: clean
clean:
rm -f *.cm? *.cmx? cross-reference-checker

View File

@ -164,13 +164,14 @@ CheckNoChangesMessage () {
CheckManual () {
cat<<EOF
--------------------------------------------------------------------------
This test checks that all standard library modules are referenced by the
standard library chapter of the manual.
This test checks the global structure of the reference manual
(e.g. missing chapters).
--------------------------------------------------------------------------
EOF
# we need some of the configuration data provided by configure
./configure
$MAKE check-stdlib -C manual/tests
$MAKE check-stdlib check-case-collision -C manual/tests
}
CheckTestsuiteModified () {