Server IP : 103.119.228.120 / Your IP : 18.220.242.160 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/doc/postgresql-9.2.24/html/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Variant Comparison Files</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.2.24 Documentation" HREF="index.html"><LINK REL="UP" TITLE="Regression Tests" HREF="regress.html"><LINK REL="PREVIOUS" TITLE="Test Evaluation" HREF="regress-evaluation.html"><LINK REL="NEXT" TITLE="Test Coverage Examination" HREF="regress-coverage.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2017-11-06T22:43:11"></HEAD ><BODY CLASS="SECT1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.2.24 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="Test Evaluation" HREF="regress-evaluation.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="regress.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" >Chapter 30. Regression Tests</TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="Test Coverage Examination" HREF="regress-coverage.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="REGRESS-VARIANT" >30.3. Variant Comparison Files</A ></H1 ><P > Since some of the tests inherently produce environment-dependent results, we have provided ways to specify alternate <SPAN CLASS="QUOTE" >"expected"</SPAN > result files. Each regression test can have several comparison files showing possible results on different platforms. There are two independent mechanisms for determining which comparison file is used for each test. </P ><P > The first mechanism allows comparison files to be selected for specific platforms. There is a mapping file, <TT CLASS="FILENAME" >src/test/regress/resultmap</TT >, that defines which comparison file to use for each platform. To eliminate bogus test <SPAN CLASS="QUOTE" >"failures"</SPAN > for a particular platform, you first choose or make a variant result file, and then add a line to the <TT CLASS="FILENAME" >resultmap</TT > file. </P ><P > Each line in the mapping file is of the form </P><PRE CLASS="SYNOPSIS" >testname:output:platformpattern=comparisonfilename</PRE ><P> The test name is just the name of the particular regression test module. The output value indicates which output file to check. For the standard regression tests, this is always <TT CLASS="LITERAL" >out</TT >. The value corresponds to the file extension of the output file. The platform pattern is a pattern in the style of the Unix tool <TT CLASS="COMMAND" >expr</TT > (that is, a regular expression with an implicit <TT CLASS="LITERAL" >^</TT > anchor at the start). It is matched against the platform name as printed by <TT CLASS="COMMAND" >config.guess</TT >. The comparison file name is the base name of the substitute result comparison file. </P ><P > For example: some systems interpret very small floating-point values as zero, rather than reporting an underflow error. This causes a few differences in the <TT CLASS="FILENAME" >float8</TT > regression test. Therefore, we provide a variant comparison file, <TT CLASS="FILENAME" >float8-small-is-zero.out</TT >, which includes the results to be expected on these systems. To silence the bogus <SPAN CLASS="QUOTE" >"failure"</SPAN > message on <SPAN CLASS="SYSTEMITEM" >OpenBSD</SPAN > platforms, <TT CLASS="FILENAME" >resultmap</TT > includes: </P><PRE CLASS="PROGRAMLISTING" >float8:out:i.86-.*-openbsd=float8-small-is-zero.out</PRE ><P> which will trigger on any machine where the output of <TT CLASS="COMMAND" >config.guess</TT > matches <TT CLASS="LITERAL" >i.86-.*-openbsd</TT >. Other lines in <TT CLASS="FILENAME" >resultmap</TT > select the variant comparison file for other platforms where it's appropriate. </P ><P > The second selection mechanism for variant comparison files is much more automatic: it simply uses the <SPAN CLASS="QUOTE" >"best match"</SPAN > among several supplied comparison files. The regression test driver script considers both the standard comparison file for a test, <TT CLASS="LITERAL" ><TT CLASS="REPLACEABLE" ><I >testname</I ></TT >.out</TT >, and variant files named <TT CLASS="LITERAL" ><TT CLASS="REPLACEABLE" ><I >testname</I ></TT >_<TT CLASS="REPLACEABLE" ><I >digit</I ></TT >.out</TT > (where the <TT CLASS="REPLACEABLE" ><I >digit</I ></TT > is any single digit <TT CLASS="LITERAL" >0</TT >-<TT CLASS="LITERAL" >9</TT >). If any such file is an exact match, the test is considered to pass; otherwise, the one that generates the shortest diff is used to create the failure report. (If <TT CLASS="FILENAME" >resultmap</TT > includes an entry for the particular test, then the base <TT CLASS="REPLACEABLE" ><I >testname</I ></TT > is the substitute name given in <TT CLASS="FILENAME" >resultmap</TT >.) </P ><P > For example, for the <TT CLASS="LITERAL" >char</TT > test, the comparison file <TT CLASS="FILENAME" >char.out</TT > contains results that are expected in the <TT CLASS="LITERAL" >C</TT > and <TT CLASS="LITERAL" >POSIX</TT > locales, while the file <TT CLASS="FILENAME" >char_1.out</TT > contains results sorted as they appear in many other locales. </P ><P > The best-match mechanism was devised to cope with locale-dependent results, but it can be used in any situation where the test results cannot be predicted easily from the platform name alone. A limitation of this mechanism is that the test driver cannot tell which variant is actually <SPAN CLASS="QUOTE" >"correct"</SPAN > for the current environment; it will just pick the variant that seems to work best. Therefore it is safest to use this mechanism only for variant results that you are willing to consider equally valid in all contexts. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="regress-evaluation.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="regress-coverage.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Test Evaluation</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="regress.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Test Coverage Examination</TD ></TR ></TABLE ></DIV ></BODY ></HTML >