199 lines
11 KiB
Diff
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);
|
||
|
}
|