texi2html/texi2html-5584.patch

199 lines
11 KiB
Diff

Author: pertusus
Date: Sun May 18 23:34:07 2014 UTC (8 months, 2 weeks ago)
Log Message:
Make tests reproducible.
---
T2h_l2h.pm | 5 +++--
TODO | 15 +++++++++++++++
test/coverage/tests.txt | 1 +
test/many_input_files/tex_l2h.sh | 7 ++++---
test/run_test_all.sh | 8 +++++---
texi2html.pl | 18 +++++++++++-------
6 files changed, 39 insertions(+), 15 deletions(-)
--- T2h_l2h.pm
+++ T2h_l2h.pm 2014-05-18 23:34:07.000000000 +0000
@@ -582,8 +582,9 @@ sub store_cache
main::document_error ("l2h: could not open $docu_rdir$l2h_cache_file for writing: $!");
return;
}
- while (($key, $value) = each %l2h_cache)
- {
+ #while (($key, $value) = each %l2h_cache)
+ foreach my $key(sort(keys(%l2h_cache))) {
+ $value = $l2h_cache{$key};
# escape stuff
$key =~ s|/|\\/|g;
$key =~ s|\\\\/|\\/|g;
--- TODO
+++ TODO 2015-02-05 12:28:22.893519431 +0000
@@ -1,3 +1,18 @@
+Regenerate tests:
+sh autogen.sh
+./configure
+make
+make check-local
+cd test
+./manage_test_archives.sh get
+cd ..
+tar xzvf t2h_tests_files.tar.gz
+cd test
+./base_tests
+./long_tests
+./tex_html_tests
+make copy-tests copy-tex-html
+
This file contains a list of things yet to be done (see also in doc/TODO):
Before next release
--- test/coverage/tests.txt
+++ test/coverage/tests.txt 2015-02-05 12:37:37.289522855 +0000
@@ -5,6 +5,7 @@ texi float.texi
texi imbrications.texi
texi formats_titles.texi
texi delcomment.texi
+# result is incorrect, in menu end of line is swallowed.
#texi line_commands_comment.texi
comments comments.texi
formatting formatting.texi --internal-links=@OUT_DIR@internal_links_formatting.txt
--- test/many_input_files/tex_l2h.sh
+++ test/many_input_files/tex_l2h.sh 2015-02-05 12:41:31.989519079 +0000
@@ -27,8 +27,8 @@ fi
[ -d $basename ] && rm -rf $basename
mkdir $basename
-echo "perl -w -x $srcdir/../../texi2html.pl -test -init l2h_tmp_dir.init -conf-dir $srcdir/../../examples -l2h -expand tex --out $basename/ $srcdir/../manuals/mini_ker.texi $srcdir/../formatting/tex.texi >> $stdout_file 2>$basename/${basename}.2" >> $logfile
-perl -w -x $srcdir/../../texi2html.pl -test -init l2h_tmp_dir.init -conf-dir $srcdir/../../examples -l2h -expand tex --out $basename/ $srcdir/../manuals/mini_ker.texi $srcdir/../formatting/tex.texi >> $stdout_file 2>$basename/${basename}.2
+echo "perl -w -x $srcdir/../../texi2html.pl -test -init l2h_tmp_dir.init --set-init-var 'TEST 1' --set-init-var 'L2H_CLEAN 0' --set-init-var 'L2H_TMP $tmp_dir' -conf-dir $srcdir/../../examples -l2h -expand tex --out $basename/ $srcdir/../manuals/mini_ker.texi $srcdir/../formatting/tex.texi >> $stdout_file 2>$basename/${basename}.2" >> $logfile
+perl -w -x $srcdir/../../texi2html.pl -test -init l2h_tmp_dir.init --set-init-var 'TEST 1' --set-init-var 'L2H_CLEAN 0' --set-init-var 'L2H_TMP $tmp_dir' -conf-dir $srcdir/../../examples -l2h -expand tex --out $basename/ $srcdir/../manuals/mini_ker.texi $srcdir/../formatting/tex.texi >> $stdout_file 2>$basename/${basename}.2
return_code=0
ret=$?
@@ -43,7 +43,8 @@ else
's/with LaTeX2HTML.*/with LaTeX2HTML/' "$basename/"*"_l2h.html"
sed -i -e 's/^# LaTeX2HTML.*/# LaTeX2HTML/' "$basename/"*"_l2h_images.pl" "$basename/"*"_l2h_labels.pl"
sed -i -e 's/WIDTH="\([0-9]*\)\([0-9]\)"/WIDTH="100"/' "$basename/"*"_l2h_images.pl" "$basename/"*.html "$basename/"*-l2h_cache.pm
- rm -f "$basename/"*".aux" "$basename/"*"_l2h_images.out"
+ # order of entries in *_l2h_images is not reproducible
+ rm -f "$basename/"*".aux" "$basename/"*"_l2h_images.out" "$basename/"*"_l2h_images.pl"
for dir in ${basename}; do
if [ -d $srcdir/${dir}_res ]; then
diff -u --exclude=CVS --exclude='*.png' -r "$srcdir/${dir}_res" "${dir}" 2>>$logfile > "$diffs_dir/$dir.diff"
--- test/run_test_all.sh
+++ test/run_test_all.sh 2015-02-05 12:40:53.738059178 +0000
@@ -223,10 +223,12 @@ do
mkdir "${outdir}$dir"
remaining_out_dir=`echo $remaining | sed 's,@OUT_DIR@,'"${outdir}$dir/"',g'`
echo "$command $dir" >> $logfile
- echo "perl -w -x $command_run $format_option --force --conf-dir $testdir/$srcdir_test/../../maintained_extra --conf-dir $testdir/$srcdir_test/../../examples --conf-dir $testdir/$srcdir_test/../../formats --conf-dir $testdir/$srcdir_test/ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ --test --output ${outdir}$dir/ $remaining_out_dir $src_file > ${outdir}$dir/$basename.1 2>${outdir}$dir/$basename.2" >> $logfile
- eval "perl -w -x $command_run $format_option --force --conf-dir $testdir/$srcdir_test/../../maintained_extra --conf-dir $testdir/$srcdir_test/../../examples --conf-dir $testdir/$srcdir_test/../../formats --conf-dir $testdir/$srcdir_test/ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ --test --output ${outdir}$dir/ $remaining_out_dir $src_file > ${outdir}$dir/$basename.1 2>${outdir}$dir/$basename.2"
+ echo "perl -w -x $command_run $format_option --force --conf-dir $testdir/$srcdir_test/../../maintained_extra --conf-dir $testdir/$srcdir_test/../../examples --conf-dir $testdir/$srcdir_test/../../formats --conf-dir $testdir/$srcdir_test/ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ --set-init-var L2H_FILE=$testdir/$srcdir_test/../../examples/l2h.init --error-limit=1000 --set-init-var TEST=1 --set-init-var L2H_CLEAN=0 $l2h_tmp_dir --test --output ${outdir}$dir/ $remaining_out_dir $src_file > ${outdir}$dir/$basename.1 2>${outdir}$dir/$basename.2" >> $logfile
+ eval "perl -w -x $command_run $format_option --force --conf-dir $testdir/$srcdir_test/../../maintained_extra --conf-dir $testdir/$srcdir_test/../../examples --conf-dir $testdir/$srcdir_test/../../formats --conf-dir $testdir/$srcdir_test/ -I $testdir/$srcdir_test/ -I $testdir/$srcdir_test/../ --set-init-var L2H_FILE=$testdir/$srcdir_test/../../examples/l2h.init --error-limit=1000 --set-init-var TEST=1 --set-init-var L2H_CLEAN=0 $l2h_tmp_dir --test --output ${outdir}$dir/ $remaining_out_dir $src_file > ${outdir}$dir/$basename.1 2>${outdir}$dir/$basename.2"
ret=$?
- rm -f ${outdir}$dir/*_l2h_images.log ${outdir}$dir/*_tex4ht_*.log \
+ # *_l2h_images.pl has not reproducible cached entries
+ rm -f ${outdir}$dir/*_l2h_images.log ${outdir}$dir/*_l2h_images.pl \
+ ${outdir}$dir/*_tex4ht_*.log \
${outdir}$dir/*_tex4ht_*.idv ${outdir}$dir/*_tex4ht_*.dvi \
${outdir}$dir/*_tex4ht_tex.html* ${outdir}$dir/*_l2h.html.*
fi
--- texi2html.pl
+++ texi2html.pl 2015-02-05 12:43:54.114019286 +0000
@@ -4994,6 +4994,7 @@ my @all_elements; # sectioning
# in reading order. Each member is a reference
# on a hash which also appears in %nodes,
# @sections_list @nodes_list, @elements_list
+my @headings_list; # headings in reading order.
my @elements_list; # all the resulting elements in document order
my %sections; # sections hash. The key is the section number
my %headings; # headings hash. The key is the heading number
@@ -6374,7 +6375,7 @@ sub cross_manual_links()
my $style_kept = $Texi2HTML::Config::style;
$Texi2HTML::Config::style = \&Texi2HTML::Config::T2H_GPL_style;
- foreach my $key (keys(%nodes))
+ foreach my $key (sort(keys(%nodes)))
{
my $node = $nodes{$key};
#print STDERR "CROSS_MANUAL:$key,$node\n";
@@ -6710,7 +6711,7 @@ sub rearrange_elements()
# correct level if raisesections or lowersections overflowed
# and find toplevel level
# use %sections and %headings to modify also the headings
- foreach my $section (values(%sections), values(%headings))
+ foreach my $section (@sections_list, @headings_list)
{
my $level = $section->{'level'};
if ($level > $MAX_LEVEL)
@@ -6961,7 +6962,7 @@ sub rearrange_elements()
print STDERR "# Resolve nodes directions\n" if ($T2H_DEBUG & $DEBUG_ELEMENTS);
foreach my $node (@nodes_list)
{
- foreach my $direction (keys(%node_directions))
+ foreach my $direction (sort(keys(%node_directions)))
{
if (defined($node->{$direction}))
{
@@ -7005,7 +7006,7 @@ sub rearrange_elements()
# (have same node id) than an existing node
foreach my $node (@nodes_with_unknown_directions)
{
- foreach my $direction (keys(%node_directions))
+ foreach my $direction (sort(keys(%node_directions)))
{
if (defined($node->{$direction}) and !$node->{$node_directions{$direction}})
{
@@ -8200,7 +8201,7 @@ sub do_names()
# This seems right, however, as we don't want @refs or @footnotes
# or @anchors within nodes, section commands or anchors.
$global_pass = '2 node names';
- foreach my $node (keys(%nodes))
+ foreach my $node (sort(keys(%nodes)))
{
my $texi = &$Texi2HTML::Config::heading_texi($nodes{$node}->{'tag'},
$nodes{$node}->{'texi'}, undef);
@@ -9127,7 +9128,7 @@ sub finish_element($$$$)
# write to files with name the node name for cross manual references.
sub do_node_files()
{
- foreach my $key (keys(%nodes))
+ foreach my $key (sort(keys(%nodes)))
{
my $node = $nodes{$key};
next unless ($node->{'node_file'});
@@ -12039,6 +12040,7 @@ sub do_index_summary_file($$)
foreach my $letter_entries (@{$Texi2HTML::THISDOC{'index_letters_array'}->{$name}})
{
+ #print STDERR "$name: $letter_entries->{'letter'}\n";
foreach my $entry (@{$letter_entries->{'entries'}})
{
#my $entry = $entries->{$key};
@@ -13437,6 +13439,7 @@ sub scan_structure($$$$;$)
$state->{'heading_element'} = $heading_ref;
push @{$state->{'place'}}, $heading_ref;
$headings{$heading_ref->{'sec_num'}} = $heading_ref;
+ push @headings_list, $heading_ref;
}
add_prev ($text, $stack, "\@$macro" . $cline);
last;
@@ -16894,6 +16897,7 @@ while(@input_files)
# in reading order. Each member is a reference
# on a hash which also appears in %nodes,
# @sections_list @nodes_list, @elements_list
+ @headings_list = (); # headings in reading order.
@elements_list = (); # all the resulting elements in document order
%sections = (); # sections hash. The key is the section number
%headings = (); # headings hash. The key is the heading number
@@ -16997,7 +17001,7 @@ while(@input_files)
}
if ($Texi2HTML::Config::IDX_SUMMARY)
{
- foreach my $entry (keys(%index_names))
+ foreach my $entry (sort(keys(%index_names)))
{
do_index_summary_file($entry, $docu_name);
}