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

📄 clause.cpp

📁 epson usb2.0 控制芯片 S1R72V05 固件程序。
💻 CPP
📖 第 1 页 / 共 3 页
字号:

            api.regist("test");
            TEST_CASE("1","API偼惓偟偔搊榐偱偒偰偄傞",StaticAPI::hasStaticAPI("test"));
            TEST_CASE("2","API僴儞僪儔偑惓偟偄", (*StaticAPI::getClauseMap(NAMESPACE_STATICAPI))["test"] == &api);

            api2.regist("test");
            TEST_CASE("3","API僴儞僪儔偑忋彂偒偝傟偰偄傞", (*StaticAPI::getClauseMap(NAMESPACE_STATICAPI))["test"] == &api2);

            api3.regist("test");
            TEST_CASE("4","API僴儞僪儔偑忋彂偒偝傟偰偄傞", (*StaticAPI::getClauseMap(NAMESPACE_STATICAPI))["test"] == &api3);
        } END_CASE;

        BEGIN_CASE("4","僐儞僗僩儔僋僞偱搊榐") {
            Singleton<Namespace>::renewInstance();
            StaticAPI_test api("API1,API2,API3");

            TEST_CASE("1","API偼惓偟偔搊榐偱偒偰偄傞",StaticAPI::hasStaticAPI("API1"));
            TEST_CASE("2","API偼惓偟偔搊榐偱偒偰偄傞",StaticAPI::hasStaticAPI("API2"));
            TEST_CASE("3","API偼惓偟偔搊榐偱偒偰偄傞",StaticAPI::hasStaticAPI("API3"));
        } END_CASE;
    } END_CASE;

    BEGIN_CASE("parseStaticAPI","parseStaticAPI") {
        BEGIN_CASE("1","惷揑API傪惓偟偔張棟偱偒傞") {
            Singleton<Namespace>::renewInstance();
            stringstream buf;
            StaticAPI_test api("API");

            buf.str("API();");
            Parser p(&buf, "test");

            TestSuite::clearCheckpoints();
            bool result = true;
            try { StaticAPI::parseStaticAPI(p); }
            catch(...) { result = false; }

            TEST_CASE("1","椺奜偼婲傜側偄", result);
            TEST_CASE("2","惷揑API偺杮懱偑屇偽傟偰偄傞", TestSuite::isReached("StaticAPI::body"));
        } END_CASE;

        BEGIN_CASE("2","'('朰傟偱椺奜") {
            Singleton<Namespace>::renewInstance();
            stringstream buf;
            StaticAPI_test api("API");

            buf.str("API);");
            Parser p(&buf, "test");

            TestSuite::clearCheckpoints();
            bool result = false;
            try { StaticAPI::parseStaticAPI(p); }
            catch(...) { result = true; }

            TEST_CASE("1","椺奜偑婲傞", result);
            TEST_CASE("2","惷揑API偺杮懱偑屇偽傟側偄", !TestSuite::isReached("StaticAPI::body"));
        } END_CASE;

        BEGIN_CASE("3","')'朰傟偱椺奜") {
            Singleton<Namespace>::renewInstance();
            stringstream buf;
            StaticAPI_test api("API");

            buf.str("API(; NEXT");
            Parser p(&buf, "test");

            TestSuite::clearCheckpoints();
            bool result = false;
            try { StaticAPI::parseStaticAPI(p); }
            catch(...) { result = true; }

            TEST_CASE("1","椺奜偑婲傞", result);
            TEST_CASE("2","惷揑API偺杮懱偑屇偽傟偰偄傞", TestSuite::isReached("StaticAPI::body"));
        } END_CASE;

        BEGIN_CASE("4","';'朰傟偱椺奜") {
            Singleton<Namespace>::renewInstance();
            stringstream buf;
            StaticAPI_test api("API");

            buf.str("API() NEXT");
            Parser p(&buf, "test");

            TestSuite::clearCheckpoints();
            bool result = false;
            try { StaticAPI::parseStaticAPI(p); }
            catch(...) { result = true; }

            TEST_CASE("1","椺奜偑婲傞", result);
            TEST_CASE("2","惷揑API偺杮懱偑屇偽傟偰偄傞", TestSuite::isReached("StaticAPI::body"));
        } END_CASE;
    } END_CASE;

    BEGIN_CASE("onFail","onFail") {
        BEGIN_CASE("1","僙儈僐儘儞傑偱撉傒旘偽偟") {
            Singleton<Namespace>::renewInstance();
            stringstream buf;
            Parser p(&buf, "test");
            StaticAPI_test api;
            Token token;
            buf.str("api parameter;next_api next_api_parameter;");

            api.onFail_super(Token(), p);

            TEST_CASE("1","僙儈僐儘儞偺師偑撉傔傞", p.getToken() == "next_api");
        } END_CASE;

        BEGIN_CASE("2","師偺API傑偱撉傒旘偽偟") {
            Singleton<Namespace>::renewInstance();
            stringstream buf;
            Parser p(&buf, "test");
            StaticAPI_test api("api,next_api");
            buf.str("api parameter_1 parameter_2 next_api next_api_parameter;");

            api.onFail_super(p.getToken(), p);

            TEST_CASE("1","師偺API柤偑撉傔傞", p.getToken() == "next_api");
        } END_CASE;
    } END_CASE;

    BEGIN_CASE("skip","skip") {
        BEGIN_CASE("1","僙儈僐儘儞傑偱撉傒旘偽偟") {
            Singleton<Namespace>::renewInstance();
            stringstream buf;
            Parser p(&buf, "test");
            StaticAPI_test api;
            Token token;
            buf.str("api parameter;next_api next_api_parameter;");

            StaticAPI::skip(p);

            TEST_CASE("1","僙儈僐儘儞偺師偑撉傔傞", p.getToken() == "next_api");
        } END_CASE;

        BEGIN_CASE("2","師偺API傑偱撉傒旘偽偟") {
            Singleton<Namespace>::renewInstance();
            stringstream buf;
            Parser p(&buf, "test");
            StaticAPI_test api("api,next_api");
            buf.str("parameter_1 parameter_2 next_api next_api_parameter;");

            StaticAPI::skip(p);

            TEST_CASE("1","師偺API柤師偑撉傔傞", p.getToken() == "next_api");
        } END_CASE;

        BEGIN_CASE("3","愭摢偑API柤偱傕撉傒旘偽偟偱偒傞") {
            Singleton<Namespace>::renewInstance();
            stringstream buf;
            Parser p(&buf, "test");
            StaticAPI_test api("api,next_api");
            buf.str("api parameter_1 parameter_2 next_api next_api_parameter;");

            StaticAPI::skip(p);

            TEST_CASE("1","師偺API柤偑撉傔傞", p.getToken() == "next_api");
        } END_CASE;
    } END_CASE;
    
    Singleton<Namespace>::restoreContext(context);
}


namespace {
    class Directives_test : public Directives
    {
    public:
        bool throws;

        Directives_test(void) throw() : Directives(), throws(false) {}
        Directives_test(string src) throw() : Directives(src), throws(false)  {}

        void body(const Token & , Parser & ) throw(int)
        {
            TestSuite::check("Directives::body");
            if(throws)
                throw 0;
        }
    };
}

TESTSUITE(main, Directives)
{
    Singleton<Namespace>::Context context;
    Singleton<Namespace>::saveContext(context);

    Exception::setThrowControl(true);

    BEGIN_CASE("regist","regist") {
        BEGIN_CASE("1","扨堦偺柤慜傪巜掕偟偰搊榐偱偒傞") {
            Singleton<Namespace>::renewInstance();
            Directives_test api;

            api.regist("include");

            TEST_CASE("1","API偼惓偟偔搊榐偱偒偰偄傞",Directives::hasDirectives("include"));
        } END_CASE;

        BEGIN_CASE("2","暋悢偺柤慜傪巜掕偟偰搊榐偡傞") {
            Singleton<Namespace>::renewInstance();
            Directives_test api;

            api.regist("pragma,define,endif");

            TEST_CASE("1","僨傿儗僋僥傿僽偼惓偟偔搊榐偱偒偰偄傞",Directives::hasDirectives("pragma"));
            TEST_CASE("2","僨傿儗僋僥傿僽偼惓偟偔搊榐偱偒偰偄傞",Directives::hasDirectives("define"));
            TEST_CASE("3","僨傿儗僋僥傿僽偼惓偟偔搊榐偱偒偰偄傞",Directives::hasDirectives("endif"));
        } END_CASE;

        BEGIN_CASE("3","忋彂偒偡傞") {
            Singleton<Namespace>::renewInstance();
            Directives_test api;
            Directives_test api2;
            Directives_test api3;

            api.regist("test");
            TEST_CASE("1","僨傿儗僋僥傿僽偼惓偟偔搊榐偱偒偰偄傞",Directives::hasDirectives("test"));
            TEST_CASE("2","僨傿儗僋僥傿僽僴儞僪儔偑惓偟偄", (*Directives::getClauseMap(NAMESPACE_DIRECTIVES))["test"] == &api);

            api2.regist("test");
            TEST_CASE("3","僨傿儗僋僥傿僽僴儞僪儔偑忋彂偒偝傟偰偄傞", (*Directives::getClauseMap(NAMESPACE_DIRECTIVES))["test"] == &api2);

            api3.regist("test");
            TEST_CASE("4","僨傿儗僋僥傿僽僴儞僪儔偑忋彂偒偝傟偰偄傞", (*Directives::getClauseMap(NAMESPACE_DIRECTIVES))["test"] == &api3);
        } END_CASE;

        BEGIN_CASE("4","僐儞僗僩儔僋僞偱搊榐") {
            Singleton<Namespace>::renewInstance();
            Directives_test api("pragma,define,endif");

            TEST_CASE("1","僨傿儗僋僥傿僽偼惓偟偔搊榐偱偒偰偄傞",Directives::hasDirectives("pragma"));
            TEST_CASE("2","僨傿儗僋僥傿僽偼惓偟偔搊榐偱偒偰偄傞",Directives::hasDirectives("define"));
            TEST_CASE("3","僨傿儗僋僥傿僽偼惓偟偔搊榐偱偒偰偄傞",Directives::hasDirectives("endif"));
        } END_CASE;
    } END_CASE;
    
    BEGIN_CASE("parseDirectives","parseDirectives") {
        BEGIN_CASE("1","僨傿儗僋僥傿僽傪惓偟偔張棟偱偒傞") {
            Singleton<Namespace>::renewInstance();
            stringstream buf;
            Directives_test api("pragma");

            buf.str("pragma\nnext\n");
            Parser p(&buf, "test");

            TestSuite::clearCheckpoints();
            bool result = true;
            try { Directives::parseDirectives(p); }
            catch(...) { result = false; }

            TEST_CASE("1","椺奜偼婲傜側偄", result);
            TEST_CASE("2","僨傿儗僋僥傿僽偺杮懱偑屇偽傟偰偄傞", TestSuite::isReached("Directives::body"));
        } END_CASE;

        BEGIN_CASE("2","夵峴側偟(晄惓僷儔儊乕僞)偱椺奜") {
            Singleton<Namespace>::renewInstance();
            stringstream buf;
            Directives_test api("pragma");

            buf.str("pragma next\n");
            Parser p(&buf, "test");

            TestSuite::clearCheckpoints();
            bool result = false;
            try { Directives::parseDirectives(p); }
            catch(...) { result = true; }

            TEST_CASE("1","椺奜偑婲傞", result);
            TEST_CASE("2","僨傿儗僋僥傿僽偺杮懱偑屇偽傟偰偄傞", TestSuite::isReached("Directives::body"));
        } END_CASE;

        BEGIN_CASE("3","夵峴側偟(EOF)偱椺奜") {
            Singleton<Namespace>::renewInstance();
            stringstream buf;
            Directives_test api("pragma");

            buf.str("pragma");
            Parser p(&buf, "test");

            TestSuite::clearCheckpoints();
            bool result = false;
            try { Directives::parseDirectives(p); }
            catch(...) { result = true; }

            TEST_CASE("1","椺奜偑婲傞", result);
            TEST_CASE("2","僨傿儗僋僥傿僽偺杮懱偑屇偽傟偰偄傞", TestSuite::isReached("Directives::body"));
        } END_CASE;
    } END_CASE;

    BEGIN_CASE("onFail","onFail") {
        BEGIN_CASE("1","body偱椺奜偑婲傞偲onFail偑師偺夵峴傑偱撉傒旘偽偡") {
            Singleton<Namespace>::renewInstance();
            stringstream buf;
            Directives_test api("pragma");
            buf.str("pragma parameter\nnext\n");
            Parser p(&buf, "test");

            api.throws = true;
            bool result = false;
            try { Directives::parseDirectives(p); }
            catch(...) { result = true; }

            TEST_CASE("1","椺奜偑婲傞", result);
            TEST_CASE("2","巆偭偨撪梕偑惓偟偄", p.getToken() == "next");
            TEST_CASE("3","僩乕僋儞偼峴摢", p.isHeadofLine());
        } END_CASE;
    } END_CASE;
            
    Singleton<Namespace>::restoreContext(context);
}

#endif



⌨️ 快捷键说明

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