Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > media > contrib-backports > by-pkgid > 23de0e949a34266d600441ec63375ce7 > files > 7

api-sanity-checker-1.12.9-3mdv2010.2.noarch.rpm


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" dir="ltr">
<head>
<title>API Sanity Checker</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="generator" content="MediaWiki 1.16.0" />
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch_desc.php" title="ISP_RAS (en)" />
<link rel="alternate" type="application/atom+xml" title="ISP_RAS Atom feed" href="/index.php?title=Special:RecentChanges&amp;feed=atom" />
<link rel="stylesheet" href="/skins/common/shared.css?270" media="screen" />
<link rel="stylesheet" href="/skins/common/commonPrint.css?270" media="print" />
<link rel="stylesheet" href="/skins/monobook/main.css?270" media="screen" />
<!--[if lt IE 5.5000]><link rel="stylesheet" href="/skins/monobook/IE50Fixes.css?270" media="screen" /><![endif]-->
<!--[if IE 5.5000]><link rel="stylesheet" href="/skins/monobook/IE55Fixes.css?270" media="screen" /><![endif]-->
<!--[if IE 6]><link rel="stylesheet" href="/skins/monobook/IE60Fixes.css?270" media="screen" /><![endif]-->
<!--[if IE 7]><link rel="stylesheet" href="/skins/monobook/IE70Fixes.css?270" media="screen" /><![endif]-->
<link rel="stylesheet" href="/index.php?title=MediaWiki:Common.css&amp;usemsgcache=yes&amp;ctype=text%2Fcss&amp;smaxage=18000&amp;action=raw&amp;maxage=18000" />
<link rel="stylesheet" href="/index.php?title=MediaWiki:Print.css&amp;usemsgcache=yes&amp;ctype=text%2Fcss&amp;smaxage=18000&amp;action=raw&amp;maxage=18000" media="print" />
<link rel="stylesheet" href="/index.php?title=MediaWiki:Monobook.css&amp;usemsgcache=yes&amp;ctype=text%2Fcss&amp;smaxage=18000&amp;action=raw&amp;maxage=18000" />
<link rel="stylesheet" href="/index.php?title=-&amp;action=raw&amp;maxage=18000&amp;gen=css" />
<script>
var skin="monobook",
stylepath="/skins",
wgUrlProtocols="http\\:\\/\\/|https\\:\\/\\/|ftp\\:\\/\\/|irc\\:\\/\\/|gopher\\:\\/\\/|telnet\\:\\/\\/|nntp\\:\\/\\/|worldwind\\:\\/\\/|mailto\\:|news\\:|svn\\:\\/\\/",
wgArticlePath="/index.php/$1",
wgScriptPath="",
wgScriptExtension=".php",
wgScript="/index.php",
wgVariantArticlePath=false,
wgActionPaths={},
wgServer="http://ispras.linuxfoundation.org",
wgCanonicalNamespace="",
wgCanonicalSpecialPageName=false,
wgNamespaceNumber=0,
wgPageName="API_Sanity_Autotest",
wgTitle="API Sanity Autotest",
wgAction="view",
wgArticleId=2411,
wgIsArticle=true,
wgUserName=null,
wgUserGroups=null,
wgUserLanguage="en",
wgContentLanguage="en",
wgBreakFrames=false,
wgCurRevisionId=7125,
wgVersion="1.16.0",
wgEnableAPI=true,
wgEnableWriteAPI=true,
wgSeparatorTransformTable=["", ""],
wgDigitTransformTable=["", ""],
wgMainPageTitle="Main Page",
wgFormattedNamespaces={"-2": "Media", "-1": "Special", "0": "", "1": "Talk", "2": "User", "3": "User talk", "4": "ISP RAS", "5": "ISP RAS talk", "6": "File", "7": "File talk", "8": "MediaWiki", "9": "MediaWiki talk", "10": "Template", "11": "Template talk", "12": "Help", "13": "Help talk", "14": "Category", "15": "Category talk"},
wgNamespaceIds={"media": -2, "special": -1, "": 0, "talk": 1, "user": 2, "user_talk": 3, "isp_ras": 4, "isp_ras_talk": 5, "file": 6, "file_talk": 7, "mediawiki": 8, "mediawiki_talk": 9, "template": 10, "template_talk": 11, "help": 12, "help_talk": 13, "category": 14, "category_talk": 15, "image": 6, "image_talk": 7},
wgSiteName="ISP_RAS",
wgCategories=["API Sanity Autotest"],
wgRestrictionEdit=[],
wgRestrictionMove=[];
</script><script src="/skins/common/wikibits.js?270"></script>
<script src="/skins/common/ajax.js?270"></script>
<script src="/index.php?title=-&amp;action=raw&amp;gen=js&amp;useskin=monobook&amp;270"></script>

</head>
<body class="mediawiki ltr ns-0 ns-subject page-API_Sanity_Autotest skin-monobook">
<div id="globalWrapper">
<div id="column-content"><div id="content" >
	<a id="top"></a>
	
	<h1 id="firstHeading" class="firstHeading">API Sanity Checker</h1>
	<div id="bodyContent">
		
		<div id="contentSub"></div>
		
		<!-- start content -->
<p><i>API Sanity Checker (ASC)</i> is an automatic generator of basic unit tests for shared C/C++ libraries. It is able to generate reasonable (in most, but unfortunately not all, cases) input data for parameters and compose simple ("sanity" or "shallow"-quality) test cases for every function in the API through the analysis of declarations in header files. The quality of generated tests allows to check absence of critical errors in simple use cases. The tool is able to build and execute generated tests and detect crashes (segfaults), aborts, all kinds of emitted signals, non-zero program return code and program hanging. It may be considered as a tool for out-of-the-box low-cost sanity checking (fuzzing) of the library API or as a test development framework for initial generation of templates for advanced tests. Also it supports universal <a href="http://sourceforge.net/projects/template2code/" class="external text" rel="nofollow">T2C</a> format of tests, random test generation mode, specialized data types and other useful features.
</p><p>&nbsp;&nbsp;See also: <a href="http://linuxtesting.org/upstream-tracker/" class="external text" rel="nofollow">Upstream Tracker</a> for C/C++ libraries.
</p><p>&nbsp;&nbsp;<b>We are looking for sponsorship to continue development of this tool. Please send your proposals to <a href="mailto:api-sanity-autotest@linuxtesting.org" class="external text" rel="nofollow">api-sanity-autotest@linuxtesting.org</a>.</b>
</p>
<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Downloads"><span class="tocnumber">1</span> <span class="toctext">Downloads</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#License"><span class="tocnumber">2</span> <span class="toctext">License</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="#Supported_Platforms"><span class="tocnumber">3</span> <span class="toctext">Supported Platforms</span></a></li>
<li class="toclevel-1 tocsection-4"><a href="#System_Requirements"><span class="tocnumber">4</span> <span class="toctext">System Requirements</span></a></li>
<li class="toclevel-1 tocsection-5"><a href="#Examples_of_Generated_Tests"><span class="tocnumber">5</span> <span class="toctext">Examples of Generated Tests</span></a></li>
<li class="toclevel-1 tocsection-6"><a href="#Detectable_Problems"><span class="tocnumber">6</span> <span class="toctext">Detectable Problems</span></a></li>
<li class="toclevel-1 tocsection-7"><a href="#Usage"><span class="tocnumber">7</span> <span class="toctext">Usage</span></a>
<ul>
<li class="toclevel-2 tocsection-8"><a href="#Generating_Tests"><span class="tocnumber">7.1</span> <span class="toctext">Generating Tests</span></a></li>
<li class="toclevel-2 tocsection-9"><a href="#Viewing_Tests"><span class="tocnumber">7.2</span> <span class="toctext">Viewing Tests</span></a></li>
<li class="toclevel-2 tocsection-10"><a href="#Building_Tests"><span class="tocnumber">7.3</span> <span class="toctext">Building Tests</span></a></li>
<li class="toclevel-2 tocsection-11"><a href="#Running_Tests"><span class="tocnumber">7.4</span> <span class="toctext">Running Tests</span></a></li>
<li class="toclevel-2 tocsection-12"><a href="#Improving_Tests"><span class="tocnumber">7.5</span> <span class="toctext">Improving Tests</span></a></li>
<li class="toclevel-2 tocsection-13"><a href="#Command-Line_Options"><span class="tocnumber">7.6</span> <span class="toctext">Command-Line Options</span></a></li>
<li class="toclevel-2 tocsection-14"><a href="#Examples"><span class="tocnumber">7.7</span> <span class="toctext">Examples</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-15"><a href="#Similar_Tools"><span class="tocnumber">8</span> <span class="toctext">Similar Tools</span></a></li>
<li class="toclevel-1 tocsection-16"><a href="#How_the_Tool_Works"><span class="tocnumber">9</span> <span class="toctext">How the Tool Works</span></a></li>
<li class="toclevel-1 tocsection-17"><a href="#Bugs"><span class="tocnumber">10</span> <span class="toctext">Bugs</span></a></li>
<li class="toclevel-1 tocsection-18"><a href="#Applications"><span class="tocnumber">11</span> <span class="toctext">Applications</span></a></li>
<li class="toclevel-1 tocsection-19"><a href="#Future_Plans"><span class="tocnumber">12</span> <span class="toctext">Future Plans</span></a></li>
<li class="toclevel-1 tocsection-20"><a href="#Maintainers"><span class="tocnumber">13</span> <span class="toctext">Maintainers</span></a></li>
<li class="toclevel-1 tocsection-21"><a href="#Credits"><span class="tocnumber">14</span> <span class="toctext">Credits</span></a></li>
<li class="toclevel-1 tocsection-22"><a href="#Articles"><span class="tocnumber">15</span> <span class="toctext">Articles</span></a></li>
</ul>
</td></tr></table><script>if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
<h2> <span class="mw-headline" id="Downloads"> Downloads </span></h2>
<p>The latest release can be downloaded from <b><a href="http://ispras.linuxfoundation.org/index.php/API_Sanity_Autotest_Downloads" title="API Sanity Autotest Downloads">this page</a></b>.
</p>
<h2> <span class="mw-headline" id="License"> License </span></h2>
<p>This program is free software. You may use, redistribute and/or modify it under the terms of either the GNU <a href="http://www.gnu.org/licenses/" class="external text" rel="nofollow">GPL</a> or <a href="http://www.gnu.org/licenses/" class="external text" rel="nofollow">LGPL</a>.
</p>
<h2> <span class="mw-headline" id="Supported_Platforms"> Supported Platforms </span></h2>
<p>GNU/Linux, FreeBSD, Haiku (BeOS), Mac OS X, MS Windows (Xp, Vista, 7).
</p>
<h2> <span class="mw-headline" id="System_Requirements"> System Requirements </span></h2>
<ul><li><b>Linux</b>:
<ul><li> <a href="http://gcc.gnu.org/" class="external text" rel="nofollow">GCC</a> (3.0-4.5.2, recommended 4.0 or newer)
</li><li> <a href="http://www.gnu.org/software/binutils/" class="external text" rel="nofollow">binutils</a> (c++filt, readelf, objdump)
</li><li> <a href="http://www.perl.org/" class="external text" rel="nofollow">Perl</a> (base)
</li></ul>
</li></ul>
<p>WARNING: if you are using ccache program (i.e. gcc points to /usr/lib/ccache/gcc) then it should be newer than 3.1.2 or disabled.
</p>
<ul><li><b>MS Windows</b>:
<ul><li> <a href="http://www.mingw.org/" class="external text" rel="nofollow">MinGW</a> (gcc.exe, c++filt.exe)
</li><li> <a href="http://www.activestate.com/activeperl" class="external text" rel="nofollow">Active Perl</a>
</li><li> MS Visual C++ (dumpbin.exe, undname.exe, cl.exe)
</li><li> add gcc.exe path (C:\MinGW\bin\) to your system PATH variable
</li><li> run vsvars32.bat script (C:\Microsoft Visual Studio 9.0\Common7\Tools\)
</li></ul>
</li></ul>
<ul><li><b>Mac OS X</b>:
<ul><li> <a href="http://developer.apple.com/technologies/tools/xcode.html" class="external text" rel="nofollow">Xcode</a> (gcc, c++filt, otool)
</li></ul>
</li></ul>
<h2> <span class="mw-headline" id="Examples_of_Generated_Tests"> Examples of Generated Tests </span></h2>
<table class="wikitable">
<tr>
<th> Library
</th><th> Version
</th><th> Number of Tests
</th><th> Problems Found
</th></tr>
<tr align="left">
<td> freetype2
</td><td> 2.3.11
</td><td> <a href="http://linuxtesting.org/upstream-tracker/tests/freetype2/2.3.11/view_tests.html" class="external text" rel="nofollow">178</a>
</td><td> <a href="http://linuxtesting.org/upstream-tracker/test_results/freetype2/2.3.11/test_results.html" class="external text" rel="nofollow">13</a>
</td></tr>
<tr align="left">
<td> glibc
</td><td> 2.13
</td><td> <a href="http://linuxtesting.org/upstream-tracker/tests/glibc/2.13/view_tests.html" class="external text" rel="nofollow">1996</a>
</td><td> <a href="http://linuxtesting.org/upstream-tracker/test_results/glibc/2.13/test_results.html" class="external text" rel="nofollow">340</a>
</td></tr>
<tr align="left">
<td> ALSA
</td><td> 1.0.23
</td><td> <a href="http://linuxtesting.org/upstream-tracker/tests/alsa/1.0.23/view_tests.html" class="external text" rel="nofollow">1292</a>
</td><td> <a href="http://linuxtesting.org/upstream-tracker/test_results/alsa/1.0.23/test_results.html" class="external text" rel="nofollow">48</a>
</td></tr>
<tr align="left">
<td> libxml2
</td><td> 2.7.6
</td><td> <a href="http://linuxtesting.org/upstream-tracker/tests/libxml2/2.7.6/view_tests.html" class="external text" rel="nofollow">1633</a>
</td><td> <a href="http://linuxtesting.org/upstream-tracker/test_results/libxml2/2.7.6/test_results.html" class="external text" rel="nofollow">56</a>
</td></tr>
<tr align="left">
<td> libssh
</td><td> 0.4.0
</td><td> <a href="http://linuxtesting.org/upstream-tracker/tests/libssh/0.4.0/view_tests.html" class="external text" rel="nofollow">224</a>
</td><td> <a href="http://linuxtesting.org/upstream-tracker/test_results/libssh/0.4.0/test_results.html" class="external text" rel="nofollow">83</a>
</td></tr>
<tr align="left">
<td> libQtCore
</td><td> 4.6.0
</td><td> <a href="http://linuxtesting.org/api-sanity-autotest/tests/libQtCore/4.6.0/view_tests.html" class="external text" rel="nofollow">2936</a>
</td><td> <a href="http://linuxtesting.org/api-sanity-autotest/test_results/libQtCore/4.6.0/test_results.html" class="external text" rel="nofollow">17</a>
</td></tr>
<tr align="left">
<td> libX11
</td><td> 1.3.4
</td><td> <a href="http://linuxtesting.org/upstream-tracker/tests/libX11/1.3.4/view_tests.html" class="external text" rel="nofollow">778</a>
</td><td> <a href="http://linuxtesting.org/upstream-tracker/test_results/libX11/1.3.4/test_results.html" class="external text" rel="nofollow">286</a>
</td></tr></table>
<h2> <span class="mw-headline" id="Detectable_Problems"> Detectable Problems </span></h2>
<ul><li> Crash (segfault, signal SEGV)
</li><li> Abort (signal ABRT)
</li><li> All emitted signals: FPE, BUS, ILL and others
</li><li> Non-zero exit code
</li><li> Program hanging
</li><li> Requirement failure (if specified)
</li></ul>
<h2> <span class="mw-headline" id="Usage"> Usage </span></h2>
<p>For generating, building and running tests you should provide the <b><a href="http://ispras.linuxfoundation.org/index.php/Library_Descriptor" title="Library Descriptor">XML descriptor</a></b> for your library version. It is a simple XML-file that specifies version number, paths to header files and shared libraries and optionally some other information. An example of the descriptor is the following (0.3.4.xml):
</p>
<pre><span style="color:Green;">&lt;version&gt;</span>
    0.3.4
<span style="color:Green;">&lt;/version&gt;</span>

<span style="color:Green;">&lt;headers&gt;</span>
    /usr/local/libssh/0.3.4/include/
<span style="color:Green;">&lt;/headers&gt;</span>

<span style="color:Green;">&lt;libs&gt;</span>
    /usr/local/libssh/0.3.4/lib/
<span style="color:Green;">&lt;/libs&gt;</span>
</pre>
<h3> <span class="mw-headline" id="Generating_Tests"> Generating Tests </span></h3>
<p>Command for generating a test suite:<br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;perl api-sanity-checker.pl -l <i>&lt;library_name&gt;</i> -d <i>&lt;<a href="http://ispras.linuxfoundation.org/index.php/Library_Descriptor" title="Library Descriptor">version.xml</a>&gt;</i> -gen&nbsp;</code>
</p>
<h3> <span class="mw-headline" id="Viewing_Tests"> Viewing Tests </span></h3>
<p>You can view generated tests using the index file:<br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;tests/<i>&lt;library_name&gt;</i>/<i>&lt;version&gt;</i>/view_tests.html&nbsp;</code><br />
or manually in the directory:<br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;tests/<i>&lt;library_name&gt;</i>/<i>&lt;version&gt;</i>/groups/&nbsp;</code>
</p>
<h3> <span class="mw-headline" id="Building_Tests"> Building Tests </span></h3>
<p>Command for building tests:<br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;perl api-sanity-checker.pl -l <i>&lt;library_name&gt;</i> -d <i>&lt;<a href="http://ispras.linuxfoundation.org/index.php/Library_Descriptor" title="Library Descriptor">version.xml</a>&gt;</i> -build&nbsp;</code>
</p>
<h3> <span class="mw-headline" id="Running_Tests"> Running Tests </span></h3>
<p>Command for running tests:<br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;perl api-sanity-checker.pl -l <i>&lt;library_name&gt;</i> -d <i>&lt;<a href="http://ispras.linuxfoundation.org/index.php/Library_Descriptor" title="Library Descriptor">version.xml</a>&gt;</i> -run&nbsp;</code><br /><br />
After a time will be generated test report:<br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;test_results/<i>&lt;library_name&gt;</i>/<i>&lt;version&gt;</i>/test_results.html&nbsp;</code>
</p>
<h3> <span class="mw-headline" id="Improving_Tests"> Improving Tests </span></h3>
<p>To improve generated tests quality, you can provide the collection of <b><a href="http://ispras.linuxfoundation.org/index.php/Specialized_Type" title="Specialized Type">specialized types</a></b> for the library.
</p>
<h3> <span class="mw-headline" id="Command-Line_Options"> Command-Line Options </span></h3>
<p>The tool has many useful options for manipulating with the test generation and execution processes. See the list of all options on <b><a href="http://ispras.linuxfoundation.org/index.php/API_Sanity_Autotest_Options" title="API Sanity Autotest Options">this page</a></b>.
</p>
<h3> <span class="mw-headline" id="Examples"> Examples </span></h3>
<p>Generate, build and execute the tests for the libssh library:<br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;perl api-sanity-checker.pl -l libssh -d 0.3.4.xml -gen -build -run&nbsp;</code><br /><br />
Tests will be generated to:<br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;tests/libssh/0.3.4/groups/&nbsp;</code><br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;tests/libssh/0.3.4/view_tests.html&nbsp;</code><br /><br />
The report will be generated to:<br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;test_results/libssh/0.3.4/test_results.html&nbsp;</code><br /><br />
Generate tests in the Template2Code (T2C) format:<br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;perl api-sanity-checker.pl -l libssh -d 0.3.4.xml -gen -t2c&nbsp;</code><br /><br />
The package with T2C tests will be generated to:<br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;tests_t2c/libssh/0.3.4/t2c-libssh-tests-0.3.4.tar.gz&nbsp;</code><br /><br />
Execute the tests using the Xvfb server:<br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;perl api-sanity-checker.pl -l allegro -d 4.9.21.xml -run -xvfb&nbsp;</code><br /><br />
Generate tests using the <a href="http://www.splint.org/" class="external text" rel="nofollow">Splint</a> specifications (annotations) in the headers:<br />
&nbsp;&nbsp;<code style="border: dashed 1px gray; background-color: #f0f0f0;">&nbsp;perl api-sanity-checker.pl -l popt -d 1.16.xml -gen -splint-specs&nbsp;</code><br />
</p>
<h2> <span class="mw-headline" id="Similar_Tools"> Similar Tools </span></h2>
<ol><li> <b>Trinity</b> - The Linux system call fuzzer,
</li><li> <b>iknowthis</b> - A system call fuzzer for UNIX-like systems,
</li></ol>
<h2> <span class="mw-headline" id="How_the_Tool_Works"> How the Tool Works </span></h2>
<p>The basic idea of the test data generation algorithm is to recursively initialize parameters of a function using the values returned (or returned through the out-parameter) by other functions for structured data types (class, struct, union) or by some simple values for intrinsic data types (int, float, enum, ...). The recursion step includes the heuristic selection of the appropriate function, that should be called to initialize complex parameters for other functions. If some parameter of a function cannot be initialized, then the algorithm tries to select other function.
</p><p>Let's see the example test for <a href="http://freetype.fis.uniroma2.it/freetype2/docs/reference/ft2-sizes_management.html#FT_Activate_Size" class="external text" rel="nofollow">FT_Activate_Size ( FT_Size size )</a> function from the FreeType2 library:
</p>
<pre>   <span style="color:Green">#include &lt;freetype/freetype.h&gt;</span>
   <span style="color:Brown">int</span> main(<span style="color:Brown">int</span> argc, <span style="color:Brown">char</span> *argv[])
   {
       FT_Library alibrary = <span style="color:Blue">0</span>;
       FT_Init_FreeType(&amp;alibrary);<span style="color:Gray">//initialize "alibrary"</span>
       
       FT_Face face = <span style="color:Blue">0</span>;
       FT_New_Face(
           alibrary,
           <span style="color:#FF00FF">"sample.ttf"</span>,
           <span style="color:Blue">0</span>,
           &amp;face);<span style="color:Gray">//initialize "face"</span>
       
       FT_Size size = <span style="color:Blue">0</span>;
       FT_New_Size(face, &amp;size);<span style="color:Gray">//initialize "size"</span>
       
       <span style="color:Red">FT_Activate_Size</span>(size);<span style="color:Gray">//target call</span>
       return <span style="color:Blue">0</span>;
   }
</pre>
<p>In this test case the parameter "size" of target function FT_Activate_Size is initialized through the call of FT_New_Size function using its 2nd out-parameter. The first parameter "face" of FT_New_Size function is recursively initialized by the use of FT_New_Face function's 4th out-parameter. And finally the first parameter "alibrary" of FT_New_Face is initialized by the call of FT_Init_FreeType function on the 3rd recursion step. Other parameters of FT_New_Face function are initialized by intrinsic values.
</p>
<h2> <span class="mw-headline" id="Bugs"> Bugs </span></h2>
<p>Please send your bug reports, feature requests and questions directly to <a href="mailto:api-sanity-autotest@linuxtesting.org" class="external text" rel="nofollow">api-sanity-autotest@linuxtesting.org</a> or post to the issue tracker at <a href="http://forge.ispras.ru/projects/api-sanity-autotest" class="external text" rel="nofollow">forge.ispras.ru</a>
</p>
<h2> <span class="mw-headline" id="Applications"> Applications </span></h2>
<p>LSB 4.0 certification test suites for Qt3 (9792 interfaces tested), Qt4 (10803 interfaces tested) and libxml2 (1284 interfaces tested) libraries were developed with the help of this tool, also known as "<a href="http://ispras.linuxfoundation.org/index.php/AZOV_Framework" title="AZOV Framework">AZOV Framework</a>" in the past (2007-2009).
</p>
<h2> <span class="mw-headline" id="Future_Plans"> Future Plans </span></h2>
<ul><li> Add CUnit format support. See <a href="http://www.linuxfoundation.org/collaborate/workgroups/gsoc/2011-gsoc-lsb-projects" class="external text" rel="nofollow">2011 GSoC</a> LSB projects.
</li><li> Extending support of <a href="http://www.splint.org/" class="external text" rel="nofollow">Splint</a> and <a href="http://en.wikipedia.org/wiki/ANSI/ISO_C_Specification_Language" class="external text" rel="nofollow">ACSL</a> annotations.
</li><li> Making better distinction between pointer arguments (*x) and arrays (x[]).
</li><li> More kinds of generated test data files (images, fonts, ...).
</li><li> Option for generating bound values for parameters.
</li></ul>
<h2> <span class="mw-headline" id="Maintainers"> Maintainers </span></h2>
<p>The tool was developed by the <a href="http://linuxtesting.org" class="external text" rel="nofollow">Russian Linux Verification Center</a> at <a href="http://ispras.linuxfoundation.org/index.php/ISP_RAS_Company_Profile" title="ISP RAS Company Profile">ISPRAS</a>. <a href="http://andrey-ponomarenko.myopenid.com/" class="external text" rel="nofollow">Andrey Ponomarenko</a> is the leader of this project.
</p>
<h2> <span class="mw-headline" id="Credits"> Credits </span></h2>
<p>We would like to thank <a href="http://ispras.linuxfoundation.org/index.php/Thanks" title="Thanks">everyone</a> who has contributed to the success of this project!
</p>
<h2> <span class="mw-headline" id="Articles"> Articles </span></h2>
<ol><li> <a href="http://en.wikipedia.org/wiki/Sanity_testing#Software_development" class="external text" rel="nofollow">wikipedia.org, <b>“Sanity testing in software development”</b></a>
</li><li> <a href="http://en.wikipedia.org/wiki/Fuzz_testing" class="external text" rel="nofollow">wikipedia.org, <b>“Fuzz testing”</b></a>
</li><li> <a href="http://panda.ispras.ru/~kuliamin/docs/AzovPrg-2008-en.pdf" class="external text" rel="nofollow">R. S. Zybin , V. V. Kuliamin , A. V. Ponomarenko , V. V. Rubanov  and E. S. Chernov, <b>“Automation of broad sanity test generation”</b></a>
</li></ol>

<!-- 
NewPP limit report
Preprocessor node count: 122/1000000
Post-expand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
Expensive parser function count: 0/100
-->

<!-- Saved in parser cache with key rasispdb:pcache:idhash:2411-0!1!0!!en!2!edit=0 and timestamp 20110603074205 -->
</div></div></div></div></body></html>