@@ -63,15 +63,18 @@ EXPECTED_NORM_TAGS := $(NORM_RULE_EXPECTED_DIR)/$(MAIN_NORM_TAGS_OUTPUT_FNAME)
6363EXPECTED_NORM_RULES_JSON := $(NORM_RULE_EXPECTED_DIR ) /$(NORM_RULE_JSON_OUTPUT_FNAME )
6464EXPECTED_NORM_RULES_XLSX := $(NORM_RULE_EXPECTED_DIR ) /$(NORM_RULE_XLSX_OUTPUT_FNAME )
6565EXPECTED_NORM_RULES_ADOC := $(NORM_RULE_EXPECTED_DIR ) /$(NORM_RULE_ADOC_OUTPUT_FNAME )
66+ EXPECTED_NORM_RULES_HTML := $(NORM_RULE_EXPECTED_DIR ) /$(NORM_RULE_HTML_OUTPUT_FNAME )
6667
67- # All normative rule definition input YAML files
68- NORM_RULE_DEF_FILES := $(wildcard $(NORM_RULE_DEF_DIR ) /* .yaml)
68+ # Normative rule definition input YAML files.
69+ GOOD_NORM_RULE_DEF_FILES := $(NORM_RULE_DEF_DIR ) /test.yaml
70+ BAD_NORM_RULE_DEF_FILES := $(NORM_RULE_DEF_DIR ) /missing_tag_refs.yaml
6971
7072# Add -t to each normative tag input filename and add prefix of "/" to make into absolute pathname.
7173NORM_TAG_FILE_ARGS := $(foreach relative_pname,$(BUILT_NORM_TAGS_MAIN ) ,-t /$(relative_pname ) )
7274
7375# Add -d to each normative rule definition filename
74- NORM_RULE_DEF_ARGS := $(foreach relative_pname,$(NORM_RULE_DEF_FILES ) ,-d $(relative_pname ) )
76+ GOOD_NORM_RULE_DEF_ARGS := $(foreach relative_pname,$(GOOD_NORM_RULE_DEF_FILES ) ,-d $(relative_pname ) )
77+ BAD_NORM_RULE_DEF_ARGS := $(foreach relative_pname,$(BAD_NORM_RULE_DEF_FILES ) ,-d $(relative_pname ) )
7578
7679# Provide mapping from an standard's norm tags JSON file to its corresponding HTML file. Used to create links into standard's HTML files.
7780NORM_RULE_DOC2HTML_ARGS := $(foreach doc_name,$(DOCS ) ,-tag2html /$(BUILD_DIR ) /$(doc_name )$(DOC_NORM_TAG_SUFFIX ) $(doc_name ) .html)
@@ -152,7 +155,7 @@ build-test-tags-without-rules: $(BUILT_NORM_RULES_TAGS_NO_RULES)
152155
153156# Compare tests against expected
154157.PHONY : compare-tests
155- compare-tests : compare-test-tags compare-test-norm-rules-json compare-test-norm-rules-adoc
158+ compare-tests : compare-test-tags compare-test-norm-rules-json compare-test-norm-rules-adoc compare-test-norm-rules-html
156159
157160compare-test-tags : $(EXPECTED_NORM_TAGS ) $(BUILT_NORM_TAGS_MAIN )
158161 @echo " CHECKING BUILT TAGS AGAINST EXPECTED TAGS"
@@ -168,9 +171,13 @@ compare-test-norm-rules-adoc: $(EXPECTED_NORM_RULES_ADOC) $(BUILT_NORM_RULES_ADO
168171 @echo " CHECKING ADOC BUILT NORM RULES AGAINST EXPECTED NORM RULES"
169172 diff $(EXPECTED_NORM_RULES_ADOC ) $(BUILT_NORM_RULES_ADOC ) && echo " diff PASSED" || (echo " diff FAILED" ; exit 1)
170173
174+ compare-test-norm-rules-html : $(EXPECTED_NORM_RULES_HTML ) $(BUILT_NORM_RULES_HTML )
175+ @echo " CHECKING HTML BUILT NORM RULES AGAINST EXPECTED NORM RULES"
176+ diff $(EXPECTED_NORM_RULES_HTML ) $(BUILT_NORM_RULES_HTML ) && echo " diff PASSED" || (echo " diff FAILED" ; exit 1)
177+
171178# Update expected files from built files
172179.PHONY : update-expected
173- update-expected : update-test-tags update-test-norm-rules-json update-test-norm-rules-xlsx update-test-norm-rules-adoc
180+ update-expected : update-test-tags update-test-norm-rules-json update-test-norm-rules-xlsx update-test-norm-rules-adoc update-test-norm-rules-html
174181
175182update-test-tags : $(BUILT_NORM_TAGS_MAIN )
176183 cp -f $(BUILT_NORM_TAGS_MAIN ) $(EXPECTED_NORM_TAGS )
@@ -184,6 +191,9 @@ update-test-norm-rules-xlsx: $(BUILT_NORM_RULES_XLSX)
184191update-test-norm-rules-adoc : $(BUILT_NORM_RULES_ADOC )
185192 cp -f $(BUILT_NORM_RULES_ADOC ) $(EXPECTED_NORM_RULES_ADOC )
186193
194+ update-test-norm-rules-html : $(BUILT_NORM_RULES_HTML )
195+ cp -f $(BUILT_NORM_RULES_HTML ) $(EXPECTED_NORM_RULES_HTML )
196+
187197# Build normative tags with main adoc input
188198$(BUILT_NORM_TAGS_MAIN ) : $(NORM_RULE_TESTS_DIR ) /$(MAIN_TEST_ADOC_INPUT_FNAME ) $(CONVERTERS_DIR ) /$(TAGS_BACKEND )
189199 $(WORKDIR_SETUP )
@@ -198,33 +208,33 @@ $(BUILT_NORM_TAGS_DUPLICATE): $(TAGS_TESTS_DIR)/$(DUPLICATE_TEST_ADOC_INPUT_FNAM
198208 $(WORKDIR_TEARDOWN )
199209
200210# Build normative rules with JSON output format
201- $(BUILT_NORM_RULES_JSON ) : $(BUILT_NORM_TAGS_MAIN ) $(NORM_RULE_DEF_FILES )
211+ $(BUILT_NORM_RULES_JSON ) : $(BUILT_NORM_TAGS_MAIN ) $(GOOD_NORM_RULE_DEF_FILES )
202212 $(WORKDIR_SETUP )
203213 cp -f $(BUILT_NORM_TAGS_MAIN ) $@ .workdir
204214 mkdir -p $@ .workdir/build
205- $(DOCKER_CMD ) $(DOCKER_QUOTE ) $(CREATE_NORM_RULE_RUBY ) -w - j $(NORM_TAG_FILE_ARGS ) $(NORM_RULE_DEF_ARGS ) $@ $(DOCKER_QUOTE )
215+ $(DOCKER_CMD ) $(DOCKER_QUOTE ) $(CREATE_NORM_RULE_RUBY ) -j $(NORM_TAG_FILE_ARGS ) $(GOOD_NORM_RULE_DEF_ARGS ) $@ $(DOCKER_QUOTE )
206216 $(WORKDIR_TEARDOWN )
207217
208218# Build normative rules with XLSX output format
209- $(BUILT_NORM_RULES_XLSX ) : $(BUILT_NORM_TAGS_MAIN ) $(NORM_RULE_DEF_FILES )
219+ $(BUILT_NORM_RULES_XLSX ) : $(BUILT_NORM_TAGS_MAIN ) $(GOOD_NORM_RULE_DEF_FILES )
210220 $(WORKDIR_SETUP )
211221 cp -f $(BUILT_NORM_TAGS_MAIN ) $@ .workdir
212222 mkdir -p $@ .workdir/build
213- $(DOCKER_CMD ) $(DOCKER_QUOTE ) $(CREATE_NORM_RULE_RUBY ) -w - x $(NORM_TAG_FILE_ARGS ) $(NORM_RULE_DEF_ARGS ) $@ $(DOCKER_QUOTE )
223+ $(DOCKER_CMD ) $(DOCKER_QUOTE ) $(CREATE_NORM_RULE_RUBY ) -x $(NORM_TAG_FILE_ARGS ) $(GOOD_NORM_RULE_DEF_ARGS ) $@ $(DOCKER_QUOTE )
214224 $(WORKDIR_TEARDOWN )
215225
216- $(BUILT_NORM_RULES_ADOC ) : $(BUILT_NORM_TAGS_MAIN ) $(NORM_RULE_DEF_FILES )
226+ $(BUILT_NORM_RULES_ADOC ) : $(BUILT_NORM_TAGS_MAIN ) $(GOOD_NORM_RULE_DEF_FILES )
217227 $(WORKDIR_SETUP )
218228 cp -f $(BUILT_NORM_TAGS_MAIN ) $@ .workdir
219229 mkdir -p $@ .workdir/build
220- $(DOCKER_CMD ) $(DOCKER_QUOTE ) $(CREATE_NORM_RULE_RUBY ) -w - a $(NORM_TAG_FILE_ARGS ) $(NORM_RULE_DEF_ARGS ) $(NORM_RULE_DOC2HTML_ARGS ) $@ $(DOCKER_QUOTE )
230+ $(DOCKER_CMD ) $(DOCKER_QUOTE ) $(CREATE_NORM_RULE_RUBY ) -a $(NORM_TAG_FILE_ARGS ) $(GOOD_NORM_RULE_DEF_ARGS ) $(NORM_RULE_DOC2HTML_ARGS ) $@ $(DOCKER_QUOTE )
221231 $(WORKDIR_TEARDOWN )
222232
223- $(BUILT_NORM_RULES_HTML ) : $(BUILT_NORM_RULES_ADOC ) $(BUILT_MAIN_TEST_HTML )
233+ $(BUILT_NORM_RULES_HTML ) : $(BUILT_MAIN_TEST_HTML ) $(GOOD_NORM_RULE_DEF_FILES )
224234 $(WORKDIR_SETUP )
235+ cp -f $(BUILT_NORM_TAGS_MAIN ) $@ .workdir
225236 mkdir -p $@ .workdir/build
226- cp -f $(BUILT_NORM_RULES_ADOC ) $@ .workdir/build
227- $(DOCKER_CMD ) $(DOCKER_QUOTE ) $(ASCIIDOCTOR_HTML ) $< $(DOCKER_QUOTE )
237+ $(DOCKER_CMD ) $(DOCKER_QUOTE ) $(CREATE_NORM_RULE_RUBY ) -h $(NORM_TAG_FILE_ARGS ) $(GOOD_NORM_RULE_DEF_ARGS ) $(NORM_RULE_DOC2HTML_ARGS ) $@ $(DOCKER_QUOTE )
228238 $(WORKDIR_TEARDOWN )
229239
230240# This is the HTML file that represents the standards doc. THe norm rule HTML links into this HTML.
@@ -234,13 +244,13 @@ $(BUILT_MAIN_TEST_HTML) : $(NORM_RULE_TESTS_DIR)/$(MAIN_TEST_ADOC_INPUT_FNAME)
234244 $(DOCKER_CMD ) $(DOCKER_QUOTE ) $(ASCIIDOCTOR_HTML ) -o $@ $< $(DOCKER_QUOTE )
235245 $(WORKDIR_TEARDOWN )
236246
237- # Build normative rules that should create an error due to tags without norm rules referencing them
247+ # Build normative rules with different YAML that should create an error due to tags without norm rules referencing them.
238248# Should exit with a non-zero status and then we just "touch" the output file so it exists and make is happy.
239- $(BUILT_NORM_RULES_TAGS_NO_RULES ) : $(BUILT_NORM_TAGS_MAIN ) $(NORM_RULE_DEF_FILES )
249+ $(BUILT_NORM_RULES_TAGS_NO_RULES ) : $(BUILT_NORM_TAGS_MAIN ) $(BAD_NORM_RULE_DEF_FILES )
240250 $(WORKDIR_SETUP )
241251 cp -f $(BUILT_NORM_TAGS_MAIN ) $@ .workdir
242252 mkdir -p $@ .workdir/build
243- $(DOCKER_CMD ) $(DOCKER_QUOTE ) $(CREATE_NORM_RULE_RUBY ) $(NORM_TAG_FILE_ARGS ) $(NORM_RULE_DEF_ARGS ) $(BUILD_DIR ) /bogus || touch $(BUILT_NORM_RULES_TAGS_NO_RULES ) $(DOCKER_QUOTE )
253+ $(DOCKER_CMD ) $(DOCKER_QUOTE ) $(CREATE_NORM_RULE_RUBY ) $(NORM_TAG_FILE_ARGS ) $(BAD_NORM_RULE_DEF_ARGS ) $(BUILD_DIR ) /bogus || touch $(BUILT_NORM_RULES_TAGS_NO_RULES ) $(DOCKER_QUOTE )
244254 $(WORKDIR_TEARDOWN )
245255
246256# Update docker image to latest
0 commit comments