Re: Test code is worth the space - Mailing list pgsql-hackers

From Petr Jelinek
Subject Re: Test code is worth the space
Date
Msg-id 55CF0A4B.9020808@2ndquadrant.com
Whole thread Raw
In response to Re: Test code is worth the space  (Jim Nasby <Jim.Nasby@BlueTreble.com>)
Responses Re: Test code is worth the space  (Jim Nasby <Jim.Nasby@BlueTreble.com>)
List pgsql-hackers
On 2015-08-15 03:35, Jim Nasby wrote:
>
> I setup a simple example of this with 64 variations of TAP tests, BLKSZ
> and WAL blocksize. Unfortunately to make this work you have to commit a
> .travis.yml file to your fork.
>
> build: https://travis-ci.org/decibel/postgres/builds/75692344
> .travis.yml: https://github.com/decibel/postgres/blob/master/.travis.yml
>
> Looks like we might have some problems with BLKSZ != 8...

I went through several of those and ISTM that most test failures are to 
be expected:
a) order of resulting rows is different for some of the joins
b) planner behaves differently because of different number of pages
c) tablesample returns different results because it uses ctids as random 
source
d) toaster behaves differently because of different threshold which is 
calculated from BLKSZ
e) max size of btree value is exceeded with BLKSZ = 4 in the test that 
tries to create deep enough btree

We could fix a) by adding ORDER BY to those queries but I don't see how 
to fix the rest easily or at all without sacrificing some test coverage.

However I see one real error in the BLKSZ = 4 tests - two of the merge 
join queries in equivclass die with "ERROR:  could not find commutator 
for operator" ( example build output 
https://travis-ci.org/decibel/postgres/jobs/75692377 ). I didn't yet 
investigate what's causing this.


--  Petr Jelinek                  http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training &
Services



pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: why can the isolation tester handle only one waiting process?
Next
From: David Rowley
Date:
Subject: Small improvement to get_base_rel_indexes()