[gnumeric] tests: add ability to filter things away before roundtrip conversion.
- From: Morten Welinder <mortenw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] tests: add ability to filter things away before roundtrip conversion.
- Date: Mon, 9 Feb 2015 20:06:46 +0000 (UTC)
commit 7e92387bab53dcba8f25205b859eb0d4548968a3
Author: Morten Welinder <terra gnome org>
Date: Mon Feb 9 15:06:02 2015 -0500
tests: add ability to filter things away before roundtrip conversion.
test/GnumericTest.pm | 30 +++++++++++++++++++++++-------
test/t6518-objects.pl | 2 ++
2 files changed, 25 insertions(+), 7 deletions(-)
---
diff --git a/test/GnumericTest.pm b/test/GnumericTest.pm
index 9fb1f4b..0b17705 100644
--- a/test/GnumericTest.pm
+++ b/test/GnumericTest.pm
@@ -425,16 +425,18 @@ my $no_rich_comment_filter = "$PERL -p -e 'if (/gnm:CellComment/) { s{ TextForma
# Excel cannot have superscript and subscript at the same time
my $supersub_filter = "$PERL -p -e
's{\\[superscript=1:(\\d+):(\\d+)\\]\\[subscript=1:(\\d+):\\2\\]}{[superscript=1:\$1:\$3][subscript=1:\$3:\$2]};'";
+my $noframe_filter = "$PERL -p -e '\$_ = \"\" if m{<gnm:SheetWidgetFrame .*/>}'";
sub normalize_filter {
my ($f) = @_;
return 'cat' unless defined $f;
- $f =~ s/std:drop_codepage/$drop_codepage_filter/;
- $f =~ s/std:drop_generator/$drop_generator_filter/;
- $f =~ s/std:no_author/$no_author_filter/;
- $f =~ s/std:no_rich_comment/$no_rich_comment_filter/;
- $f =~ s/std:supersub/$supersub_filter/;
+ $f =~ s/\bstd:drop_codepage\b/$drop_codepage_filter/;
+ $f =~ s/\bstd:drop_generator\b/$drop_generator_filter/;
+ $f =~ s/\bstd:no_author\b/$no_author_filter/;
+ $f =~ s/\bstd:no_rich_comment\b/$no_rich_comment_filter/;
+ $f =~ s/\bstd:supersub\b/$supersub_filter/;
+ $f =~ s/\bstd:noframewidget\b/$noframe_filter/;
return $f;
}
@@ -451,6 +453,7 @@ sub test_roundtrip {
my $resize = $named_args{'resize'};
my $ignore_failure = $named_args{'ignore_failure'};
+ my $filter0 = &normalize_filter ($named_args{'filter0'});
my $filter1 = &normalize_filter ($named_args{'filter1'} ||
$named_args{'filter'});
my $filter2 = &normalize_filter ($named_args{'filter2'} ||
@@ -474,12 +477,25 @@ sub test_roundtrip {
die "Failed to produce $file_resized\n" unless -r $file_resized;
&junkfile ($file_resized) unless $keep;
}
+
+ my $file_filtered = $file_resized;
+ if ($filter0) {
+ $file_filtered =~ s{^.*/}{};
+ $file_filtered =~ s/(\.gnumeric)$/-filter$1/;
+ unlink $file_filtered;
+ my $cmd = "zcat " . "earg ($file_resized) . " | $filter0 >" . "earg ($file_filtered);
+ print STDERR "# $cmd\n" if $verbose;
+ $code = system ("($cmd) 2>&1 | sed -e 's/^/| /'");
+ &system_failure ($ssconvert, $code) if $code;
+ die "Failed to produce $file_filtered\n" unless -r $file_filtered;
+ &junkfile ($file_filtered) unless $keep;
+ }
my $tmp1 = "$tmp.$newext";
unlink $tmp1;
&junkfile ($tmp1) unless $keep;
{
- my $cmd = "earg ($ssconvert, "-T", $format, $file_resized, $tmp1);
+ my $cmd = "earg ($ssconvert, "-T", $format, $file_filtered, $tmp1);
print "# $cmd\n" if $verbose;
my $code = system ("$cmd 2>&1 | sed -e 's/^/| /'");
&system_failure ($ssconvert, $code) if $code;
@@ -500,7 +516,7 @@ sub test_roundtrip {
my $tmp_xml = "$tmp.xml";
unlink $tmp_xml;
&junkfile ($tmp_xml) unless $keep;
- $code = system ("zcat -f '$file_resized' | $normalize_gnumeric | $filter1 >'$tmp_xml'");
+ $code = system ("zcat -f '$file_filtered' | $normalize_gnumeric | $filter1 >'$tmp_xml'");
&system_failure ('zcat', $code) if $code;
my $tmp2_xml = "$tmp-new.xml";
diff --git a/test/t6518-objects.pl b/test/t6518-objects.pl
index bb40f86..63b4218 100755
--- a/test/t6518-objects.pl
+++ b/test/t6518-objects.pl
@@ -40,6 +40,7 @@ if (&subtest ("biff8")) {
&test_roundtrip ($file,
'format' => 'Gnumeric_Excel:excel_biff8',
'ext' => "xls",
+ 'filter0' => 'std:noframewidget',
'filter2' => 'std:drop_codepage',
'ignore_failure' => 1);
}
@@ -49,6 +50,7 @@ if (&subtest ("xlsx")) {
&test_roundtrip ($file,
'format' => 'Gnumeric_Excel:xlsx',
'ext' => "xlsx",
+ 'filter0' => 'std:noframewidget',
'resize' => '1048576x16384',
'ignore_failure' => 1);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]