summaryrefslogtreecommitdiffstats
path: root/src/tests/man-mandatory-manpath
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/man-mandatory-manpath')
-rwxr-xr-xsrc/tests/man-mandatory-manpath189
1 files changed, 189 insertions, 0 deletions
diff --git a/src/tests/man-mandatory-manpath b/src/tests/man-mandatory-manpath
new file mode 100755
index 0000000..af76ff0
--- /dev/null
+++ b/src/tests/man-mandatory-manpath
@@ -0,0 +1,189 @@
+#! /bin/sh
+
+# Test for wildcards in MANDATORY_MANPATH in config file and in MANPATH.
+# https://bugzilla.redhat.com/show_bug.cgi?id=677669
+
+: "${srcdir=.}"
+# shellcheck source-path=SCRIPTDIR
+. "$srcdir/testlib.sh"
+
+: "${MAN=man}"
+
+init
+: > "$tmpdir/manpath.config"
+
+MAN_TEST_DISABLE_PATH=1
+export MAN_TEST_DISABLE_PATH
+
+write_page manx 1 "$tmpdir/usr/share/man/man1/manx.1.gz" \
+ UTF-8 gz '' 'manx \- an interface to the system reference manuals'
+write_page manpathx 1 "$tmpdir/usr/share/prog/a/man/man1/manpathx.1.gz" \
+ UTF-8 gz '' 'manpathx \- determine search path for manual pages'
+write_page whatisx 1 "$tmpdir/usr/share/prog/b/man/man1/whatisx.1.gz" \
+ UTF-8 gz '' 'whatisx \- display manual page descriptions'
+
+#
+# Testing -M option
+#
+
+# Without wildcards
+Mpath="$tmpdir/usr/share/man"
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw -M "${Mpath}" manpathx > "$tmpdir/1.out" 2> /dev/null
+: > "$tmpdir/1.exp"
+expect_files_equal \
+ 'wildcards: -M option: without wildcards: check missing man page' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw -M "${Mpath}" manx > "$tmpdir/1.out"
+cat > "$tmpdir/1.exp" <<EOF
+$abstmpdir/usr/share/man/man1/manx.1.gz
+EOF
+expect_files_equal \
+ 'wildcards: -M option: without wildcards: check existing man page' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+# With wildcards
+Mpath="$tmpdir/usr/share/prog/*/man"
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw -M "${Mpath}" manx > "$tmpdir/1.out" 2> /dev/null
+: > "$tmpdir/1.exp"
+expect_files_equal \
+ 'wildcards: -M option: with wildcards: check missing man page' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw -M "${Mpath}" manpathx > "$tmpdir/1.out"
+cat > "$tmpdir/1.exp" <<EOF
+$abstmpdir/usr/share/prog/a/man/man1/manpathx.1.gz
+EOF
+expect_files_equal \
+ 'wildcards: -M option: with wildcards: check existing man page' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+Mpath="$tmpdir/usr/share/prog/[ab]/man"
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw -M "${Mpath}" whatisx > "$tmpdir/1.out"
+cat > "$tmpdir/1.exp" <<EOF
+$abstmpdir/usr/share/prog/b/man/man1/whatisx.1.gz
+EOF
+expect_files_equal \
+ 'wildcards: -M option: with wildcards: check existing man page II' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+#
+# Testing MANPATH
+#
+
+# Without wildcards
+MANPATH="$tmpdir/usr/share/man"
+export MANPATH
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw manpathx > "$tmpdir/1.out" 2> /dev/null
+: > "$tmpdir/1.exp"
+expect_files_equal \
+ 'wildcards: MANPATH: without wildcards: check missing man page' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw manx > "$tmpdir/1.out"
+cat > "$tmpdir/1.exp" <<EOF
+$abstmpdir/usr/share/man/man1/manx.1.gz
+EOF
+expect_files_equal \
+ 'wildcards: MANPATH: without wildcards: check existing man page' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+# With wildcards
+MANPATH="$tmpdir/usr/share/prog/*/man"
+export MANPATH
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw manx > "$tmpdir/1.out" 2> /dev/null
+: > "$tmpdir/1.exp"
+expect_files_equal \
+ 'wildcards: MANPATH: with wildcards: check missing man page' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw manpathx > "$tmpdir/1.out"
+cat > "$tmpdir/1.exp" <<EOF
+$abstmpdir/usr/share/prog/a/man/man1/manpathx.1.gz
+EOF
+expect_files_equal \
+ 'wildcards: MANPATH: with wildcards: check existing man page' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+MANPATH="$tmpdir/usr/share/prog/[ab]/man"
+export MANPATH
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw whatisx > "$tmpdir/1.out"
+cat > "$tmpdir/1.exp" <<EOF
+$abstmpdir/usr/share/prog/b/man/man1/whatisx.1.gz
+EOF
+expect_files_equal \
+ 'wildcards: MANPATH: with wildcards: check existing man page II' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+unset MANPATH
+
+#
+# Testing MANDATORY_MANPATH
+#
+
+# Without wildcards
+fake_config /usr/share/man
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw manpathx > "$tmpdir/1.out" 2> /dev/null
+: > "$tmpdir/1.exp"
+expect_files_equal \
+ 'wildcards: MANDATORY_MANPATH: without wildcards: check missing man page' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw manx > "$tmpdir/1.out"
+cat > "$tmpdir/1.exp" <<EOF
+$abstmpdir/usr/share/man/man1/manx.1.gz
+EOF
+expect_files_equal \
+ 'wildcards: MANDATORY_MANPATH: without wildcards: check existing man page' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+# With wildcards
+fake_config "/usr/share/prog/*/man"
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw manx > "$tmpdir/1.out" 2> /dev/null
+: > "$tmpdir/1.exp"
+expect_files_equal \
+ 'wildcards: MANDATORY_MANPATH: with wildcards: check missing man page' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw manpathx > "$tmpdir/1.out"
+cat > "$tmpdir/1.exp" <<EOF
+$abstmpdir/usr/share/prog/a/man/man1/manpathx.1.gz
+EOF
+expect_files_equal \
+ 'wildcards: MANDATORY_MANPATH: with wildcards: check existing man page' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+fake_config "/usr/share/prog/[ab]/man"
+
+run $MAN -C "$tmpdir/manpath.config" \
+ -aw whatisx > "$tmpdir/1.out"
+cat > "$tmpdir/1.exp" <<EOF
+$abstmpdir/usr/share/prog/b/man/man1/whatisx.1.gz
+EOF
+expect_files_equal \
+ 'wildcards: MANDATORY_MANPATH: with wildcards: check existing man page II' \
+ "$tmpdir/1.exp" "$tmpdir/1.out"
+
+finish