• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運(yùn)轉(zhuǎn),開心的工作
            簡(jiǎn)單、開放、平等的公司文化;尊重個(gè)性、自由與個(gè)人價(jià)值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            按以下的步驟在 make時(shí)出現(xiàn) libtool.m4 version mismatch
            先運(yùn)行 autoreconf --force --install --symlink
            然后
            #automake
            #chmod u+x configure
            #./configure --prefix <Your choice of directory for installation>
            (對(duì)上一句進(jìn)行解釋,<Your choice of directory for installation>這個(gè)位置,需要你輸入要安裝的目錄,目錄的格式舉例如下:/usr/unittest/)
            #make
            #make install
            編譯成功

            --------------------------- 下面是引用的內(nèi)容

            CUnit在Linux下的配置說明
            關(guān)鍵字:CUnit Linux 配置 xml
            ????? 由于項(xiàng)目需要,對(duì)于C語(yǔ)言的單元測(cè)試工具CUnit在Linux下如何使用進(jìn)行了調(diào)查,在網(wǎng)上對(duì)相關(guān)內(nèi)容進(jìn)行搜索發(fā)現(xiàn),很多內(nèi)容都很相近,甚至完全一樣,在這篇爭(zhēng)相轉(zhuǎn)載的文章中,雖有詳細(xì)的說明,但也有描述的不甚清晰之處,對(duì)于剛剛接觸Linux的同學(xué),往往是一頭霧水,不能很順利的配置出來(lái)。籍著此次的調(diào)查機(jī)會(huì),現(xiàn)將具體的步驟和配置過程中需要注意的地方進(jìn)行了補(bǔ)充說明,希望能對(duì)以后需要進(jìn)行同樣工作的同學(xué)有些幫助。

            1、首先在http://cunit.sourceforge.net/index.html鏈接處,下載最新版本的CUnit源碼包(CUnit-2.1-0-src.tar.gz)。
            2、將CUnit源碼包(CUnit-2.1-0-src.tar.gz)復(fù)制到Linux的目標(biāo)目錄下,比如我在這里放到了/usr/unittest目錄下。
            3、CUnit源碼包的解壓。打開[System Tools]-〉[Terminal],進(jìn)入到/usr/unittest目錄下,
            輸入如下命令:
            #tar xzvf CUnit-2.1-0-src.tar.gz
            執(zhí)行結(jié)束后,將會(huì)在當(dāng)前目錄下生成一個(gè)解壓后的文件夾(CUnit-2.1-0)。
            4、解壓結(jié)束后,開始進(jìn)行編譯和安裝。
            #cd CUnit-2.1-0
            #aclocal
            #autoconf
            #automake
            #chmod u+x configure
            #./configure --prefix <Your choice of directory for installation>
            (對(duì)上一句進(jìn)行解釋,<Your choice of directory for installation>這個(gè)位置,需要你輸入要安裝的目錄,目錄的格式舉例如下:/usr/unittest/)
            #make
            #make install
            這里需要一段時(shí)間...
            #cd /usr/unittest/lib
            #ldconfig
            最后這兩句,感覺像是沒什么用,有時(shí)間證實(shí)一下。
            到此處為止,CUnit的安裝基本上就到一段落了。
            接下來(lái)是來(lái)測(cè)試我們的代碼工作流程。
            將要測(cè)試的代碼復(fù)制到/usr/unittest目錄下,
            輸入如下命令:
            #export LD_LIBRARY_PATH=/usr/unittest/lib
            #gcc -o test -I/usr/unittest/include -L/usr/unittest/lib -lcunit run_test.c test_func.c func.c
            這樣,即可在/usr/unittest目錄下生成可執(zhí)行文件test。
            #./test
            執(zhí)行該文件,執(zhí)行成功后,會(huì)在當(dāng)前目錄下產(chǎn)生兩個(gè)xml文件。
            ①TestMax-Listing.xml :對(duì)測(cè)試用例的報(bào)告
            ②TestMax-Results.xml :對(duì)測(cè)試結(jié)果的報(bào)告

            要查看這兩個(gè)文件,還需要使用如下xsl和dtd文件:
            CUnit-List.dtd和CUnit-List.xsl用于解析列表文件,
            CUnit-Run.dtd和CUnit-Run.xsl用于解析結(jié)果文件。
            這四個(gè)文件在CUnit包里面有提供,安裝之后在unittest/share/CUnit目錄下,
            默認(rèn)安裝的話在/home/usr/local/share/CUnit目錄下。
            在查看結(jié)果之前,需要把這六個(gè)文件:
            TestMax-Listing.xml, TestMax-Results.xml, CUnit-List.dtd, CUnit-List.xsl, CUnit-Run.dtd, CUnit-Run.xsl拷貝到一個(gè)目錄下,然后用瀏覽器打開兩個(gè)結(jié)果的xml文件就可以了。

            --------------------------------------------------
            示例代碼如下:
            func.c
            --------
            int maxi(int i, int j)
            {
            ??? return i>j?i:j;
            //??????? return i;
            }
            --------
            test_func.c
            --------
            #include <stdio.h>
            #include <stdlib.h>
            #include <assert.h>
            #include "include/CUnit/CUnit.h"
            #include "include/CUnit/Automated.h"

            /**//*---- functions to be tested ------*/
            extern int maxi(int i, int j);

            /**//*---- test cases ------------------*/
            void testIQJ()
            {
            ??????? CU_ASSERT_EQUAL(maxi(1,1),1);
            ??????? CU_ASSERT_EQUAL(maxi(0,-0),0);
            }

            void testIGJ()
            {
            ??????? CU_ASSERT_EQUAL(maxi(2,1),2);
            ??????? CU_ASSERT_EQUAL(maxi(0,-1),0);
            ??????? CU_ASSERT_EQUAL(maxi(-1,-2),-1);
            }

            void testILJ()
            {
            ??????? CU_ASSERT_EQUAL(maxi(1,2),2);
            ??????? CU_ASSERT_EQUAL(maxi(-1,0),0);
            ??????? CU_ASSERT_EQUAL(maxi(-2,-1),-1);
            }

            CU_TestInfo testcases[] = {
            ??????? {"Testing i equals j:", testIQJ},
            ??????? {"Testing i greater than j:", testIGJ},
            ??????? {"Testing i less than j:", testILJ},
            ??????? CU_TEST_INFO_NULL
            };
            /**//*---- test suites ------------------*/
            int suite_success_init(void) { return 0; }
            int suite_success_clean(void) { return 0; }

            CU_SuiteInfo suites[] = {
            ??????? {"Testing the function maxi:", suite_success_init, suite_success_clean, testcases},
            ??????? CU_SUITE_INFO_NULL
            };
            /**//*---- setting enviroment -----------*/
            void AddTests(void)
            {
            ??????? assert(NULL != CU_get_registry());
            ??????? assert(!CU_is_test_running());
            ??????? /**//* shortcut regitry */

            ??????? if(CUE_SUCCESS != CU_register_suites(suites)){
            ??????????????? fprintf(stderr, "Register suites failed - %s ", CU_get_error_msg());
            ??????????????? exit(EXIT_FAILURE);
            ??????? }
            }
            --------
            run_test.c
            --------
            #include <stdio.h>
            #include <stdlib.h>
            #include <assert.h>

            int main( int argc, char *argv[] )
            {
            ?????? printf("hello");
            ?????? if(CU_initialize_registry()){
            ??????????????? fprintf(stderr, " Initialization of Test Registry failed. ");
            ??????????????? exit(EXIT_FAILURE);
            ??????? }else{
            ??????????????? AddTests();
            ??????????????? CU_set_output_filename("TestMax");
            ??????????????? CU_list_tests_to_file();
            ??????????????? CU_automated_run_tests();
            ??????????????? CU_cleanup_registry();
            ??????? }
            ??????? return 0;
            }
            -----------------------end--------------------------------
            來(lái)自: http://hi.baidu.com/danielkwok/blog/item/c94bfb5cd5f53e4afaf2c05d.html
            国产亚洲色婷婷久久99精品91| 一本色道久久综合| 久久99精品久久久久久动态图 | 国内精品伊人久久久久网站| 国内精品久久人妻互换| 爱做久久久久久| 久久夜色精品国产亚洲| 99久久婷婷免费国产综合精品| 久久99久久无码毛片一区二区| 久久亚洲国产成人影院| 99国产精品久久| 久久久久久伊人高潮影院| 国产婷婷成人久久Av免费高清| 亚洲精品乱码久久久久久不卡| 午夜天堂av天堂久久久| 久久久久国色AV免费看图片| 久久棈精品久久久久久噜噜| 日本久久中文字幕| 日韩欧美亚洲综合久久影院d3| 国产成年无码久久久免费| 久久久久久亚洲精品无码| 国产午夜久久影院| 久久香综合精品久久伊人| 久久久久亚洲AV无码专区桃色| 久久亚洲精品视频| 久久精品国产亚洲AV高清热| 久久久久久国产精品无码下载| 亚洲国产小视频精品久久久三级 | 久久精品成人国产午夜| 亚洲精品国产字幕久久不卡| 亚洲午夜精品久久久久久浪潮 | 久久伊人影视| 久久99精品九九九久久婷婷| 欧美伊香蕉久久综合类网站| 国内精品久久久久影院免费| 久久夜色精品国产欧美乱| 色综合久久综合中文综合网| 亚洲va中文字幕无码久久 | 精品精品国产自在久久高清| 91久久精品91久久性色| aaa级精品久久久国产片|