Compilation: don't compile dialogs separately.
[gnumeric.git] / test / t9006-ssconvert-split.pl
blob8f469559354cbb4592b46109032399d763598ccc
1 #!/usr/bin/perl -w
2 # -----------------------------------------------------------------------------
4 use strict;
5 use lib ($0 =~ m|^(.*/)| ? $1 : ".");
6 use GnumericTest;
7 use IO::File;
9 &message ("Check ssconvert split");
11 my $N = 3;
13 # -----------------------------------------------------------------------------
14 # Create reliable file to split
16 my @little_files;
17 for my $i (1 ... $N) {
18 my $fn = "t9006-file$i.csv";
19 &GnumericTest::junkfile ($fn);
20 push @little_files, $fn;
21 my $f = new IO::File ($fn, "w");
22 die "$0: Failed to write $fn: $!\n" unless $f;
23 print $f "File $i,$i,=$i+1\nLine 2,$i,=$i-1\n";
26 my $combined = "t9006-combined.gnumeric";
27 &GnumericTest::junkfile ($combined);
29 &test_command ("$ssconvert --merge-to=$combined " . join (" ", @little_files),
30 sub { 1 } );
32 &GnumericTest::removejunk ($_) foreach @little_files;
33 @little_files = ();
35 # -----------------------------------------------------------------------------
37 sub read_whole_file {
38 my ($fn) = @_;
39 my $f = new IO::File ($fn, "r");
40 die "$0: Failed to read $fn: $!\n" unless $f;
41 local $/ = undef;
42 my $data = <$f>;
43 return $data;
46 sub common_test {
47 my ($ext,$args,$post,$pexpected) = @_;
48 my $template = 't9006-out-%n.' . $ext;
50 &test_command ("$ssconvert --export-file-per-sheet $args $combined '$template'",
51 sub { 1 } );
53 for my $i (1 ... $N) {
54 my $fn = $template;
55 my $im1 = $i - 1;
56 $fn =~ s/\%n/$im1/;
58 my $expected = $pexpected->[$i - 1];
59 my $data = &read_whole_file ($fn);
61 if (defined $post) {
62 local $_ = $data;
63 &$post ();
64 $data = $_;
67 if ($data ne $expected) {
68 print STDERR "Difference for format $ext, sheet number $i\n";
69 print STDERR "Observed:\n";
70 &GnumericTest::dump_indented ($data);
71 print STDERR "Expected:\n";
72 &GnumericTest::dump_indented ($expected);
73 die "Fail\n";
76 unlink $fn;
80 # -----------------------------------------------------------------------------
82 if (&subtest ("txt")) {
83 &message ("Check splitting info text files.");
85 for my $sep (",", "::") {
86 my @expected;
87 for my $i (1 ... $N) {
88 my $ip1 = $i + 1;
89 my $im1 = $i - 1;
90 push @expected, "\"File $i\"$sep$i$sep$ip1\n\"Line 2\"$sep$i$sep$im1\n";
93 &common_test ('txt', "-O 'separator=$sep'", undef, \@expected);
97 if (&subtest ("csv")) {
98 &message ("Check splitting info csv files.");
100 my @expected;
101 for my $i (1 ... $N) {
102 my $ip1 = $i + 1;
103 my $im1 = $i - 1;
104 push @expected, "\"File $i\",$i,$ip1\n\"Line 2\",$i,$im1\n";
107 &common_test ('csv', '', undef, \@expected);
110 if (&subtest ("tex")) {
111 &message ("Check splitting info latex files.");
113 my @expected;
114 for my $i (1 ... $N) {
115 my $ip1 = $i + 1;
116 my $im1 = $i - 1;
117 push @expected, "File $i\t&$i\t&$ip1\\\\\nLine 2\t&$i\t&$im1\\\\\n";
120 &common_test ('tex', '-T Gnumeric_html:latex_table',
121 sub { s/(\%.*$)\n//mg; },
122 \@expected);
125 if (&subtest ("pdf")) {
126 &message ("Check splitting info pdf files.");
128 # We check only that the files are generated
129 my @expected = ('') x $N;
130 &common_test ('pdf', '', sub { $_ = ''; }, \@expected);