亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? test_registry.html

?? 關于c單元測試的一些文檔
?? HTML
字號:
<HTML><HEAD>  <TITLE>CUnit - The Test Registry</TITLE>  <LINK REL=StyleSheet HREF="CUnit_doc.css" TYPE="text/css" TITLE="CUnit Basic Style" /></HEAD><BODY><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0">  <TR>    <TH COLSPAN="3" ALIGN="center"><H3>CUnit Progammers Guide</H3></TH>  </TR>  <TR>    <TD WIDTH="10%" ALIGN="left" VALIGN="bottom"><A HREF="writing_tests.html" ACCESSKEY="P" >Prev</A></TD>    <TD WIDTH="80%" ALIGN="center" VALIGN="bottom"><A HREF="index.html" ACCESSKEY="H" >Home</A></TD>    <TD WIDTH="10%" ALIGN="right" VALIGN="bottom"><A HREF="managing_tests.html" ACCESSKEY="N" >Next</A></TD>  </TR></TABLE><HR ALIGN="LEFT" WIDTH="100%"><H2>3. The Test Registry</H2><H3 ID="synopsis">3.1. Synopsis</H3>#include &lt;<A HREF="headers/TestDB.h">CUnit/TestDB.h</A>&gt;(included automatically by &lt;<A HREF="headers/CUnit.h">CUnit/CUnit.h</A>&gt;)<P /><PRE>  typedef struct <A HREF="#CU_TestRegistry">CU_TestRegistry</A>  typedef CU_TestRegistry*  <A HREF="#CU_TestRegistry">CU_pTestRegistry</A>  CU_ErrorCode     <A HREF="#init">CU_initialize_registry</A>(void)  void             <A HREF="#cleanup">CU_cleanup_registry</A>(void)  CU_pTestRegistry <A HREF="#otherfuncs">CU_get_registry</A>(void)  CU_pTestRegistry <A HREF="#otherfuncs">CU_set_registry</A>(CU_pTestRegistry pTestRegistry)  CU_pTestRegistry <A HREF="#otherfuncs">CU_create_new_registry</A>(void)  void             <A HREF="#otherfuncs">CU_destroy_existing_registry</A>(CU_pTestRegistry* ppRegistry)</PRE><H3 ID="struct">3.2. Internal Structure</H3>The test registry is the repository for suites and associated tests.CUnit maintains an active test registry which is updated when the useradds a suite or test.  The suites in this active registry are the onesrun when the user chooses to run all tests.<P />The CUnit test registry is a data structure <CITE>CU_TestRegistry</CITE>declared in <A HREF="headers/TestDB.h">&lt;CUnit/TestDB.h&gt;</A>.  Itincludes fields for the total numbers of suites and tests stored in theregistry, as well as a pointer to the head of the linked list ofregistered suites.<PRE ID="CU_TestRegistry">  typedef struct CU_TestRegistry  {    unsigned int uiNumberOfSuites;    unsigned int uiNumberOfTests;    CU_pSuite    pSuite;  } <CITE><B>CU_TestRegistry</B></CITE>;  typedef CU_TestRegistry* <CITE><B>CU_pTestRegistry</B></CITE>;</PRE><P />The user normally only needs to initialize the registry before use andclean up afterwards.  However, other functions are provided tomanipulate the registry when necessary.<H3 ID="init">3.3. Initialization</H3><P CLASS="indent2"><CITE>CU_ErrorCode <B>CU_initialize_registry</B>(void)</CITE></P><P CLASS="indent5">The active CUnit test registry must be initializedbefore use.  The user should call <CITE>CU_initialize_registry()</CITE>before calling any other CUnit functions.  Failure to do so willlikely result in a crash.<BR /><BR />An error status code is returned:<P CLASS="indent10"><TABLE CELLPADDING=1>  <TR>    <TD><CITE>CUE_SUCCESS</CITE></TD>    <TD>initialization was successful.</TD>  </TR>  <TR>    <TD><CITE>CUE_NOMEMORY</CITE></TD>    <TD>memory allocation failed.</TD>  </TR></TABLE></P><H3 ID="cleanup">3.4. Cleanup</H3><P CLASS="indent2"><CITE>void <B>CU_cleanup_registry</B>(void)</CITE></P><P CLASS="indent5">When testing is complete, the user should call thisfunction to clean up and release memory used by the framework.  Thisshould be the last CUnit function called (except for restoring thetest registry using <A HREF="#init">CU_initialize_registry()</A> or<A HREF="#setreg">CU_set_registry()</A>).<BR /><BR />Failure to call <CITE>CU_cleanup_registry()</CITE> will result inmemory leaks.  It may be called more than once without creating anerror condition.  <I>Note that this function will destroy allsuites (and associated tests) in the registry.</I> Pointers toregistered suites and tests should not be dereferenced aftercleaning up the registry.<BR /><BR />Calling <CITE>CU_cleanup_registry()</CITE> will only affect the internal<A HREF="#CU_TestRegistry">CU_TestRegistry</A> maintained by the CUnitframework.  Destruction of any other test registries owned by the userare the responsibility of the user.  This can be done explictly bycalling <A HREF="#destroy">CU_destroy_existing_registry()</A>, orimplicitly by making the registry active using<A HREF="#setreg">CU_set_registry()</A> and calling<CITE>CU_cleanup_registry()</CITE> again.</P><H3 ID="otherfuncs">3.5. Other Registry Functions</H3>Other registry functions are provided primarily for internal andtesting purposes. However, general users may find use for them andshould be aware of them.<P />These include:<P /><P CLASS="indent2"><CITE ID="getreg">CU_pTestRegistry <B>CU_get_registry</B>(void)</CITE></P><P CLASS="indent5">Returns a pointer to the active test registry.  The registry is avariable of data type <A HREF="#CU_TestRegistry">CU_TestRegistry</A>.Direct manipulation of the internal test registry is notrecommended - API functions should be used instead.  The frameworkmaintains ownership of the registry, so the returned pointer will beinvalidated by a call to <A HREF="#cleanup">CU_cleanup_registry()</A>or <A HREF="#init">CU_initialize_registry()</A>.</P><P CLASS="indent2"><CITE ID="setreg">CU_pTestRegistry <B>CU_set_registry</B>(CU_pTestRegistry pTestRegistry)</CITE></P><P CLASS="indent5">Replaces the active registry with the specified one.  A pointer to theprevious registry is returned.  <B><I>It is the caller's responsibilityto destroy the old registry</I></B>.  This can be done explictly bycalling <A HREF="#destroy">CU_destroy_existing_registry()</A> for thereturned pointer.  Alternatively, the registry can be made active using<A HREF="#setreg">CU_set_registry()</A> and destroyed implicitly when<A HREF="#cleanup">CU_cleanup_registry()</A> is called. Care should be taken not to explicitly destroy a registry that is set as the active one.  This can result in multiple frees of the same memory and a likely crash.</P><P CLASS="indent2"><CITE ID="create">CU_pTestRegistry <B>CU_create_new_registry</B>(void)</CITE></P><P CLASS="indent5">Creates a new registry and returns a pointer to it.The new registry will not contain any suites or tests.  It is thecaller's responsibility to destroy the new registry by one of themechanisms described previously.</P><P CLASS="indent2"><CITE ID="destroy">void <B>CU_destroy_existing_registry</B>(CU_pTestRegistry* ppRegistry)</CITE></P><P CLASS="indent5">Destroys and frees all memory for the specified testregistry, including any registered suites and tests.  This function should not be called for a registry which is set as the active test registry (e.g. a  <CITE>CU_pTestRegistry</CITE> pointer retrieved using<A HREF="#getreg">CU_get_registry()</A>).  This will result in amultiple free of the same memory when<A HREF="#cleanup">CU_cleanup_registry()</A> is called.  Calling thisfunction with <CODE>NULL</CODE> has no effect.</P><H3 ID="deprecated">3.6. Deprecated v1 Data Types & Functions</H3>The following data types and functions are deprecated as of version 2.To use these deprecated names, user code must be compiled with<CITE>USE_DEPRECATED_CUNIT_NAMES</CITE> defined.<P /><B>#include&nbsp;&lt;<A HREF="headers/TestDB.h">CUnit/TestDB.h</A>&gt;</B>(included automatically by <A HREF="headers/CUnit.h">CUnit/CUnit.h</A>&gt;).<P /><TABLE CELLPADDING=5 BORDER=2>  <TR VALIGN="top">    <TD><B>Deprecated Name</B></TD>    <TD><B>Equivalent New Name</B></TD>  </TR>  <TR VALIGN="top">    <TD><CODE>_TestRegistry</CODE></TD>    <TD><A HREF="#CU_TestRegistry">CU_TestRegistry</A></TD>  </TR>  <TR VALIGN="top">    <TD>      <CODE>        _TestRegistry.uiNumberOfGroups<BR />        PTestRegistry->uiNumberOfGroups      </CODE>    </TD>    <TD>      <CODE>        CU_TestRegistry.uiNumberOfSuites<BR />        CU_pTestRegistry->uiNumberOfSuites<BR />      </CODE>    </TD>  </TR>  <TR VALIGN="top">    <TD>      <CODE>        _TestRegistry.pGroup<BR />        PTestRegistry->pGroup      </CODE>    </TD>    <TD>      <CODE>        CU_TestRegistry.pSuite<BR />        CU_pTestRegistry->pSuite      </CODE>    </TD>  </TR>  <TR VALIGN="top">    <TD><CODE>PTestRegistry</CODE></TD>    <TD><A HREF="#CU_TestRegistry">CU_pTestRegistry</A></TD>  </TR>  <TR VALIGN="top">    <TD><CODE>initialize_registry()</CODE></TD>    <TD><A HREF="#init">CU_initialize_registry()</A></TD>  </TR>  <TR VALIGN="top">    <TD><CODE>cleanup_registry()</CODE></TD>    <TD><A HREF="#cleanup">CU_cleanup_registry()</A></TD>  </TR>  <TR VALIGN="top">    <TD><CODE>get_registry()</CODE></TD>    <TD><A HREF="#getreg">CU_get_registry()</A></TD>  </TR>  <TR VALIGN="top">    <TD><CODE>set_registry()</CODE></TD>    <TD><A HREF="#setreg">CU_set_registry()</A></TD>  </TR></TABLE><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="writing_tests.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="managing_tests.html" ACCESSKEY="N" >Next</A></TD>  </TR>  <TR>    <TD WIDTH="33%" ALIGN="left" VALIGN="top">Introduction</TD>    <TD WIDTH="34%" ALIGN="center" VALIGN="top">&nbsp;</TD>    <TD WIDTH="33%" ALIGN="right" VALIGN="top">Managing Tests & Suites</TD>  </TR></TABLE></DIV></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美人体做爰大胆视频| 一区二区三区色| 亚洲靠逼com| 久久成人免费电影| 色久优优欧美色久优优| 精品国产髙清在线看国产毛片| **网站欧美大片在线观看| 日韩不卡一二三区| 91福利社在线观看| 国产精品日韩成人| 精品一区二区三区免费| 欧美视频在线播放| 亚洲欧美色一区| 成人激情校园春色| 2欧美一区二区三区在线观看视频| 亚洲国产一二三| 一本一道综合狠狠老| 欧美国产精品专区| 国产成人在线看| 精品999在线播放| 美女视频黄频大全不卡视频在线播放| 日本韩国一区二区| 亚洲色图欧美激情| av在线播放成人| 亚洲国产精品传媒在线观看| 国内精品伊人久久久久av影院 | 一区二区三区在线视频观看58 | 综合久久一区二区三区| 国产乱码精品一品二品| 欧美v日韩v国产v| 麻豆久久久久久| 日韩欧美的一区| 久久国产尿小便嘘嘘| 欧美一区二区大片| 捆绑调教一区二区三区| 欧美成人精品3d动漫h| 日本中文字幕一区二区有限公司| 欧美午夜精品一区二区蜜桃| 亚洲一区在线看| 欧美日韩三级视频| 日韩激情一二三区| 精品国产成人在线影院 | 97精品国产露脸对白| 亚洲女厕所小便bbb| 在线视频中文字幕一区二区| 亚洲一线二线三线视频| 欧美精品 日韩| 狠狠色丁香婷婷综合| 国产日韩av一区二区| 国产69精品久久99不卡| 亚洲欧美一区二区三区国产精品 | 亚洲欧美日韩久久| 欧美视频自拍偷拍| 美女在线视频一区| 国产精品色在线观看| 色综合久久综合网| 性久久久久久久久| 久久美女艺术照精彩视频福利播放| 国产盗摄女厕一区二区三区| 国产精品久久久久久久久果冻传媒| 99国产精品99久久久久久| 亚洲高清三级视频| 精品国产一区二区三区久久影院 | 欧美在线短视频| 丝袜诱惑亚洲看片| 国产免费成人在线视频| 91麻豆文化传媒在线观看| 日韩精品高清不卡| 国产精品久久午夜| 91精品国产欧美一区二区 | 国产在线一区二区综合免费视频| 国产精品日产欧美久久久久| 欧美色图在线观看| 国产精品一区二区你懂的| 亚洲三级久久久| 精品国产精品网麻豆系列| 色爱区综合激月婷婷| 极品少妇一区二区三区精品视频| 亚洲男人的天堂在线观看| 欧美电视剧在线看免费| 在线观看亚洲a| 福利视频网站一区二区三区| 图片区小说区区亚洲影院| 国产精品色一区二区三区| 91精品欧美一区二区三区综合在 | 国产精品国产精品国产专区不片| 欧美精品久久一区| 99re在线精品| 国产高清在线观看免费不卡| 奇米色一区二区| 亚洲精品视频在线| 亚洲国产精品精华液ab| 欧美不卡在线视频| 欧美美女视频在线观看| 日本韩国一区二区| 91亚洲精品久久久蜜桃网站| 精品一二线国产| 日韩电影在线观看电影| 亚洲综合久久久| 17c精品麻豆一区二区免费| 久久精品一区八戒影视| 欧美第一区第二区| 91精品午夜视频| 欧美日韩精品一二三区| 日本韩国视频一区二区| 91麻豆精品一区二区三区| 国产福利一区二区三区视频在线| 九九国产精品视频| 日本中文在线一区| 日韩高清在线一区| 肉丝袜脚交视频一区二区| 亚洲高清一区二区三区| 亚洲国产精品久久不卡毛片| 亚洲自拍都市欧美小说| 亚洲美女电影在线| 亚洲美女一区二区三区| 一区二区三区成人在线视频| ...av二区三区久久精品| 日韩美女精品在线| 夜夜嗨av一区二区三区四季av| 亚洲欧美日韩在线不卡| 一区二区三区欧美日韩| 亚洲一区在线电影| 奇米影视7777精品一区二区| 久久电影网电视剧免费观看| 久久99精品久久只有精品| 韩国毛片一区二区三区| 风间由美一区二区av101| 处破女av一区二区| 91浏览器入口在线观看| 在线精品视频小说1| 欧美精品九九99久久| 欧美xxxxxxxxx| 国产亚洲一二三区| 亚洲视频一区二区在线观看| 亚洲另类中文字| 日韩国产欧美在线播放| 国产美女娇喘av呻吟久久| 成人中文字幕电影| 欧美在线观看视频一区二区| 日韩小视频在线观看专区| 久久精品视频免费观看| 一区二区三区美女视频| 日韩电影一区二区三区| 国产美女av一区二区三区| 91蜜桃网址入口| 日韩午夜在线观看视频| 国产精品久久久久国产精品日日| 一区二区三区精品| 国内精品自线一区二区三区视频| 99久免费精品视频在线观看 | 亚洲狠狠爱一区二区三区| 久久99久久久久| www.亚洲人| 91精品国产综合久久福利| 久久精品欧美一区二区三区不卡| 亚洲欧洲性图库| 久久精品国产精品亚洲综合| 91在线视频网址| 91精品国产综合久久小美女| 中文字幕久久午夜不卡| 五月天激情综合| 成人动漫av在线| 欧美一三区三区四区免费在线看| 国产精品系列在线| 日韩精品亚洲一区| av午夜精品一区二区三区| 欧美mv和日韩mv的网站| 一区二区欧美视频| 成人深夜福利app| 日韩欧美一区二区不卡| 亚洲国产成人av好男人在线观看| 粉嫩高潮美女一区二区三区| 91精品国产免费久久综合| 亚洲欧洲精品一区二区三区不卡 | 亚洲成人免费在线| 成人美女在线观看| 精品国产在天天线2019| 午夜精品久久久久久久蜜桃app| 高清在线不卡av| 26uuu久久天堂性欧美| 日韩综合在线视频| 色婷婷久久综合| 国产精品久久久久久久久免费桃花| 七七婷婷婷婷精品国产| 欧美卡1卡2卡| 亚洲午夜精品一区二区三区他趣| 99久久久免费精品国产一区二区| 久久久亚洲高清| 久久丁香综合五月国产三级网站| 在线播放一区二区三区| 亚洲一本大道在线| 欧洲精品在线观看| 夜夜揉揉日日人人青青一国产精品 | 国产精品剧情在线亚洲| 国产不卡视频在线播放| 欧美国产日产图区| 成人午夜电影网站| 国产精品日韩精品欧美在线| 成人av免费网站|