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

📄 fc_binutils.cpp

📁 epson usb2.0 控制芯片 S1R72V05 固件程序。
💻 CPP
📖 第 1 页 / 共 4 页
字号:
            TEST_CASE("1","contents偺梫慺偑憹偊偰偄傞", fcbi.contents.size() == 1);

            const char * scope = fcbi.contents.find(MAKE_BASEADDRESS(0x100))->second + MAKE_OFFSETADDRESS(0x100);
            TEST_CASE("2","彂偒崬傑傟偰偄傞撪梕偑惓偟偄", *scope == 0);
        } END_CASE;

        BEGIN_CASE("2","懚嵼偡傞儁乕僕傊偺彂偒崬傒 (楢懕傾僋僙僗)") {
            fcbi.writeByte(0x100, 0xff);

            TEST_CASE("1","contents偺梫慺偑憹偊偰偄側偄", fcbi.contents.size() == 1);

            const char * scope = fcbi.contents.find(MAKE_BASEADDRESS(0x100))->second + MAKE_OFFSETADDRESS(0x100);
            TEST_CASE("2","彂偒崬傑傟偰偄傞撪梕偑惓偟偄", *scope == 0xff);
        } END_CASE;

        BEGIN_CASE("3","怴偟偄儁乕僕傊偺彂偒崬傒") {
            fcbi.writeByte(0x10000000, 0xff);

            TEST_CASE("1","contents偺梫慺偑憹偊偰偄傞", fcbi.contents.size() == 2);

            const char * scope = fcbi.contents.find(MAKE_BASEADDRESS(0x10000000))->second + MAKE_OFFSETADDRESS(0x10000000);
            TEST_CASE("2","彂偒崬傑傟偰偄傞撪梕偑惓偟偄", *scope == 0xff);
        } END_CASE;

        BEGIN_CASE("4","婛懚偺儁乕僕傊偺傾僋僙僗") {
            fcbi.writeByte(0x100, 0x0);

            TEST_CASE("1","contents偺梫慺偑憹偊偰偄側偄", fcbi.contents.size() == 2);

            const char * scope = fcbi.contents.find(MAKE_BASEADDRESS(0x100))->second + MAKE_OFFSETADDRESS(0x100);
            TEST_CASE("2","彂偒崬傑傟偰偄傞撪梕偑惓偟偄", *scope == 0x0);
        } END_CASE;
    } END_CASE;

    BEGIN_CASE("readRecord","readRecord") {
        fstream file("test",ios::out);
        file << "S315080480F42F6C69622F6C642D6C696E75782E736F98\n\nS315080480F42F6C69622F6C642D6C696E75782E736F98\nS308080481042E320005\nDUMMY\nS31808048108040000001000000001000000474E550056\nS31008048108040000001000000001000000474E550056\n";
        file.close();

        file.open("test",ios::in);
        BEGIN_CASE("1","惓忢働乕僗") {
            string work;
            bool result;
            bool exception = false;
            try { result = readRecord(file, work); } catch(Exception &) { exception = true; }
            TEST_CASE("1","椺奜偼婲偙傜側偄", !exception);
            TEST_CASE("2","娭悢偼true傪曉偡", result);
            TEST_CASE("3","撉傒弌偝傟偨撪梕偑惓偟偄", work.compare("S315080480F42F6C69622F6C642D6C696E75782E736F98") == 0);
        } END_CASE;

        BEGIN_CASE("2","惓忢働乕僗 (嬻峴偺撉傒旘偽偟)") {
            string work;
            bool result;
            bool exception = false;
            try { result = readRecord(file, work); } catch(Exception &) { exception = true; }
            TEST_CASE("1","椺奜偼婲偙傜側偄", !exception);
            TEST_CASE("2","娭悢偼true傪曉偡", result);
            TEST_CASE("3","撉傒弌偝傟偨撪梕偑惓偟偄", work.compare("S315080480F42F6C69622F6C642D6C696E75782E736F98") == 0);
        } END_CASE;

        BEGIN_CASE("3","僠僃僢僋僒儉偑岆偭偰偄傞僄儞僩儕") {
            string work;
            bool result;
            bool exception = false;
            try { result = readRecord(file, work); } catch(Exception &) { exception = true; }
            TEST_CASE("1","椺奜傪偍偙偡", exception);
        } END_CASE;

        BEGIN_CASE("4","愭摢偑S偱巒傑傜側偄僄儞僩儕") {
            string work;
            bool result;
            bool exception = false;
            try { result = readRecord(file, work); } catch(Exception &) { exception = true; }
            TEST_CASE("1","椺奜傪偍偙偡", exception);
        } END_CASE;

        BEGIN_CASE("5","巜掕偝傟偨挿偝傛傝傕挿偄僄儞僩儕") {
            string work;
            bool result;
            bool exception = false;
            try { result = readRecord(file, work); } catch(Exception &) { exception = true; }
            TEST_CASE("1","椺奜傪偍偙偡", exception);
        } END_CASE;

        BEGIN_CASE("6","巜掕偝傟偨挿偝傛傝傕抁偄僄儞僩儕") {
            string work;
            bool result;
            bool exception = false;
            try { result = readRecord(file, work); } catch(Exception &) { exception = true; }
            TEST_CASE("1","椺奜傪偍偙偡", exception);
        } END_CASE;

        BEGIN_CASE("7","僼傽僀儖廔抂") {
            string work;
            bool result;
            bool exception = false;
            try { result = readRecord(file, work); } catch(Exception &) { exception = true; }
            TEST_CASE("1","椺奜傪偍偙偝側偄", !exception);
            TEST_CASE("2","娭悢偼false傪曉偡", !result);
        } END_CASE;

        remove("test");
    } END_CASE;

    BEGIN_CASE("chopRecord","chopRecord") {
        BEGIN_CASE("1","S1儗僐乕僪") {
            string src("S106080480F42F4A");

            chopRecord(src);
            TEST_CASE("1","抣偑惓偟偄", src.compare("80F42F") == 0);
        } END_CASE;

        BEGIN_CASE("2","S2儗僐乕僪") {
            string src("S206080480F42F4A");

            chopRecord(src);
            TEST_CASE("1","抣偑惓偟偄", src.compare("F42F") == 0);
        } END_CASE;

        BEGIN_CASE("3","S3儗僐乕僪") {
            string src("S306080480F42F4A");

            chopRecord(src);
            TEST_CASE("1","抣偑惓偟偄", src.compare("2F") == 0);
        } END_CASE;

        BEGIN_CASE("4","S4儗僐乕僪") {
            string src("S406080480F42F4A");

            chopRecord(src);
            TEST_CASE("1","抣偑惓偟偄", src.compare("080480F42F") == 0);
        } END_CASE;

        BEGIN_CASE("5","S5儗僐乕僪") {
            string src("S506080480F42F4A");

            chopRecord(src);
            TEST_CASE("1","抣偑惓偟偄", src.compare("080480F42F") == 0);
        } END_CASE;

    } END_CASE;

    BEGIN_CASE("loadDataContents/loadContents","loadDataContents/loadContents") {
        fstream file("test", ios::out);
        file << "S30D000000000123456789ABCDEF32\nS509FEDCBA9876543210BE";
        file.close();

        BEGIN_CASE("1","惓忢働乕僗") {
            FileContainerBinutilsImpl fcbi;

            file.open("test",ios::in);
            bool exception = false;
            try { fcbi.loadDataContents(file); } catch(...) { exception = true; }

            TEST_CASE("1","椺奜偼婲偙傜側偄", !exception);
            TEST_CASE("2","僨乕僞偑妋曐偝傟偰偄傞", fcbi.contents.size() == 1);
            TEST_CASE("3","僼傽僀儖偼暵偠傜傟偰偄傞", !file.is_open());
            BEGIN_CASE("4","奿擺偟偨抣偑惓偟偔撉傔傞") {
                unsigned int i;

                assert(sizeof(unsigned int) >= 4);
                i = 0;
                
                fcbi.loadContents(&i, 0, 4);
                TEST_CASE("1","1-4僶僀僩栚", i == 0x67452301);
                fcbi.loadContents(&i, 4, 4);
                TEST_CASE("1","5-8僶僀僩栚", i == 0xefcdab89);
                fcbi.loadContents(&i, 8, 4);
                TEST_CASE("1","9-12僶僀僩栚", i == 0x98badcfe);
                fcbi.loadContents(&i,12, 4);
                TEST_CASE("1","13-16僶僀僩栚", i == 0x10325476);
            } END_CASE;
        } END_CASE;
        remove("test");

        BEGIN_CASE("2","loadContents偱堦搙偵儁乕僕僒僀僘傪挻偊傞検傪梫媮偡傞") {
            FileContainerBinutilsImpl fcbi;
            unsigned int i;

            for(i=0;i<SIZE_LOADPAGE*2;++i)
                fcbi.writeByte(i, i);

            unsigned char * buffer = new unsigned char [SIZE_LOADPAGE * 2];
            fcbi.loadContents(buffer, 0, SIZE_LOADPAGE * 2);

            for(i=0;i<SIZE_LOADPAGE*2;++i)
                if(*(buffer + i) != (i & 0xff))
                    TEST_FAIL;

            delete [] buffer;
        } END_CASE;

    } END_CASE;

    BEGIN_CASE("searchSymbolPrefix","searchSymbolPrefix") {

        BEGIN_CASE("1","僾儗僼傿僋僗偑側偄") {
            FileContainerBinutilsImpl fcbi;
            fcbi.symbol_table.insert(pair<string, address_t>(MAGIC_SYMBOL, 0x100));

            fcbi.searchSymbolPrefix();
            if(!fcbi.symbol_prefix.empty())
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("2","曄悢柤偵\"_\"偑偮偔僞僀僾") {
            FileContainerBinutilsImpl fcbi;
            fcbi.symbol_table.insert(pair<string, address_t>("_" MAGIC_SYMBOL, 0x100));

            fcbi.searchSymbolPrefix();
            if(fcbi.symbol_prefix.compare("_") != 0)
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("3","\"__\"偵偼斀墳偟側偄") {
            FileContainerBinutilsImpl fcbi;
            fcbi.symbol_table.insert(pair<string, address_t>("__" MAGIC_SYMBOL, 0x100));

            fcbi.searchSymbolPrefix();
            if(!fcbi.symbol_prefix.empty())
                TEST_FAIL;
        } END_CASE;
            
        BEGIN_CASE("4","敪尒偱偒側偄応崌丄曄峏偟側偄") {
            FileContainerBinutilsImpl fcbi;
            fcbi.symbol_prefix.assign("test");

            fcbi.searchSymbolPrefix();
            if(fcbi.symbol_prefix.compare("test") != 0)
                TEST_FAIL;
        } END_CASE;
    } END_CASE;

    BEGIN_CASE("searchByteOrder","searchByteOrder") {
        BEGIN_CASE("1","儂僗僩偲摨偠僄儞僨傿傾儞") {
            FileContainerBinutilsImpl fcbi;
            unsigned int value = MAGIC_NUMBER;
            fcbi.symbol_table.insert(pair<string, address_t>(MAGIC_SYMBOL, 0x100));

            for(int i=0;i<4;i++)
                fcbi.writeByte(0x100 + i, *((char *)&value + i));

            fcbi.byteorder = UNKNOWN;
            fcbi.searchByteOrder();

            if(fcbi.byteorder != HOSTORDER)
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("2","儂僗僩偲堘偆僄儞僨傿傾儞") {
            FileContainerBinutilsImpl fcbi;
            unsigned int value = MAGIC_NUMBER;
            fcbi.symbol_table.insert(pair<string, address_t>(MAGIC_SYMBOL, 0x100));

            for(int i=0;i<4;i++)
                fcbi.writeByte(0x100 + i, *((char *)&value + (3 - i)));

            fcbi.byteorder = UNKNOWN;
            fcbi.searchByteOrder();

            if(fcbi.byteorder == HOSTORDER)
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("3","僔儞儃儖偑柍偄") {
            FileContainerBinutilsImpl fcbi;
            unsigned int value = MAGIC_NUMBER;

            for(int i=0;i<4;i++)
                fcbi.writeByte(0x100 + i, *((char *)&value + (3 - i)));

            fcbi.byteorder = UNKNOWN;
            fcbi.searchByteOrder();

            if(fcbi.byteorder != UNKNOWN)
                TEST_FAIL;
        } END_CASE;

        BEGIN_CASE("4","僨乕僞偑柍偄") {
            FileContainerBinutilsImpl fcbi;
            unsigned int value = MAGIC_NUMBER;
            fcbi.symbol_table.insert(pair<string, address_t>(MAGIC_SYMBOL, 0x100));

            fcbi.byteorder = UNKNOWN;
            fcbi.searchByteOrder();

            if(fcbi.byteorder != UNKNOWN)
                TEST_FAIL;
        } END_CASE;
    } END_CASE;

    chain.restoreContext();
}

#endif /* TESTSUITE */

#endif /* FILECONTAINER_BINUTILS || TESTSUITE */

⌨️ 快捷键说明

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