neo_doxygen: Add scripts to generate test data.
authorJean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Mon, 24 Nov 2014 19:28:30 +0000 (14:28 -0500)
committerJean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>
Tue, 25 Nov 2014 17:01:06 +0000 (12:01 -0500)
Signed-off-by: Jean-Christophe Beaupré <jcbrinfo@users.noreply.github.com>

contrib/neo_doxygen/sh-lib/more_sed.sh [new file with mode: 0644]
contrib/neo_doxygen/tests/.gitattributes [new file with mode: 0644]
contrib/neo_doxygen/tests/Makefile [new file with mode: 0644]
contrib/neo_doxygen/tests/README.md [new file with mode: 0644]
contrib/neo_doxygen/tests/doxyproject.mk [new file with mode: 0644]

diff --git a/contrib/neo_doxygen/sh-lib/more_sed.sh b/contrib/neo_doxygen/sh-lib/more_sed.sh
new file mode 100644 (file)
index 0000000..db58b69
--- /dev/null
@@ -0,0 +1,37 @@
+#! /bin/sh
+
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Functions related to the `sed` utility.
+
+# Replace `$1` by `$2` in the specified files (the rest of the arguments).
+#
+# Replacements are done in place.
+#
+# SETS: `local_1`
+# SETS: `local_2`
+replace() {
+       local_1=`escape_to_bre "$1"`
+       local_2=`escape_to_bre "$2"`
+       shift 2
+       sed -s -i -e s."${local_1}"."${local_2}".g -- "$@"
+       unset local_1
+       unset local_2
+}
+
+# Escape `$1` for inclusion in a POSIX BRE.
+escape_to_bre() {
+       echo "$1" | sed -e 's/\*\|\.\|\^\|\$\|\[\|\\/\\\0/g'
+}
diff --git a/contrib/neo_doxygen/tests/.gitattributes b/contrib/neo_doxygen/tests/.gitattributes
new file mode 100644 (file)
index 0000000..ab22f42
--- /dev/null
@@ -0,0 +1 @@
+/*/xml/*       -diff
diff --git a/contrib/neo_doxygen/tests/Makefile b/contrib/neo_doxygen/tests/Makefile
new file mode 100644 (file)
index 0000000..d90195d
--- /dev/null
@@ -0,0 +1,29 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# All the dummy projects.
+PROJECTS=$(dir $(wildcard ./*/Doxyfile))
+
+.PHONY: xml bootstrap
+
+# Regenerate the XML documents.
+xml: bootstrap
+       for p in $(PROJECTS); do $(MAKE) -C "$$p" xml || exit; done
+
+# Generate the Makefiles in the sub-directories.
+bootstrap:
+       for p in $(PROJECTS); do { \
+               echo '# FILE GENERATED BY ../Makefile'"\n" > "$$p/Makefile" || exit; \
+               cat doxyproject.mk >> "$$p/Makefile" || exit; \
+       } ; done
diff --git a/contrib/neo_doxygen/tests/README.md b/contrib/neo_doxygen/tests/README.md
new file mode 100644 (file)
index 0000000..6201ecd
--- /dev/null
@@ -0,0 +1,4 @@
+Data files for tests.
+
+For test scripts, see `../src/tests`. To regenerate the XML documents, run
+`make`.
diff --git a/contrib/neo_doxygen/tests/doxyproject.mk b/contrib/neo_doxygen/tests/doxyproject.mk
new file mode 100644 (file)
index 0000000..b6ce8e0
--- /dev/null
@@ -0,0 +1,35 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+.PHONY: clean doxygen strip_paths xml
+
+# Regenerate the XML documents.
+xml: strip_paths
+
+clean:
+       rm -rf xml
+
+doxygen: clean
+       doxygen Doxyfile
+
+# Get rid of the absolute paths in the generated files.
+#
+# Doxygen ignores the `STRIP_FROM_PATH` setting when generating a XML output.
+# So, we have to replace the paths manually in order to get reproducible
+# results.
+#
+# WARNING: FOR USE ON TEST DATA ONLY.
+strip_paths: doxygen
+       . ../../sh-lib/more_sed.sh; \
+       replace `readlink -f -- ./src` '%SOURCE_DIRECTORY%' xml/*.xml