Обсуждение: question regarding regression tests
Folks, Could someone please provide information about how to create a correct regression test? Regards, Gevik.
Gevik Babakhani wrote: > Folks, > > Could someone please provide information about how to create a correct > regression test? Some information you can find on the PGXS docs: <para> The scripts listed in the <varname>REGRESS</> variable are used for regression testing of your module, justlike <literal>make installcheck</literal> is used for the main <productname>PostgreSQL</productname> server. Forthis to work you need to have a subdirectory named <literal>sql/</literal> in your extension's directory, within whichyou put one file for each group of tests you want to run. The files should have extension <literal>.sql</literal>,which should not be included in the <varname>REGRESS</varname> list in the makefile. For eachtest there should be a file containing the expected result in a subdirectory named <literal>expected/</literal>, withextension <literal>.out</literal>. The tests are run by executing <literal>make installcheck</literal>, and theresulting output will be compared to the expected files. The differences will be written to the file <literal>regression.diffs</literal>in <command>diff -c</command> format. Note that trying to run a test which is missingthe expected file will be reported as <quote>trouble</quote>, so make sure you have all expected files. </para> Note that not all of this applies to the backend regression tests, but it should help. For the backend, you list the tests in the serial_schedule and parallel_schedule files. -- Alvaro Herrera http://www.CommandPrompt.com/ The PostgreSQL Company - Command Prompt, Inc.
Thank you. On Fri, 2006-09-15 at 17:41 -0400, Alvaro Herrera wrote: > Gevik Babakhani wrote: > > Folks, > > > > Could someone please provide information about how to create a correct > > regression test? > > Some information you can find on the PGXS docs: > > <para> > The scripts listed in the <varname>REGRESS</> variable are used for > regression testing of your module, just like <literal>make > installcheck</literal> is used for the main > <productname>PostgreSQL</productname> server. For this to work you need > to have a subdirectory named <literal>sql/</literal> in your extension's > directory, within which you put one file for each group of tests you want > to run. The files should have extension <literal>.sql</literal>, which > should not be included in the <varname>REGRESS</varname> list in the > makefile. For each test there should be a file containing the expected > result in a subdirectory named <literal>expected/</literal>, with extension > <literal>.out</literal>. The tests are run by executing <literal>make > installcheck</literal>, and the resulting output will be compared to the > expected files. The differences will be written to the file > <literal>regression.diffs</literal> in <command>diff -c</command> format. > Note that trying to run a test which is missing the expected file will be > reported as <quote>trouble</quote>, so make sure you have all expected > files. > </para> > > Note that not all of this applies to the backend regression tests, but > it should help. For the backend, you list the tests in the > serial_schedule and parallel_schedule files. >