diff options
author | rillig <rillig@pkgsrc.org> | 2020-03-30 06:40:53 +0000 |
---|---|---|
committer | rillig <rillig@pkgsrc.org> | 2020-03-30 06:40:53 +0000 |
commit | 3fa3f38dbb65ebd3c8f7017ba1145cc8cef253b4 (patch) | |
tree | c2ce98dcf2aa088b44b416a133ef68dec6b043ad /regress | |
parent | 3f41c688039330a59a179b279b9c170d13b4a65a (diff) | |
download | pkgsrc-3fa3f38dbb65ebd3c8f7017ba1145cc8cef253b4.tar.gz |
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.
Diffstat (limited to 'regress')
-rw-r--r-- | regress/infra-unittests/help.sh | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/regress/infra-unittests/help.sh b/regress/infra-unittests/help.sh new file mode 100644 index 00000000000..98eac24a2f5 --- /dev/null +++ b/regress/infra-unittests/help.sh @@ -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 |