texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

texinfo/tp TODO t/10menu.t t/55conditionals.t t...


From: Patrice Dumas
Subject: texinfo/tp TODO t/10menu.t t/55conditionals.t t...
Date: Sat, 16 Oct 2010 09:37:06 +0000

CVSROOT:        /sources/texinfo
Module name:    texinfo
Changes by:     Patrice Dumas <pertusus>        10/10/16 09:37:06

Modified files:
        tp             : TODO 
        tp/t           : 10menu.t 55conditionals.t test_utils.pl 
Added files:
        tp/t/results/conditionals: ifnot_format_conditional.pl 
        tp/t/results/menu: detailmenu.pl 

Log message:
        Add code in the test classes to test whole files parsing.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/TODO?cvsroot=texinfo&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/10menu.t?cvsroot=texinfo&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/55conditionals.t?cvsroot=texinfo&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/test_utils.pl?cvsroot=texinfo&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/conditionals/ifnot_format_conditional.pl?cvsroot=texinfo&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/t/results/menu/detailmenu.pl?cvsroot=texinfo&rev=1.1

Patches:
Index: TODO
===================================================================
RCS file: /sources/texinfo/texinfo/tp/TODO,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- TODO        12 Oct 2010 18:06:18 -0000      1.13
+++ TODO        16 Oct 2010 09:37:06 -0000      1.14
@@ -21,6 +21,12 @@
 Test for @columnfractions in a random place and something like
 @multitable aaa @columnfractions 0.3 0.7
 
+'@macro one-arg{arg}
+Arg \arg\.
address@hidden macro
+
address@hidden'
+
 parse @sp a bit more.
 
 tests in test/macros

Index: t/10menu.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/10menu.t,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- t/10menu.t  10 Oct 2010 23:23:03 -0000      1.3
+++ t/10menu.t  16 Oct 2010 09:37:06 -0000      1.4
@@ -33,16 +33,6 @@
 * (f) a4 ::   @c c
 @end menu
 '],
-['menu_entry_no_entry',
-'@menu
-* a1:
-* a2:  
-* a1c:@c c
-* a2c:  @c c
-* address@hidden: 
-* address@hidden: @c c
address@hidden menu
-'],
 ['menu_entry_name',
 '@menu
 * a: (f)b
@@ -66,6 +56,26 @@
 * a: (f)b3c.c,    address@hidden c
 @end menu
 '],
+['detailmenu',
+'
address@hidden
+* Copying Conditions::          Your rights.
+
address@hidden
+* detailmenu::
address@hidden detailmenu
address@hidden menu
+'],
+['menu_entry_no_entry',
+'@menu
+* a1:
+* a2:  
+* a1c:@c c
+* a2c:  @c c
+* address@hidden: 
+* address@hidden: @c c
address@hidden menu
+'],
 ['bad_beginning',
 '@menu
 *   

Index: t/55conditionals.t
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/55conditionals.t,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- t/55conditionals.t  12 Oct 2010 09:59:13 -0000      1.4
+++ t/55conditionals.t  16 Oct 2010 09:37:06 -0000      1.5
@@ -58,7 +58,13 @@
 @ifset a
 in ifset
 @end ifset
-']
+'],
+['ifnot_format_conditional',
+'@ifnottex
+not tex
address@hidden ifnottex
+
+After.']
 );
 
 our ($arg_test_case, $arg_generate, $arg_debug);

Index: t/test_utils.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/t/test_utils.pl,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- t/test_utils.pl     4 Oct 2010 07:02:40 -0000       1.16
+++ t/test_utils.pl     16 Oct 2010 09:37:06 -0000      1.17
@@ -4,6 +4,7 @@
 use Texinfo::Parser qw(:all);
 use Data::Dumper;
 use Data::Compare;
+use File::Basename;
 #use Data::Diff;
 #use Data::Transformer;
 #use Struct::Compare;
@@ -45,15 +46,28 @@
 {
   my $self = shift;
   my $test_case = shift;
-  my $test_name = shift @$test_case;
-  my $test_text = shift @$test_case;
-  my $parser_options = shift @$test_case;
-  $parser_options = {} if (!defined($parser_options));
+
+  my $parser_options = {};
+  my ($test_name, $test_text);
+
+  if (ref($test_case) eq 'ARRAY') {
+    $test_name = shift @$test_case;
+    $test_text = shift @$test_case;
+    $parser_options = shift @$test_case if (@$test_case);
+  } else {
+    $test_name = basename($test_case, '.texi');
+  }
 
   my $parser = Texinfo::Parser->parser({'test' => 1, 'debug' => 
$self->{'debug'},
                                        %$parser_options});
   print STDERR "  TEST $test_name\n" if ($self->{'debug'});
-  my $result =  $parser->parse_texi_text($test_text, 1);
+  my $result;
+  if (ref($test_case) eq 'ARRAY') {
+    $result = $parser->parse_texi_text($test_text, 1);
+  } else {
+    $result = $parser->parse_texi_file($test_case);
+  }
+
   my ($errors, $error_nrs) = $parser->errors();
 
   my $file = "t/results/$self->{'name'}/$test_name.pl";
@@ -72,13 +86,20 @@
 
     #print STDERR "Generate: ".Data::Dumper->Dump([$result], ['$res']);
     my $out_result = "".Data::Dumper->Dump([$result], 
['$result_trees{\''.$test_name.'\'}']);
-    my $perl_string_result = tree_to_texi($result);
+    my $texi_string_result = tree_to_texi($result);
+    my $perl_string_result = $texi_string_result;
     $perl_string_result =~ s/\\/\\\\/g;
     $perl_string_result =~ s/'/\\'/g;
     $out_result .= "\n".'$result_texts{\''.$test_name.'\'} = 
\''.$perl_string_result."';\n\n";
     $out_result .= "".Data::Dumper->Dump([$errors], 
['$result_errors{\''.$test_name.'\'}']) ."\n\n";
     print OUT $out_result;
     close (OUT);
+    if (ref($test_case) ne 'ARRAY') {
+      my $out_texi_file = "t/results/$self->{'name'}/$test_name.texi";
+      open (OUT, ">$out_texi_file") or die "Open $out_texi_file: $!\n";
+      print OUT $texi_string_result;
+      close (OUT);
+    }
     
     print STDERR "--> $test_name\n".tree_to_texi($result)."\n" if 
($self->{'generate'});
   } 
@@ -143,6 +164,38 @@
   }
 }
 
+sub run_all_files($$;$$$)
+{
+  my $name = shift;
+  my $test_cases = shift;
+  my $test_case_name = shift;
+  my $generate = shift;
+  my $debug = shift;
+
+  my $test = new_test($name, $generate, $debug);
+  my $ran_tests = $test_cases;
+  if (defined($test_case_name)) {
+    if ($test_case_name =~ /^\d+$/) {
+      $ran_tests = [ $test_cases->[$test_case_name-1] ];
+    } else {
+      foreach my $file (@$test_cases) {
+        my $test_case = basename ($file, '.texi');
+        $ran_tests = [ $file ] if ($test_case eq $test_case_name);
+      }
+    }
+  }
+  foreach my $test_case (@$ran_tests) {
+    $test->test($test_case);
+  }
+
+  if ($generate or $arg_complete) {
+    plan tests => 1;
+  } else {
+     plan tests => (1 + scalar(@$ran_tests) * 3);
+  }
+}
+
+
 sub output_texi_file($)
 {
   my $self = shift;

Index: t/results/conditionals/ifnot_format_conditional.pl
===================================================================
RCS file: t/results/conditionals/ifnot_format_conditional.pl
diff -N t/results/conditionals/ifnot_format_conditional.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/conditionals/ifnot_format_conditional.pl  16 Oct 2010 09:37:06 
-0000      1.1
@@ -0,0 +1,46 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'ifnot_format_conditional'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'not tex
+'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => 'After.'
+        }
+      ],
+      'parent' => {},
+      'type' => 'paragraph'
+    }
+  ]
+};
+$result_trees{'ifnot_format_conditional'}{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'ifnot_format_conditional'}{'contents'}[0];
+$result_trees{'ifnot_format_conditional'}{'contents'}[0]{'parent'} = 
$result_trees{'ifnot_format_conditional'};
+$result_trees{'ifnot_format_conditional'}{'contents'}[1]{'parent'} = 
$result_trees{'ifnot_format_conditional'};
+$result_trees{'ifnot_format_conditional'}{'contents'}[2]{'contents'}[0]{'parent'}
 = $result_trees{'ifnot_format_conditional'}{'contents'}[2];
+$result_trees{'ifnot_format_conditional'}{'contents'}[2]{'parent'} = 
$result_trees{'ifnot_format_conditional'};
+
+$result_texts{'ifnot_format_conditional'} = 'not tex
+
+After.';
+
+$result_errors{'ifnot_format_conditional'} = [];
+
+

Index: t/results/menu/detailmenu.pl
===================================================================
RCS file: t/results/menu/detailmenu.pl
diff -N t/results/menu/detailmenu.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ t/results/menu/detailmenu.pl        16 Oct 2010 09:37:06 -0000      1.1
@@ -0,0 +1,171 @@
+use vars qw(%result_texts %result_trees %result_errors);
+
+$result_trees{'detailmenu'} = {
+  'contents' => [
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line'
+    },
+    {
+      'cmdname' => 'menu',
+      'contents' => [
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'empty_line_after_command'
+        },
+        {
+          'args' => [
+            {
+              'parent' => {},
+              'text' => '* ',
+              'type' => 'menu_entry_leading_text'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'Copying Conditions'
+                }
+              ],
+              'parent' => {},
+              'type' => 'menu_entry_node'
+            },
+            {
+              'parent' => {},
+              'text' => '::          ',
+              'type' => 'menu_entry_separator'
+            },
+            {
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => 'Your rights.
+'
+                }
+              ],
+              'parent' => {},
+              'type' => 'menu_entry_description'
+            }
+          ],
+          'parent' => {},
+          'type' => 'menu_entry'
+        },
+        {
+          'parent' => {},
+          'text' => '
+',
+          'type' => 'after_description_line'
+        },
+        {
+          'contents' => [
+            {
+              'cmdname' => 'detailmenu',
+              'contents' => [
+                {
+                  'parent' => {},
+                  'text' => '
+',
+                  'type' => 'empty_line_after_command'
+                },
+                {
+                  'args' => [
+                    {
+                      'parent' => {},
+                      'text' => '* ',
+                      'type' => 'menu_entry_leading_text'
+                    },
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => 'detailmenu'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'menu_entry_node'
+                    },
+                    {
+                      'parent' => {},
+                      'text' => '::',
+                      'type' => 'menu_entry_separator'
+                    },
+                    {
+                      'contents' => [
+                        {
+                          'parent' => {},
+                          'text' => '
+'
+                        }
+                      ],
+                      'parent' => {},
+                      'type' => 'menu_entry_description'
+                    }
+                  ],
+                  'parent' => {},
+                  'type' => 'menu_entry'
+                }
+              ],
+              'parent' => {}
+            }
+          ],
+          'parent' => {},
+          'type' => 'menu_comment'
+        }
+      ],
+      'parent' => {}
+    },
+    {
+      'parent' => {},
+      'text' => '
+',
+      'type' => 'empty_line_after_command'
+    }
+  ]
+};
+$result_trees{'detailmenu'}{'contents'}[0]{'parent'} = 
$result_trees{'detailmenu'};
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[0]{'parent'} = 
$result_trees{'detailmenu'}{'contents'}[1];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[1]{'parent'} = 
$result_trees{'detailmenu'}{'contents'}[1];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[2]{'args'}[0]{'parent'} 
= $result_trees{'detailmenu'}{'contents'}[1]{'contents'}[2];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[2]{'args'}[1]{'contents'}[0]{'parent'}
 = $result_trees{'detailmenu'}{'contents'}[1]{'contents'}[2]{'args'}[1];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[2]{'args'}[1]{'parent'} 
= $result_trees{'detailmenu'}{'contents'}[1]{'contents'}[2];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[2]{'args'}[2]{'parent'} 
= $result_trees{'detailmenu'}{'contents'}[1]{'contents'}[2];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[2]{'args'}[3]{'contents'}[0]{'parent'}
 = $result_trees{'detailmenu'}{'contents'}[1]{'contents'}[2]{'args'}[3];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[2]{'args'}[3]{'parent'} 
= $result_trees{'detailmenu'}{'contents'}[1]{'contents'}[2];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[2]{'parent'} = 
$result_trees{'detailmenu'}{'contents'}[1];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[3]{'parent'} = 
$result_trees{'detailmenu'}{'contents'}[1];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[0]{'parent'}
 = $result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[1]{'args'}[0]{'parent'}
 = 
$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[1];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[1]{'args'}[1]{'contents'}[0]{'parent'}
 = 
$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[1]{'args'}[1];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[1]{'args'}[1]{'parent'}
 = 
$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[1];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[1]{'args'}[2]{'parent'}
 = 
$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[1];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[1]{'args'}[3]{'contents'}[0]{'parent'}
 = 
$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[1]{'args'}[3];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[1]{'args'}[3]{'parent'}
 = 
$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[1];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'contents'}[1]{'parent'}
 = $result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'contents'}[0]{'parent'}
 = $result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4];
+$result_trees{'detailmenu'}{'contents'}[1]{'contents'}[4]{'parent'} = 
$result_trees{'detailmenu'}{'contents'}[1];
+$result_trees{'detailmenu'}{'contents'}[1]{'parent'} = 
$result_trees{'detailmenu'};
+$result_trees{'detailmenu'}{'contents'}[2]{'parent'} = 
$result_trees{'detailmenu'};
+
+$result_texts{'detailmenu'} = '
address@hidden
+
+* Copying Conditions::          Your rights.
+
address@hidden
+* detailmenu::
address@hidden address@hidden menu
+';
+
+$result_errors{'detailmenu'} = [];
+
+



reply via email to

[Prev in Thread] Current Thread [Next in Thread]