⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 option.cpp

📁 epson usb2.0 控制芯片 S1R72V05 固件程序。
💻 CPP
📖 第 1 页 / 共 3 页
字号:
            if(OptionItem::createItem(work, arg))
                TEST_FAIL;
        } END_CASE;

    } END_CASE;

    BEGIN_CASE("isValid/createInvalidItem", "柍岠傪帵偡僀儞僗僞儞僗傪惗惉偱偒丄偦傟傪敾掕偱偒傞") {
        OptionItem work;

        BEGIN_CASE("1","僨僼僅儖僩僐儞僗僩儔僋僞偱惗惉偟偨僆僽僕僃僋僩偼桳岠") {
            if(!work.isValid())
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("2","柍岠僀儞僗僞儞僗偼摉慠柍岠") {
            work = OptionItem::createInvalidItem();
            if(work.isValid())
                TEST_FAIL;
        } END_CASE;
    } END_CASE;

    BEGIN_CASE("getParameters","getParameters") {
        BEGIN_CASE("1","惓偟偔僆僾僔儑儞傪寢崌偱偒傞") {
            OptionItem work;
            string     arg("-test a b c d e f g");

            TEST_CASE("0","[慜採]僆僾僔儑儞夝愅偵惉岟偡傞", OptionItem::createItem(work,arg));
            TEST_CASE("1","寢崌偱偒傞", work.getParameters().compare("a b c d e f g") == 0);
            TEST_CASE("2","嬫愗傝巵傪巜掕偟偰寢崌偱偒傞", work.getParameters(",").compare("a,b,c,d,e,f,g") == 0);
        } END_CASE;
    } END_CASE;

    BEGIN_CASE("checkParameterCount","checkParameterCount") {
        BEGIN_CASE("1","僆僾僔儑儞偺悢偑偁偭偰偄傟偼true") {
            OptionItem work;
            string     arg("-test a b c d e f g");

            TEST_CASE("0","[慜採]僆僾僔儑儞夝愅偵惉岟偡傞", OptionItem::createItem(work,arg));

            if(!work.checkParameterCount(7))
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("2","僆僾僔儑儞偺悢偑娫堘偭偰偄傞偲false") {
            OptionItem work;
            string     arg("-test a b c d e f g");

            TEST_CASE("0","[慜採]僆僾僔儑儞夝愅偵惉岟偡傞", OptionItem::createItem(work,arg));

            if(work.checkParameterCount(2))
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("3","僆僾僔儑儞偑側偔偰丄!allow_zero側傜false") {
            OptionItem work;
            string     arg("-test");

            TEST_CASE("0","[慜採]僆僾僔儑儞夝愅偵惉岟偡傞", OptionItem::createItem(work,arg));

            if(work.checkParameterCount(1,false))
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("4","僆僾僔儑儞偑側偔偰丄allow_zero側傜true") {
            OptionItem work;
            string     arg("-test");

            TEST_CASE("0","[慜採]僆僾僔儑儞夝愅偵惉岟偡傞", OptionItem::createItem(work,arg));

            if(work.checkParameterCount(1,true))
                TEST_FAIL;
        } END_CASE;

    } END_CASE;
}

/********************************* 僥僗僩僗傿乕僩 *********************************/

TESTSUITE(main,OptionParameter)
{
    SINGLETON(OptionParameter);

    BEGIN_CASE("countItem","僆僾僔儑儞傾僀僥儉偺悢偑惓偟偔庢摼偱偒傞") {
        OptionParameter param;
        if(param.countItem() != 0)
            TEST_FAIL;

        param.container.insert(pair<string, OptionItem>(DEFAULT_PARAMETER, OptionItem()));
        if(param.countItem() != 1)
            TEST_FAIL;
    } END_CASE;

    BEGIN_CASE("opeator []","operator []偱梫慺偵傾僋僙僗偱偒傞") {
        OptionParameter param;
        OptionItem work;
        string arg("-test param");

        OptionItem::createItem(work, arg);
        param.container.insert(pair<string, OptionItem>(work, work));

        BEGIN_CASE("1", "operator [] (const string &)偱憤慶偵傾僋僙僗偱偒傞") {
            if(param[string("test")][0].compare("param") != 0)
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("2", "operator [] (const char *)偱憤慶偵傾僋僙僗偱偒傞") {
            if(param["test"][0].compare("param") != 0)
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("3", "operator []偱怗傞偲丄check偑擖傞") {
            if(!param["test"].isChecked())
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("4", "operator []偵柍岠側僉乕傪擖傟傞偲丄柍岠側僨乕僞偑曉偭偰偔傞") {
            if(param["nonexist"].isValid())
                TEST_FAIL;
        } END_CASE;
    } END_CASE;

    BEGIN_CASE("get","梫慺傊偺傾僋僙僗") {
        OptionParameter param;
        OptionItem work;

        OptionItem::createItem(work, string("-test param"));
        param.container.insert(pair<string, OptionItem>(work, work));
        OptionItem::createItem(work, string("-test2 param2"));
        param.container.insert(pair<string, OptionItem>(work, work));

        BEGIN_CASE("1","get(test)偱梫慺偑庢摼偱偒丄僠僃僢僋偑擖傞") {
            TEST_CASE("1","梫慺偑懚嵼偡傞", (work = param.get("test")).isValid());
            TEST_CASE("2","僠僃僢僋偑擖偭偰偄傞", work.isChecked() );
            TEST_CASE("3","梫慺偼僷儔儊乕僞傪帩偮", work.hasParameter() );
        } END_CASE;

        BEGIN_CASE("2","get(test2,false)偱梫慺偑庢摼偱偒丄僠僃僢僋偼偮偐側偄") {
            TEST_CASE("1","梫慺偑懚嵼偡傞", (work = param.get("test2",false)).isValid());
            TEST_CASE("2","僠僃僢僋偑擖偭偰偄側偄", !work.isChecked() );
        } END_CASE;

        BEGIN_CASE("3","偡偱偵僠僃僢僋偺偮偄偨test偵懳偟丄get(test,false)偱梫慺偑庢摼偱偒丄僠僃僢僋嵪傒") {
            TEST_CASE("1","梫慺偑懚嵼偡傞", (work = param.get("test",false)).isValid());
            TEST_CASE("2","僠僃僢僋偑擖偭偰偄側偄", work.isChecked() );
        } END_CASE;

        BEGIN_CASE("4","get(柍岠側柤慜)偱柍岠側梫慺偑曉傞") {
            TEST_CASE("1","梫慺偑懚嵼偡傞", !param.get("unknown").isValid());
        } END_CASE;
    } END_CASE;


    BEGIN_CASE("parseOption","僷儔儊乕僞偺僷乕僗偑惓忢偵偱偒傞偐") {
        BEGIN_CASE("01","拞恎偑壗傕側偄僷儔儊乕僞傪梌偊偰傕惉岟偡傞") {
            OptionParameter param;
            char ** argv = { NULL };

            if(!param.parseOption(0, argv))
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("02","僾儘僌儔儉柤偼僆僾僔儑儞偲偟偰夝愅偝傟側偄") {
            OptionParameter param;
            char * argv[] = { "test.exe", NULL };

            if(!param.parseOption(1, argv))
                TEST_FAIL;
            if(param.countItem() != 0)
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("03","僷儔儊乕僞偑偦傟側傝偵夝愅偝傟傞") {
            OptionParameter param;
            char * argv[] = { "test.exe", "-test", "param", "-test2=\"dummy\"", NULL };

            if(!param.parseOption(4, argv))
                TEST_FAIL;
            if(param.countItem() != 2)
                TEST_FAIL;
            
            if(param[string("test")][0].compare("param") != 0)
                TEST_FAIL;

            if(param["test2"][0].compare("dummy") != 0)
                TEST_FAIL;

            if(param.getProgramName().compare("test.exe") != 0)
                TEST_FAIL;

        } END_CASE;

        BEGIN_CASE("04","堷悢楍偑庢傟傞") {
            OptionParameter param;
            char * argv[] = { "test.exe", "-test", "param", "-test2=\"dummy\"", NULL };

            if(!param.parseOption(4, argv))
                TEST_FAIL;

            if(param.getCommandLine().compare("-test param -test2=\"dummy\" ") != 0)
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("05","壗傕堷悢偑柍偄偲偒偵偼僨僼僅儖僩堷悢傪傂偄偰偔傞") {
            OptionParameter param;
            char * argv[] = { "test.exe", NULL };

            if(!param.parseOption(1, argv, "-default=parameter"))
                TEST_FAIL;

            if(param.getCommandLine().compare("-default=parameter ") != 0)
                TEST_FAIL;
        } END_CASE;

    } END_CASE;

    BEGIN_CASE("04","嶲徠儅乕僋傪偮偗傞") {
        OptionParameter param;
        char * argv[] = { "test.exe", "-test", "param", "-test2=\"dummy\"", NULL };

        if(!param.parseOption(4, argv))
            TEST_FAIL;

        if(param.container.find(string("test"))->second.isChecked())
            TEST_FAIL;

        param.check("test");
        if(!param.container.find(string("test"))->second.isChecked())
            TEST_FAIL;
    } END_CASE;

    BEGIN_CASE("05","validateOption") {
        OptionParameter param;
        char * argv[] = { "test.exe", "-test", "param", "-test2=\"dummy\"", NULL };

        if(!param.parseOption(4, argv))
            TEST_FAIL;

        BEGIN_CASE("1","壗傕巊梡偟偰偄側偄偲偒偵偼false") {
            if(param.validateOption())
                TEST_FAIL;
        } END_CASE;

        param["test"]._check();
        BEGIN_CASE("2","傎偐偵僠僃僢僋偟偰偄側偄僆僾僔儑儞偑偁傟偽false") {
            if(param.validateOption())
                TEST_FAIL;
        } END_CASE;

        param["test2"]._check();
        BEGIN_CASE("3","慡偰巊梡偝傟傟偽true") {
            if(!param.validateOption())
                TEST_FAIL;
        } END_CASE;
    } END_CASE;

    BEGIN_CASE("06","getInvalidOptions") {
        OptionParameter param;
        char * argv[] = { "test.exe", "-test", "param", "-test2=\"dummy\"", NULL };

        if(!param.parseOption(4, argv))
            TEST_FAIL;

        BEGIN_CASE("1","壗傕巊梡偟偰偄側偄偲偒偵偼慡偰偺僆僾僔儑儞偑柍岠") {
            if(param.getInvalidOptions().compare("-test \"param\" -test2 \"dummy\"") != 0)
                TEST_FAIL;
        } END_CASE;

        param["test"]._check();
        BEGIN_CASE("2","傎偐偵僠僃僢僋偟偰偄側偄僆僾僔儑儞偑偁傟偽偦傟偑庢傟傞") {
            if(param.getInvalidOptions().compare("-test2 \"dummy\"") != 0)
                TEST_FAIL;
        } END_CASE;
    } END_CASE;

    BEGIN_CASE("07","find") {
        OptionParameter param;
        char * argv[] = { "test.exe", "-test", "param", "-test2=\"dummy\"", NULL };

        if(!param.parseOption(4, argv))
            TEST_FAIL;

        BEGIN_CASE("1","懚嵼偡傞僆僾僔儑儞偵懳偟偰true偑曉傞") {
            if(!param.find("test") || !param.find("test2"))
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("2","懚嵼偟側偄僆僾僔儑儞偵懳偟偰false偑曉傞") {
            if(param.find("unknown"))
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("3","嬻暥帤偵懳偟偰false偑曉傞") {
            if(param.find(""))
                TEST_FAIL;
        } END_CASE;
    } END_CASE;

    Singleton<OptionParameter>::restoreContext(context);
}

#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -