pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/regress/infra-unittests



Module Name:    pkgsrc
Committed By:   rillig
Date:           Mon Mar 30 06:40:53 UTC 2020

Added Files:
        pkgsrc/regress/infra-unittests: help.sh

Log Message:
regress/infra-unittests: add example tests for mk/help/help.awk

There are many more scenarios that need test cases, but this is a start.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/regress/infra-unittests/help.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: pkgsrc/regress/infra-unittests/help.sh
diff -u /dev/null pkgsrc/regress/infra-unittests/help.sh:1.1
--- /dev/null   Mon Mar 30 06:40:53 2020
+++ pkgsrc/regress/infra-unittests/help.sh      Mon Mar 30 06:40:53 2020
@@ -0,0 +1,94 @@
+#! /bin/sh
+# $NetBSD: help.sh,v 1.1 2020/03/30 06:40:53 rillig Exp $
+#
+# Test cases for "bmake help", mainly implemented in mk/help/help.awk.
+#
+
+set -eu
+
+. "./test.subr"
+
+test_case_set_up() {
+       cd "$tmpdir"
+}
+
+
+if test_case_begin "help topic at the top of a file, with debugging"; then
+
+       # The first line of a file does not count since it usually contains
+       # the CVS Id. Therefore this topic is considered too small.
+
+       create_file_lines "test.help" \
+               "# topic" \
+               "#" \
+               "# Explanation of the topic."
+
+       HELP_DEBUG="yes" TOPIC=":all" awk -f "$pkgsrcdir/mk/help/help.awk" \
+               "test.help" >"out"
+
+       assert_that "out" --file-is-lines \
+               'test.help:1: Adding keyword "topic"' \
+               'test.help:1: Ignoring section because of too small comment.' \
+               'test.help:3: "Explanation" is no keyword because it is mixed case' \
+               'test.help:3: Ignoring section because of missing keywords.' \
+               'No help found for :all.'
+
+       test_case_end
+fi
+
+
+if test_case_begin "short help topic with debugging"; then
+
+       # The topic starts in the paragraph in line 3 and has only 3 lines.
+       # It still has enough explanation to be considered valuable.
+       # This form is often used in mk/help/undefined-reference.help.
+
+       create_file_lines "test.help" \
+               "# $""NetBSD: ...$" \
+               "" \
+               "# topic" \
+               "#" \
+               "# Explanation of the topic."
+
+       HELP_DEBUG="yes" TOPIC=":all" awk -f "$pkgsrcdir/mk/help/help.awk" \
+               "test.help" >"out"
+
+       assert_that "out" --file-is-lines \
+               'test.help:1: "$NetBSD:" is no keyword because it is mixed case' \
+               'test.help:1: Ignoring section because of missing keywords.' \
+               'test.help:2: Ignoring section because of missing keywords.' \
+               'test.help:3: Adding keyword "topic"' \
+               'test.help:5: "Explanation" is no keyword because it is mixed case' \
+               '===> test.help (keywords: topic):' \
+               '# topic' \
+               '#' \
+               '# Explanation of the topic.' \
+
+       test_case_end
+fi
+
+
+if test_case_begin "short help topic"; then
+
+       # The topic starts in the paragraph in line 3 and has only 3 lines.
+       # It still has enough explanation to be considered valuable.
+       # This form is often used in mk/help/undefined-reference.help.
+
+       create_file_lines "test.help" \
+               "# $""NetBSD: ...$" \
+               "" \
+               "# topic" \
+               "#" \
+               "# Explanation of the topic."
+
+       TOPIC="topic" awk -f "$pkgsrcdir/mk/help/help.awk" \
+               "test.help" >"out"
+
+       assert_that "out" --file-is-lines \
+               '===> test.help (keywords: topic):' \
+               '# topic' \
+               '#' \
+               '# Explanation of the topic.' \
+
+       test_case_end
+fi



Home | Main Index | Thread Index | Old Index