summaryrefslogtreecommitdiff
path: root/Build/source/texk/makeindexk/tests
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
committerKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
commitad547a6b5986815fda458221149728d9d9ab1d87 (patch)
tree16296910eb3eca724371474ea9aea3994dc69614 /Build/source/texk/makeindexk/tests
parent947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (diff)
restore Build,TODO from r57911
git-svn-id: svn://tug.org/texlive/trunk@57915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/makeindexk/tests')
-rwxr-xr-xBuild/source/texk/makeindexk/tests/makeindex.test17
-rw-r--r--Build/source/texk/makeindexk/tests/nested-range-bb.idx6
-rw-r--r--Build/source/texk/makeindexk/tests/nested-range-bb.tex72
-rwxr-xr-xBuild/source/texk/makeindexk/tests/nested-range-test.pl29
-rw-r--r--Build/source/texk/makeindexk/tests/nested-range.idx3
-rw-r--r--Build/source/texk/makeindexk/tests/nested-range.tex33
-rw-r--r--Build/source/texk/makeindexk/tests/sample.idx15
-rw-r--r--Build/source/texk/makeindexk/tests/sample.ind15
8 files changed, 190 insertions, 0 deletions
diff --git a/Build/source/texk/makeindexk/tests/makeindex.test b/Build/source/texk/makeindexk/tests/makeindex.test
new file mode 100755
index 00000000000..0f266aa778b
--- /dev/null
+++ b/Build/source/texk/makeindexk/tests/makeindex.test
@@ -0,0 +1,17 @@
+#! /bin/sh -vx
+# $Id$
+# Copyright 2017 Karl Berry <tex-live@tug.org>
+# Copyright 2012 Peter Breitenlohner <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+
+TEXMFCNF=$srcdir/../kpathsea
+export TEXMFCNF
+
+rm -f sample.*
+
+./makeindex $srcdir/tests/sample.idx -o sample.ind1 -t sample.ilg1 \
+ && diff $srcdir/tests/sample.ind sample.ind1 || exit 1
+
+cat $srcdir/tests/sample.idx | ./makeindex >sample.ind2 2>sample.ilg2 \
+ && diff $srcdir/tests/sample.ind sample.ind2 || exit 1
+
diff --git a/Build/source/texk/makeindexk/tests/nested-range-bb.idx b/Build/source/texk/makeindexk/tests/nested-range-bb.idx
new file mode 100644
index 00000000000..6575c81ab54
--- /dev/null
+++ b/Build/source/texk/makeindexk/tests/nested-range-bb.idx
@@ -0,0 +1,6 @@
+\indexentry{random text|(}{1}
+\indexentry{periodic Hilbert transform|(}{1}
+\indexentry{periodic Hilbert transform|(}{2}
+\indexentry{random text|(}{2}
+\indexentry{periodic Hilbert transform|)}{2}
+\indexentry{random text|)}{2}
diff --git a/Build/source/texk/makeindexk/tests/nested-range-bb.tex b/Build/source/texk/makeindexk/tests/nested-range-bb.tex
new file mode 100644
index 00000000000..d2366dd6ccf
--- /dev/null
+++ b/Build/source/texk/makeindexk/tests/nested-range-bb.tex
@@ -0,0 +1,72 @@
+% Copyright 2011 Barbara Beeton <tex-live@tug.org>
+% You may freely use, modify and/or distribute this file.
+% This is the original annotated test report, with various extra info.
+% See below \end{document}.
+\documentclass{amsbook}
+\usepackage{verbatim}
+
+\makeindex
+
+\begin{document}
+
+\chapter{Demonstration of a Makeindex bug}
+
+\index{random text|(}%
+Here we open an index span for ``random text''.
+
+\index{periodic Hilbert transform|(}%
+How could we define the \emph{periodic Hilbert transform}?
+Here is an open index span for ``periodic Hilbert transform''.
+
+(lots more text omitted)
+\newpage
+
+We defined in Section~3 the
+\index{periodic Hilbert transform|(}%
+\emph{periodic Hilbert transform} or \emph{conjugate function}.
+A second open index span for ``periodic Hilbert transform''.
+
+\index{random text|(}%
+(more omitted text and a second open index span for ``random text'')
+
+Closing index spans for the two opened entries.
+\index{periodic Hilbert transform|)}%
+\index{random text|)}%
+
+\vspace{1\baselineskip}
+\verbatiminput{\jobname.tex}
+\newpage
+\noindent This is the .idx file from the previous run:
+\verbatiminput{\jobname.idx-prev}
+\vspace{2\baselineskip}
+This is the resulting .ilg file:
+\verbatiminput{\jobname.ilg}
+\vspace{2\baselineskip}
+And the resulting .ind file; note spurious \verb+\(+ inclusions.
+\verbatiminput{\jobname.ind}
+\end{document}
+
+
+Date: Thu, 22 Sep 2011 12:23:48 -0400
+From: Barbara Beeton
+Subject: a makeindex bug
+
+[...]
+
+to get the desired output, run latex, then makeindex.
+copy or rename <jobname>.idx to <jobname>.idx-prev,
+rerun latex, and take a look at the output. (the
+reason for the rename is that i've included in the
+output listings of the .idx(-prev), .ilg, and .ind
+files, all small, but very interesting.)
+
+the problem is that if a span is begun for a string
+and then a second span is begun for the same string
+without the first one being closed, the |( in the
+input is put into the output as \( -- with the
+result that an attempt to print the index will get
+an unmatched $ error. the unmatched span is noted
+in the .ilg file with a warning, but since most
+people ignore warnings the first time around (i
+certainly do), the unrecoverable (la)tex error in
+the index can really throw them into a tizzy.
diff --git a/Build/source/texk/makeindexk/tests/nested-range-test.pl b/Build/source/texk/makeindexk/tests/nested-range-test.pl
new file mode 100755
index 00000000000..441328257d6
--- /dev/null
+++ b/Build/source/texk/makeindexk/tests/nested-range-test.pl
@@ -0,0 +1,29 @@
+#!/usr/bin/env perl
+# $Id$
+# Public domain. Originally written 2011, Karl Berry.
+# Check that makeindex doesn't create spurious output from nested ranges.
+# See nested-range.tex and -bb.tex.
+
+# srcdir = makeindexk (in the source tree)
+BEGIN { chomp ($srcdir = $ENV{"srcdir"} || `cd \`dirname $0\`/.. && pwd`); }
+require "$srcdir/../tests/common-test.pl";
+
+exit (&main ());
+
+sub main {
+ my $ret = &test_run ("./makeindex", "$srcdir/tests/nested-range.idx",
+ "-o", "nested-range.ind",
+ "-t", "nested-range.ilg");
+
+ # The test fails if the output contains \(.
+ my $bad = 0;
+ local *IND;
+ $IND = "nested-range.ind";
+ open (IND) || die "open($IND) failed: $!";
+ while (<IND>) {
+ $bad = 1 if /\\\(/;
+ }
+ close (IND) || die "close($IND) failed: $!";
+
+ return $bad;
+}
diff --git a/Build/source/texk/makeindexk/tests/nested-range.idx b/Build/source/texk/makeindexk/tests/nested-range.idx
new file mode 100644
index 00000000000..a1154a3d5dc
--- /dev/null
+++ b/Build/source/texk/makeindexk/tests/nested-range.idx
@@ -0,0 +1,3 @@
+\indexentry{bad range|(}{1}
+\indexentry{bad range|(}{2}
+\indexentry{bad range|)}{2}
diff --git a/Build/source/texk/makeindexk/tests/nested-range.tex b/Build/source/texk/makeindexk/tests/nested-range.tex
new file mode 100644
index 00000000000..15be5e519a8
--- /dev/null
+++ b/Build/source/texk/makeindexk/tests/nested-range.tex
@@ -0,0 +1,33 @@
+% Copyright 2011 Barbara Beeton <tex-live@tug.org>
+% You may freely use, modify and/or distribute this file.
+%
+% This is the minimal version that reproduces the bug.
+% Some commented-out lines are some variations.
+% For all the details, see nested-range-bb.tex.
+%
+\documentclass{article}
+
+\makeindex
+
+\begin{document}
+\index{bad range|(}%
+%\index{ok range|(}%
+start.
+
+\newpage
+\index{bad range|(}%
+second page.
+
+\index{bad range|)}%
+%\index{ok range|)}%
+close.
+
+\end{document}
+
+\index{bad range|)}%
+second close.
+
+\index{bad range|)}%
+third close.
+
+\end{document}
diff --git a/Build/source/texk/makeindexk/tests/sample.idx b/Build/source/texk/makeindexk/tests/sample.idx
new file mode 100644
index 00000000000..394c0087af9
--- /dev/null
+++ b/Build/source/texk/makeindexk/tests/sample.idx
@@ -0,0 +1,15 @@
+\indexentry{alpha}{1}
+\indexentry{random text|bold}{2}
+\indexentry{random text|(}{9}
+\indexentry{random text|)}{11}
+\indexentry{alpha!beta}{3}
+\indexentry{alpha!phi}{5}
+\indexentry{alpha!phi!sigma}{6}
+\indexentry{alpha!phi!rho}{7}
+\indexentry{alpha!beta!delta}{8}
+\indexentry{alpha!beta!gamma}{10}
+\indexentry{alpha!phi!sigma}{12}
+\indexentry{alpha!phi!rho}{12}
+\indexentry{alpha!phi!sigma}{13}
+\indexentry{alpha!phi!sigma}{14}
+\indexentry{alpha!phi!rho}{14}
diff --git a/Build/source/texk/makeindexk/tests/sample.ind b/Build/source/texk/makeindexk/tests/sample.ind
new file mode 100644
index 00000000000..ea39facc389
--- /dev/null
+++ b/Build/source/texk/makeindexk/tests/sample.ind
@@ -0,0 +1,15 @@
+\begin{theindex}
+
+ \item alpha, 1
+ \subitem beta, 3
+ \subsubitem delta, 8
+ \subsubitem gamma, 10
+ \subitem phi, 5
+ \subsubitem rho, 7, 12, 14
+ \subsubitem sigma, 6, 12--14
+
+ \indexspace
+
+ \item random text, \bold{2}, 9--11
+
+\end{theindex}