diff options
author | Max Kanat-Alexander <mkanat@bugzilla.org> | 2010-07-09 04:49:22 +0200 |
---|---|---|
committer | Max Kanat-Alexander <mkanat@bugzilla.org> | 2010-07-09 04:49:22 +0200 |
commit | ad1ed3e219a38836ce14f8a289f9d59807457bc8 (patch) | |
tree | de3a47544a3a8d3cd6c58be10ff825ceecab3571 /xt/lib/Bugzilla/Test | |
parent | ab9511d8739d3eb6bb729f269750cc8cbcfb0535 (diff) | |
download | bugzilla-ad1ed3e219a38836ce14f8a289f9d59807457bc8.tar.gz bugzilla-ad1ed3e219a38836ce14f8a289f9d59807457bc8.tar.xz |
Bug 577538: Mark certain tests in xt/search.t as being broken only on Pg
(and a few as being not broken at all on Pg).
r=mkanat, a=mkanat (module owner)
Diffstat (limited to 'xt/lib/Bugzilla/Test')
-rw-r--r-- | xt/lib/Bugzilla/Test/Search/Constants.pm | 24 | ||||
-rw-r--r-- | xt/lib/Bugzilla/Test/Search/FieldTest.pm | 9 |
2 files changed, 32 insertions, 1 deletions
diff --git a/xt/lib/Bugzilla/Test/Search/Constants.pm b/xt/lib/Bugzilla/Test/Search/Constants.pm index 28f0a3f93..c9d2ef088 100644 --- a/xt/lib/Bugzilla/Test/Search/Constants.pm +++ b/xt/lib/Bugzilla/Test/Search/Constants.pm @@ -45,6 +45,7 @@ our @EXPORT = qw( NUM_SEARCH_TESTS OR_BROKEN OR_SKIP + PG_BROKEN SKIP_FIELDS SUBSTR_SIZE TESTS @@ -482,6 +483,29 @@ use constant KNOWN_BROKEN => { }, }; +# This tracks things that are broken in different ways on Pg compared to +# MySQL. Actually, in some of these cases, Pg is behaving correctly +# where MySQL isn't, but the result is still a bit surprising to the user. +use constant PG_BROKEN => { + 'attach_data.thedata' => { + allwords => { }, + allwordssubstr => { }, + anywords => { }, + notregexp => { contains => [5] }, + nowords => { contains => [5] }, + }, + percentage_complete => { + 'allwordssubstr-<1>' => { contains => [3] }, + anywordssubstr => { contains => [2,3] }, + casesubstring => { contains => [3] }, + 'notregexp-<1>' => { contains => [3] }, + notsubstring => { contains => [3] }, + nowordssubstr => { contains => [3] }, + 'regexp-<1>' => { contains => [3] }, + substring => { contains => [3] }, + }, +}; + ############# # Overrides # ############# diff --git a/xt/lib/Bugzilla/Test/Search/FieldTest.pm b/xt/lib/Bugzilla/Test/Search/FieldTest.pm index b0307dec4..7ebf760d1 100644 --- a/xt/lib/Bugzilla/Test/Search/FieldTest.pm +++ b/xt/lib/Bugzilla/Test/Search/FieldTest.pm @@ -184,8 +184,15 @@ sub _known_broken { my $type = $self->field_object->type; my $operator = $self->operator; my $value = $self->main_value; - my $value_name = "$operator-$value"; + + if (Bugzilla->dbh->isa('Bugzilla::DB::Pg')) { + my $field_broken = PG_BROKEN->{$field}->{$operator}; + return $field_broken if $field_broken; + my $pg_value_broken = PG_BROKEN->{$field}->{$value_name}; + return $pg_value_broken if $pg_value_broken; + } + my $value_broken = KNOWN_BROKEN->{$value_name}->{$field}; $value_broken ||= KNOWN_BROKEN->{$value_name}->{$type}; return $value_broken if $value_broken; |