summaryrefslogtreecommitdiff
path: root/Build/source
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source')
-rw-r--r--Build/source/texk/kpathsea/ChangeLog9
-rwxr-xr-xBuild/source/texk/kpathsea/tests/cnfline.test33
-rwxr-xr-xBuild/source/texk/kpathsea/tests/cnfnewline.test8
-rwxr-xr-xBuild/source/texk/kpathsea/tests/cnfnull.test11
-rwxr-xr-xBuild/source/texk/kpathsea/tests/cnfprog.test13
-rwxr-xr-xBuild/source/texk/kpathsea/tests/kpsestat.test17
-rwxr-xr-xBuild/source/texk/kpathsea/tests/kpsewhich.test51
-rw-r--r--Build/source/texk/kpathsea/tests/windows/texmf.cnf49
8 files changed, 157 insertions, 34 deletions
diff --git a/Build/source/texk/kpathsea/ChangeLog b/Build/source/texk/kpathsea/ChangeLog
index 80e7d9a00b2..738b1c0acfa 100644
--- a/Build/source/texk/kpathsea/ChangeLog
+++ b/Build/source/texk/kpathsea/ChangeLog
@@ -1,3 +1,12 @@
+2023-08-11 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * tests/{cnfline,cnfnewline,cnfnull,cnfprog,kpsestat,kpsewhich}.test:
+ Make easier to test on Windows.
+ {kpseaccess,kpsereadlink}.test are not modified since
+ they are not used for tests on Windows.
+ * tests/windows/texmf.cnf:
+ New cnf for testing windows MS Visual C build.
+
2023-07-16 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
* kpsewhich.c: Allow Unicode file name for bibtex8 and bibtexu
diff --git a/Build/source/texk/kpathsea/tests/cnfline.test b/Build/source/texk/kpathsea/tests/cnfline.test
index 076d9a78281..dcc2b0539a7 100755
--- a/Build/source/texk/kpathsea/tests/cnfline.test
+++ b/Build/source/texk/kpathsea/tests/cnfline.test
@@ -3,29 +3,44 @@
# Copyright 2019 Karl Berry <tex-live@tug.org>
# You may freely use, modify and/or distribute this file.
+BinDir=${BinDir:-.}
+ExeExt=${ExeExt:-}
+_kpsewhich=$BinDir/kpsewhich$ExeExt
+
cnf_dir=$srcdir/tests/cnfline
# just in case they are set in the environment
unset maxpr
unset othervar
+remove_cr() {
+ if [ $ExeExt = ".exe" ]; then
+ val=`echo $val | sed -e 's/\\r//'`
+ fi
+}
+
# Just for fun, let's first try the --cnf-line feature to set TEXMFCNF.
-val=`./kpsewhich "--cnf-line=TEXMFCNF=$cnf_dir" --var-value=othervar`
+val=`$_kpsewhich "--cnf-line=TEXMFCNF=$cnf_dir" --var-value=othervar`; remove_cr
test x"$val" = x300 || exit 1
# But for the rest, just use the environment, to keep things simpler.
TEXMFCNF=$cnf_dir; export TEXMFCNF
+# In Windows, exe binaries fail to get environment variables from sh scripts
+# and still we need --cnf-line.
+if [ $ExeExt = ".exe" ]; then
+ _kpsewhich="$BinDir/kpsewhich$ExeExt --cnf-line=TEXMFCNF=$cnf_dir"
+fi
# Make sure we get expected values from the test texmf.cnf.
-val=`./kpsewhich --var-value=maxpr`
-test x"$val" = x200 || exit 1
+val=`$_kpsewhich --var-value=maxpr`; remove_cr
+test x"$val" = x200 || exit 2
#
-val=`./kpsewhich --progname=foo --var-value=maxpr`
-test x"$val" = x100 || exit 1
+val=`$_kpsewhich --progname=foo --var-value=maxpr`; remove_cr
+test x"$val" = x100 || exit 3
#
-val=`./kpsewhich --var-value=othervar`
-test x"$val" = x300 || exit 1
+val=`$_kpsewhich --var-value=othervar`; remove_cr
+test x"$val" = x300 || exit 4
# Now override on cmd line -- both texmf.cnf values should get overridden.
-val=`./kpsewhich --cnf-line=maxpr=99 --var-value=maxpr`
-test x"$val" = x99 || exit 1
+val=`$_kpsewhich --cnf-line=maxpr=99 --var-value=maxpr`; remove_cr
+test x"$val" = x99 || exit 5
diff --git a/Build/source/texk/kpathsea/tests/cnfnewline.test b/Build/source/texk/kpathsea/tests/cnfnewline.test
index 9d93984d8f5..090f66ebadb 100755
--- a/Build/source/texk/kpathsea/tests/cnfnewline.test
+++ b/Build/source/texk/kpathsea/tests/cnfnewline.test
@@ -4,9 +4,15 @@
# Copyright 2013 Peter Breitenlohner <tex-live@tug.org>
# You may freely use, modify and/or distribute this file.
+BinDir=${BinDir:-.}
+ExeExt=${ExeExt:-}
+_kpsewhich=$BinDir/kpsewhich$ExeExt
+
TEXMFCNF=$srcdir/tests/cnfnewline; export TEXMFCNF
+cnf_dir=$srcdir/tests/cnfnewline
-val=`./kpsewhich --debug=-1 --var-value=lastvar`
+val=`$_kpsewhich "--cnf-line=TEXMFCNF=$cnf_dir" --debug=-1 --var-value=lastvar`
+if [ $ExeExt = ".exe" ]; then val=`echo $val | sed -e 's/\\r//'`; fi
test x"$val" = xlastval || exit 1
# verbose for testing.
diff --git a/Build/source/texk/kpathsea/tests/cnfnull.test b/Build/source/texk/kpathsea/tests/cnfnull.test
index e80d931394c..e84fe35a124 100755
--- a/Build/source/texk/kpathsea/tests/cnfnull.test
+++ b/Build/source/texk/kpathsea/tests/cnfnull.test
@@ -5,6 +5,10 @@
#
# Test nul (zero) bytes in texmf.cnf.
+BinDir=${BinDir:-.}
+ExeExt=${ExeExt:-}
+_kpsewhich=$BinDir/kpsewhich$ExeExt
+
cnf_dir=cnfnull
cnf_file=$cnf_dir/texmf.cnf
@@ -13,10 +17,11 @@ cnf_file=$cnf_dir/texmf.cnf
rm -rf $cnf_dir
mkdir $cnf_dir
test -d $cnf_dir || exit 1
-printf 'x\0=1\n\0' >$cnf_file || exit 1
+printf 'x\0=1\n\0' >$cnf_file || exit 2
-val=`./kpsewhich "--cnf-line=TEXMFCNF=$cnf_dir" --var-value=x`
-test x"$val" = x1 || exit 1
+val=`$_kpsewhich "--cnf-line=TEXMFCNF=$cnf_dir" --var-value=x`
+if [ $exe = ".exe" ]; then val=`echo $val | sed -e 's/\\r//'`; fi
+test x"$val" = x1 || exit 3
# Before we dropped nul bytes in 2020, kpse gave a warning:
# warning: cnfnull/texmf.cnf:1: (kpathsea) No cnf value on line: x.
diff --git a/Build/source/texk/kpathsea/tests/cnfprog.test b/Build/source/texk/kpathsea/tests/cnfprog.test
index 08f472e2b34..112f62e82df 100755
--- a/Build/source/texk/kpathsea/tests/cnfprog.test
+++ b/Build/source/texk/kpathsea/tests/cnfprog.test
@@ -4,6 +4,10 @@
# You may freely use, modify and/or distribute this file.
# Test strange program name qualifiers which should give warnings.
+BinDir=${BinDir:-.}
+ExeExt=${ExeExt:-}
+_kpsewhich=$BinDir/kpsewhich$ExeExt
+
cnf_dir=$srcdir/tests/cnfprog
# But for the rest, just use the environment, to keep things simpler.
@@ -11,13 +15,14 @@ TEXMFCNF=$cnf_dir; export TEXMFCNF
# Make sure we get expected values from the test texmf.cnf.
errfile=cnfprog.err
-val=`./kpsewhich --var-value=noequals 2>$errfile`
+val=`$_kpsewhich "--cnf-line=TEXMFCNF=$cnf_dir" --var-value=noequals 2>$errfile`
+if [ $ExeExt = ".exe" ]; then val=`echo $val | sed -e 's/\\r//'`; fi
# the vaiable should not have any value.
test -z "$val" || exit 1
-grep 'Empty program name qualifier' $errfile || exit 1
-grep 'Unlikely character ;' $errfile || exit 1
-grep 'Unlikely character \$' $errfile || exit 1
+grep 'Empty program name qualifier' $errfile || exit 2
+grep 'Unlikely character ;' $errfile || exit 3
+grep 'Unlikely character \$' $errfile || exit 4
exit 0
diff --git a/Build/source/texk/kpathsea/tests/kpsestat.test b/Build/source/texk/kpathsea/tests/kpsestat.test
index fa25f5a5968..b3105d0ad62 100755
--- a/Build/source/texk/kpathsea/tests/kpsestat.test
+++ b/Build/source/texk/kpathsea/tests/kpsestat.test
@@ -4,17 +4,20 @@
# Copyright 2010 Peter Breitenlohner <tex-live@tug.org>
# You may freely use, modify and/or distribute this file.
-./kpsestat = nonesuch 2>/dev/null && exit 1
+BinDir=${BinDir:-.}
+ExeExt=${ExeExt:-}
+_kpsestat=$BinDir/kpsestat$ExeExt
+
+$_kpsestat = nonesuch 2>/dev/null && exit 1
for f in . kpsestat kpsestat.o; do
- echo "kpsestat = $f => `./kpsestat = $f`"
+ echo "kpsestat = $f => `$_kpsestat = $f`"
done
for m in -rw g-r u-w o+x -rw,u+s -rw,g+s -rw,o+t; do
- echo "kpsestat $m kpsestat.o => `./kpsestat $m kpsestat.o`"
+ echo "kpsestat $m kpsestat.o => `$_kpsestat $m kpsestat.o`"
done
-echo "kpsestat = \$srcdir => `./kpsestat = $srcdir`"
-echo "kpsestat = \$srcdir/ => `./kpsestat = $srcdir/`"
-echo "kpsestat = \$srcdir/kpsestat.c => `./kpsestat = $srcdir/kpsestat.c`"
-
+echo "kpsestat = \$srcdir => `$_kpsestat = $srcdir`"
+echo "kpsestat = \$srcdir/ => `$_kpsestat = $srcdir/`"
+echo "kpsestat = \$srcdir/kpsestat.c => `$_kpsestat = $srcdir/kpsestat.c`"
diff --git a/Build/source/texk/kpathsea/tests/kpsewhich.test b/Build/source/texk/kpathsea/tests/kpsewhich.test
index 261bf1b17f3..5c23e940aa4 100755
--- a/Build/source/texk/kpathsea/tests/kpsewhich.test
+++ b/Build/source/texk/kpathsea/tests/kpsewhich.test
@@ -4,32 +4,63 @@
# Copyright 2010-2013 Peter Breitenlohner <tex-live@tug.org>
# You may freely use, modify and/or distribute this file.
+BinDir=${BinDir:-.}
+ExeExt=${ExeExt:-}
+_kpsewhich=$BinDir/kpsewhich$ExeExt
+
TEXMFCNF=$srcdir
export TEXMFCNF
-./kpsewhich --var-value=TEXMFCNF || exit 1 # environment variable
-./kpsewhich --var-value=TEXMFMAIN || exit 1
-./kpsewhich --expand-var=\$TEXMFMAIN || exit 1
+$_kpsewhich --var-value=TEXMFCNF || exit 1 # environment variable
+$_kpsewhich --var-value=TEXMFMAIN || exit 2
+$_kpsewhich --expand-var=\$TEXMFMAIN || exit 3
# It turns out --all and no --all go through rather different code
# in pathsearch.c, so try them both.
+
+if [ $ExeExt = ".exe" ]; then
+
+$_kpsewhich --cnf-line=TEXINPUTS=$srcdir/../tests/texmf \
+ --casefold-search --all Plain.TeX || exit 4
+$_kpsewhich --cnf-line=TEXINPUTS=$srcdir/../tests/texmf \
+ --casefold-search Plain.TeX || exit 5
+
+else
+
TEXINPUTS=$srcdir/../tests/texmf \
- ./kpsewhich --casefold-search --all Plain.TeX || exit 1
+ $_kpsewhich --casefold-search --all Plain.TeX || exit 4
TEXINPUTS=$srcdir/../tests/texmf \
- ./kpsewhich --casefold-search Plain.TeX || exit 1
+ $_kpsewhich --casefold-search Plain.TeX || exit 5
+
+fi
#
# These runs will succeed on case-insensitive (file)systems, so don't
# run them.
#TEXINPUTS=$srcdir/../tests/texmf \
-# ./kpsewhich --no-casefold-search --all Plain.TeX && exit 1
+# ./kpsewhich --no-casefold-search --all Plain.TeX && exit 6
#TEXINPUTS=$srcdir/../tests/texmf \
-# ./kpsewhich --no-casefold-search Plain.TeX && exit 1
+# ./kpsewhich --no-casefold-search Plain.TeX && exit 7
+
+if [ $ExeExt = ".exe" ]; then
+
+$_kpsewhich --cnf-line=TEXINPUTS=$srcdir/../tests/texmf \
+ --all plain || exit 8
+
+$_kpsewhich --cnf-line=AFMFONTS=$srcdir/../tests/texmf \
+ afmtest.afm || exit 9
+
+$_kpsewhich --cnf-line=BSTINPUTS=$srcdir/../tests/texmf \
+ plain.bst || exit 10
+
+else
TEXINPUTS=$srcdir/../tests/texmf \
- ./kpsewhich --all plain || exit 1
+ $_kpsewhich --all plain || exit 8
AFMFONTS=$srcdir/../tests/texmf \
- ./kpsewhich afmtest.afm || exit 1
+ $_kpsewhich afmtest.afm || exit 9
BSTINPUTS=$srcdir/../tests/texmf \
- ./kpsewhich plain.bst || exit 1
+ $_kpsewhich plain.bst || exit 10
+
+fi
diff --git a/Build/source/texk/kpathsea/tests/windows/texmf.cnf b/Build/source/texk/kpathsea/tests/windows/texmf.cnf
new file mode 100644
index 00000000000..0e57e7c871f
--- /dev/null
+++ b/Build/source/texk/kpathsea/tests/windows/texmf.cnf
@@ -0,0 +1,49 @@
+% Public domain.
+% This tiny texmf.cnf is for testing windows MS Visual C build
+
+TEXMFMAIN = $TEXMFCNF
+
+TEXINPUTS = .;$srcroot/texk/bibtex-x/tests
+TEXFONTS = .;$srcroot/texk/dvipsk/testdata
+
+% for web2c
+CWEBINPUTS = $srcroot/texk/web2c/ctiedir;$srcroot/texk/web2c/cwebdir//
+WEBINPUTS = $srcroot/texk/web2c/tiedir
+
+% for dvips
+TEXFONTMAPS.dvips = $srcroot/texk/dvipsk/testdata
+VFFONTS.dvips = .;$srcroot/texk/dvipsk/testdata
+TEXPSHEADERS.dvips = .;$srcroot/texk/dvipsk/testdata
+TEXFONTS.dvips = .;$srcroot/texk/dvipsk/testdata
+TFMFONTS.dvips = .;$srcroot/texk/{web2c/tests,dvipsk/testdata}//
+TEXFONTS.dvips = .;$srcroot/texk/{web2c/tests,dvipsk/testdata}//
+T1FONTS.dvips = .;$srcroot/texk/{web2c/tests,dvipsk/testdata}//
+AFMFONTS.afm2tfm = $srcroot/texk/tests/texmf
+
+% for dvipdfm-x
+TFMFONTS.dvipdfmx = .;$srcroot/texk/dvipdfm-x/tests;$srcroot/texk/dvipdfm-x/data
+T1FONTS.dvipdfmx = .;$srcroot/texk/dvipdfm-x/tests;$srcroot/texk/dvipdfm-x/data
+TTFONTS.dvipdfmx = .;$srcroot/texk/dvipdfm-x/tests;$srcroot/texk/dvipdfm-x/data
+PKFONTS.dvipdfmx = .;$srcroot/texk/dvipdfm-x/tests;$srcroot/texk/dvipdfm-x/data
+TEXFONTMAPS.dvipdfmx = .;$srcroot/texk/dvipdfm-x/tests;$srcroot/texk/dvipdfm-x/data
+DVIPDFMXINPUTS.dvipdfmx = .;$srcroot/texk/dvipdfm-x/tests;$srcroot/texk/dvipdfm-x/data
+TEXPICTS.dvipdfmx = $srcroot/texk/dvipdfm-x/tests
+TEXFONTS.dvipdfmx = .;$srcroot/texk/dvipdfm-x/tests
+
+% for bibtex-x
+BIBINPUTS.bibtex8 = .;$srcroot/texk/web2c/tests;$srcroot/texk/bibtex-x/tests
+BSTINPUTS.bibtex8 = .;$srcroot/texk/tests/texmf;$srcroot/texk/web2c/tests;$srcroot/texk/bibtex-x/{tests,csf}
+BIBINPUTS.bibtexu = .;$srcroot/texk/web2c/tests;$srcroot/texk/bibtex-x/tests
+BSTINPUTS.bibtexu = .;$srcroot/texk/tests/texmf;$srcroot/texk/web2c/tests;$srcroot/texk/bibtex-x/tests
+
+% Guess input encoding (SJIS vs. Unicode, etc.) in pTeX and friends
+guess_input_kanji_encoding = 0
+guess_input_kanji_encoding.ptex = 1
+guess_input_kanji_encoding.eptex = 1
+guess_input_kanji_encoding.platex = 1
+guess_input_kanji_encoding.platex-dev = 1
+guess_input_kanji_encoding.pbibtex = 1
+guess_input_kanji_encoding.mendex = 1
+
+% command_line_encoding
+command_line_encoding = utf-8