|
1 | | -# Makefile for tests of tools/scripts in docs-resources repository. |
| 1 | +# Makefile for tests for tools/scripts in docs-resources repository. |
2 | 2 | # Must be run in top-level directory of docs-resources repository. |
3 | 3 | # |
4 | 4 | # This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 |
@@ -29,16 +29,19 @@ CREATE_NORM_RULE_TOOL := create_normative_rules.rb |
29 | 29 | # Input and output file names |
30 | 30 | TEST_ADOC_INPUT_FNAME := test.adoc |
31 | 31 | NORM_TAGS_OUTPUT_FNAME := test-norm-tags.json |
32 | | -NORM_RULE_OUTPUT_FNAME := test-norm-rules.json |
| 32 | +NORM_RULE_JSON_OUTPUT_FNAME := test-norm-rules.json |
| 33 | +NORM_RULE_XLSX_OUTPUT_FNAME := test-norm-rules.xlsx |
33 | 34 |
|
34 | 35 | # Built output files |
35 | 36 | BUILT_NORM_TAGS := $(BUILD_DIR)/$(NORM_TAGS_OUTPUT_FNAME) |
36 | | -BUILT_NORM_RULES := $(BUILD_DIR)/$(NORM_RULE_OUTPUT_FNAME) |
| 37 | +BUILT_NORM_RULES_JSON := $(BUILD_DIR)/$(NORM_RULE_JSON_OUTPUT_FNAME) |
| 38 | +BUILT_NORM_RULES_XLSX := $(BUILD_DIR)/$(NORM_RULE_XLSX_OUTPUT_FNAME) |
37 | 39 |
|
38 | 40 | # Copies of expected output files. |
39 | 41 | # Use make target "update-expected" to update from build dir contents. |
40 | 42 | EXPECTED_NORM_TAGS := $(NORM_RULE_EXPECTED_DIR)/$(NORM_TAGS_OUTPUT_FNAME) |
41 | | -EXPECTED_NORM_RULES := $(NORM_RULE_EXPECTED_DIR)/$(NORM_RULE_OUTPUT_FNAME) |
| 43 | +EXPECTED_NORM_RULES_JSON := $(NORM_RULE_EXPECTED_DIR)/$(NORM_RULE_JSON_OUTPUT_FNAME) |
| 44 | +EXPECTED_NORM_RULES_XLSX := $(NORM_RULE_EXPECTED_DIR)/$(NORM_RULE_XLSX_OUTPUT_FNAME) |
42 | 45 |
|
43 | 46 | # All normative rule definition input YAML files |
44 | 47 | NORM_RULE_DEF_FILES := $(wildcard $(NORM_RULE_DEF_DIR)/*.yaml) |
@@ -114,47 +117,61 @@ all: test |
114 | 117 | test: build-tests compare-tests |
115 | 118 |
|
116 | 119 | # Build tests |
117 | | -.PHONY: build-tests build-test-tags build-test-norm-rules |
118 | | -build-tests: build-test-tags build-test-norm-rules |
| 120 | +.PHONY: build-tests build-test-tags build-test-norm-rules-json build-test-norm-rules-xlsx |
| 121 | +build-tests: build-test-tags build-test-norm-rules-json build-test-norm-rules-xlsx |
119 | 122 | build-test-tags: $(BUILT_NORM_TAGS) |
120 | | -build-test-norm-rules: $(BUILT_NORM_RULES) |
| 123 | +build-test-norm-rules-json: $(BUILT_NORM_RULES_JSON) |
| 124 | +build-test-norm-rules-xlsx: $(BUILT_NORM_RULES_XLSX) |
121 | 125 |
|
122 | 126 | # Compare tests against expected |
123 | 127 | .PHONY: compare-tests |
124 | | -compare-tests: compare-test-tags compare-test-norm-rules |
| 128 | +compare-tests: compare-test-tags compare-test-norm-rules-json |
125 | 129 |
|
126 | 130 | compare-test-tags: $(EXPECTED_NORM_TAGS) $(BUILT_NORM_TAGS) |
127 | 131 | @echo "CHECKING BUILT TAGS AGAINST EXPECTED TAGS" |
128 | 132 | diff $(EXPECTED_NORM_TAGS) $(BUILT_NORM_TAGS) && echo "diff PASSED" || (echo "diff FAILED"; exit 1) |
129 | 133 |
|
130 | 134 | compare-test-norm-rules: $(EXPECTED_NORM_RULES) $(BUILT_NORM_RULES) |
131 | | - @echo "CHECKING BUILT NORM RULES AGAINST EXPECTED NORM RULES" |
132 | | - diff $(EXPECTED_NORM_RULES) $(BUILT_NORM_RULES) && echo "diff PASSED" || (echo "diff FAILED"; exit 1) |
| 135 | + |
| 136 | +compare-test-norm-rules-json: $(EXPECTED_NORM_RULES_JSON) $(BUILT_NORM_RULES_JSON) |
| 137 | + @echo "CHECKING JSON BUILT NORM RULES AGAINST EXPECTED NORM RULES" |
| 138 | + diff $(EXPECTED_NORM_RULES_JSON) $(BUILT_NORM_RULES_JSON) && echo "diff PASSED" || (echo "diff FAILED"; exit 1) |
133 | 139 |
|
134 | 140 | # Update expected files from built files |
135 | 141 | .PHONY: update-expected |
136 | | -update-expected: update-test-tags update-test-norm-rules |
| 142 | +update-expected: update-test-tags update-test-norm-rules-json update-test-norm-rules-xlsx |
137 | 143 |
|
138 | 144 | update-test-tags: $(BUILT_NORM_TAGS) |
139 | 145 | cp -f $(BUILT_NORM_TAGS) $(EXPECTED_NORM_TAGS) |
140 | 146 |
|
141 | | -update-test-norm-rules: $(BUILT_NORM_RULES) |
142 | | - cp -f $(BUILT_NORM_RULES) $(EXPECTED_NORM_RULES) |
| 147 | +update-test-norm-rules-json: $(BUILT_NORM_RULES_JSON) |
| 148 | + cp -f $(BUILT_NORM_RULES_JSON) $(EXPECTED_NORM_RULES_JSON) |
| 149 | + |
| 150 | +update-test-norm-rules-xlsx: $(BUILT_NORM_RULES_XLSX) |
| 151 | + cp -f $(BUILT_NORM_RULES_XLSX) $(EXPECTED_NORM_RULES_XLSX) |
143 | 152 |
|
144 | 153 | # Build normative tags |
145 | 154 | $(BUILT_NORM_TAGS): $(NORM_RULE_TESTS_DIR)/$(TEST_ADOC_INPUT_FNAME) $(CONVERTERS_DIR)/$(TAGS_BACKEND) |
146 | 155 | $(WORKDIR_SETUP) |
147 | 156 | $(DOCKER_CMD) $(DOCKER_QUOTE) $(ASCIIDOCTOR_TAGS) $(OPTIONS) -a tags-match-prefix='norm:' -a tags-output-suffix='-norm-tags.json' $< $(DOCKER_QUOTE) |
148 | 157 | $(WORKDIR_TEARDOWN) |
149 | 158 |
|
150 | | -# Build normative rules |
151 | | -$(BUILT_NORM_RULES): $(BUILT_NORM_TAGS) $(NORM_RULE_DEF_FILES) |
| 159 | +# Build normative rules with JSON output format |
| 160 | +$(BUILT_NORM_RULES_JSON): $(BUILT_NORM_TAGS) $(NORM_RULE_DEF_FILES) |
152 | 161 | $(WORKDIR_SETUP) |
153 | 162 | cp -f $(BUILT_NORM_TAGS) $@.workdir |
154 | 163 | mkdir -p $@.workdir/build |
155 | 164 | $(DOCKER_CMD) $(DOCKER_QUOTE) ruby $(TOOLS_DIR)/$(CREATE_NORM_RULE_TOOL) $(NORM_TAG_FILE_ARGS) $(NORM_RULE_DEF_ARGS) $@ $(DOCKER_QUOTE) |
156 | 165 | $(WORKDIR_TEARDOWN) |
157 | 166 |
|
| 167 | +# Build normative rules with XLSX output format |
| 168 | +$(BUILT_NORM_RULES_XLSX): $(BUILT_NORM_TAGS) $(NORM_RULE_DEF_FILES) |
| 169 | + $(WORKDIR_SETUP) |
| 170 | + cp -f $(BUILT_NORM_TAGS) $@.workdir |
| 171 | + mkdir -p $@.workdir/build |
| 172 | + $(DOCKER_CMD) $(DOCKER_QUOTE) ruby $(TOOLS_DIR)/$(CREATE_NORM_RULE_TOOL) -x $(NORM_TAG_FILE_ARGS) $(NORM_RULE_DEF_ARGS) $@ $(DOCKER_QUOTE) |
| 173 | + $(WORKDIR_TEARDOWN) |
| 174 | + |
158 | 175 | # Update docker image to latest |
159 | 176 | docker-pull-latest: |
160 | 177 | ${DOCKER_BIN} pull ${DOCKER_IMG} |
|
0 commit comments