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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? tcases.c

?? MMI層OBJ不能完全編譯
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
/******************************************************************************
 * Flash File System (ffs)
 * Idea, design and coding by Mads Meisner-Jensen, mmj@ti.com
 *
 * ffs test cases
 *
 * $Id: tcases.c 1.13.1.1.1.66 Thu, 08 Jan 2004 15:05:23 +0100 tsj $
 *
 ******************************************************************************/

#ifndef TARGET
#include "ffs.cfg"
#endif

#include "ffs/ffs_api.h"  // Temp 
#include "ffs/ffs.h"

#include "ffs/board/tffs.h"
#include "ffs/board/core.h" // only for block/object recovery test flags
#include "ffs/board/tdata.h"
#include "ffs/board/ffstrace.h"
#include "ffs/board/drv.h"
#include "ffs/pcm.h"

#if((TARGET == 1) || (RIV_ENV==1))
#include "rvf/rvf_api.h"  // this include rv_general.h and rvf_target.h
#include "rvm/rvm_use_id_list.h"
#endif

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <limits.h>
#include <assert.h>
#include <stddef.h>

#if (TARGET == 0)
#include <setjmp.h>
#endif

#define LUDIR  "/europe/sweden"
#define MFDIR "/pcm"

// TODO: reimplement test case bfull (not valid any more).

// TODO: Cleanup in beginning of each test case for as many cases as
// possible, so they can be re-run.

// TODO: Make as many cases as possible fully independent of number of
// blocks and size of blocks in ffs.

// TODO: Every testcase should test if it is applicable to the current
// environment, e.g. some tests are impossible if e have a 2 or 3 block
// file system.

// TODO: test case for testing age functionality
// TODO: Implement case_ren
// TODO: Implement case_rm

// NOTEME: DO something with test case flags (PC, IT, RND)?

// Should we make a test case where we use case_lsr to make map of objects (
// ensuring mapsize is prime). In a loop, we select a random object (object
// index[rnd%size]) and perform a random operation on that object?

// Should test data (tdata[]) be of sizes 2^n+n or Xn+n where n = 0..15

// Should all test files have suffix ".<tdata-index>"? This would make very
// easy data checking!

// Add compiler define: WITH_PCM

//unsigned char ffs_image[4*4*1024];
//int ffs_ram_image_address = (int) &ffs_image;


/******************************************************************************
 * Prototypes and Globals
 ******************************************************************************/

// Helper functions
int cleanup(int min_space);
int make_random_file(char *dirname, int max_size, int min_size);
int ignore_file(char *pathname);
int mkfs(void);
void list_rep_inodes();
int case_trace_mask(int p0, int p1);
int case_reinit(int p0, int p1);
int case_debug_help(int p0, int p1);

struct object_s {
    char *name;
    struct xstat_s stat;
};

const struct testcase_s testcase[];

// Benchmark (not in use yet)
struct results_s {
    int w16B;
    int w256B;
    int w4096B;
    int rew4096B;
    int r16B;
    int r256B;
    int r4096B;
    int lfile;
    int ldir;
    int lonef;
};

/******************************************************************************
 * Collective Test Cases
 ******************************************************************************/

// test cases: all, alot, most, much + specific ones 

// NOTEME: removed test case_find() from alot, tall and test because there is no
// buffer overflow check

int case_all(int p0, int p1)
{
#if (TARGET == 1)
    UINT32 time_begin, elapsed;
    time_begin = tffs_timer_begin();
#endif
    // We have to run test case 'init' after test case 'format'. This is
    // because 'init' test case calls test_ffs_params_get() which
    // initializes variables used in many of the testcases.
    
    error = test_run("ninit;format;i;world;eu;pcm;apiexc;"
                     "bigf;open;rw;seek;append;ren;mopen;"
                     "jnl;irec;ibrec;drec;trunc;dbrec;stat;"
                     "lu;fc;root;dirs;frd;bfull;dsync;"
                     "ssym;ri;x;fwflags;query;octrl;pfblkh;pfob;pfframe");
#if (TARGET == 1)
    elapsed = tffs_timer_end(time_begin);
    ttw(ttr(TTrAll, "Time elapsed %ds" NL, elapsed / 1000));
#endif

    test_statistics_print();

    return error;
    // Not implemented test cases...
    return test_run("rm;pcm;");
}

int case_alot(int p0, int p1)
{
    return test_run("ninit;format;ri;i;ri;world;ri;eu;ri;fwflags;ri;"
                    "bigf;ri;open;ri;rw;ri;seek;ri;append;ri;ren;ri;"
                    "jnl;ri;irec;ri;dbrec;ri;stat;ri;trunc;ri;mopen;ri;"
                    "lu;ri;fc;ri;root;ri;dirs;ri;frd;ri;bfull;ri;"
                    "ssym;ri;x;ri;dsync;ri;pcm;ri;query;ri;octrl");
}

// NOTEME: removed jnl and find
int case_tall(int p0, int p1)
{
    return test_run("ninit;format;i;world;eu;fwflags;"
                    "bigf;irec;drec;ren;apiexc;"
                    "stat;open;rw;seek;trunc;append;octrl;"
                    "lu;fc;root;dirs;frd;bfull;pcm;query;"
                    "ssym;x;ex;bf;nb;mopen;dsync");
}

// Ad hoc test case
int case_test(int p0, int p1)
{
    return test_run("format;i;world;eu;ri;mopen1;ri;fwflags;ri;"
                    "bigf;ri;jnl;ri;irec;ri;dbrec;ri;pcm;ri;"
                    "trunc1;ri;stat;open1;ri;rw1;ri;seek1;ri;ren;ri;"
                    "lu;ri;fc;ri;root;ri;dirs;ri;frd;ri;bfull;ri;"
                    "ssym;ri;x;ri;append;ri;dsync;ri;");
}

// Status: 11-08-2004 test run okay 
int case_power_fail(int p0, int p1)
{
    return test_run("pfblkh;pfob;pfframe;pfrjnl;pfrblkh;jnl;ibrec;dbrec;pfre");
}

extern struct dev_s dev;
// Agressive all. Run case 'all' for dev.numblocks in the range dev.numblocks..4
int case_aall(int p0, int p1)
{
    char myname[20];

    int i, failed = 0;
   
    if (dev.numblocks * dev.blocksize > 1024*1024)
        strcpy(myname, "/ffs/b999");
    else
        strcpy(myname, "/ffs/b99");

    /** There's no need to test for i=127,126,125,124..3,2,1. So for i
     * >= 20 we progress a little faster. */
    for (i = dev.numblocks; i >= 3; i -= (i >= 20 ? i/4 : 1))
    {
        tw(tr(TR_FUNC, TrTest, "TEST aall. %d\n", i));
        ttw(ttr(TTrTest, "TEST aall. %d" NL, i));

        error = tffs_preformat(0xDEAD);
        expect(error, EFFS_OK);

        sprintf(myname, "/ffs/b%d", i);
        tffs_format(myname, 0x2BAD);
        expect(error, EFFS_OK);
        
        failed += test_run("i;world;eu;bigf;bfull;"
                           "jnl;irec;drec;dbrec;stat;dsync;"
                           "open;rw;seek;trunc;ren;mopen;"
                           "lu;fc;root;dirs;frd;append;" 
                           "ssym;find;ri;x");

    }
    return failed;
}

// This is a collection of all failing testcases to be investigated.
int case_fail(int p0, int p1)
{
    int result;
    const char imeifile[] = "/europe/norway/IMEI";

    switch (p0) {
    case 1:
        tw(tr(TR_FUNC, TrTestHigh, 
              "remember to run case_fcontrol before this one\n"));
        // Make symlink to imeifile and try to update it
        error = tffs_symlink("/europe/imie", imeifile);
        expect(error, EFFS_ACCESS);

        error = tffs_file_write("/europe/imie", TDATA(1), FFS_O_CREATE | FFS_O_TRUNC);
        expect(error, EFFS_ACCESS);
        break;
    case 2:    
        if (1) {
            const char bigfile[] = "/iceberg";
            int bytes_max, file_size;
            char myname[] = "/ffs/b7";

            error = tffs_preformat(0xDEAD);
            expect(error, EFFS_OK);

            error = tffs_format(myname, 0x2BAD);
            expect(error, EFFS_OK);

            ffs_query(Q_BYTES_FREE, (uint32 *) &bytes_max);
  
// File the system with this huge file
            file_size = bytes_max;

            ttw(ttr(TTrTest, "Bigfile of size %d" NL, file_size));
            tw(tr(TR_FUNC, TrTestHigh, "Bigfile of size %d\n", file_size));

            error = tffs_file_write(bigfile, (char *) tdata[TDATA_HUGE], file_size, FFS_O_CREATE | FFS_O_EXCL);
            expect(error, EFFS_OK);
        }
        break;
            
    default:
        result = 1;
    }
        return result;
}

int case_okay(int p0, int p1)
{

    tw(tr(TR_FUNC, TrTest, "journal size %d\n", fs.journal_size));
    tw(tr(TR_FUNC, TrTest, "journal entry size %d\n", sizeof(struct journal_s)));

    return 0;
}


// Run testcases in a random order. Only the test cases in the test case
// table that are marked as re-runnable, are run.
int case_rand(int p0, int p1)
{
    int i, n, seed, max = 0, error = 0;
    const struct testcase_s *p;
// This is a way to activate trace at a defined test number. If rand
// test number 134 fail it is possible to activate trace at test number
// 133 etc. Note we have to change activate_trace_nr manual before compile.
    int activate_trace_nr = 0;       
    int trace_mask = 0xFFDFF;
// NOTE: use p1 as active_trace_nr? or make it

    p0 = (p0 == 0 ? 117 : p0); // Number of test cases to run
    p1 = (p1 == 0 ? 567 : p1); // Initial seed
    seed = p1;
    if (seed == 1) {
        ; // TODO: Set seed as a variable of current time
    }

    // TODO: Initialize seed from p1.

    // First count total number of test cases
    for (p = testcase; p->name; p++)
        max++;

    tw(tr(TR_FUNC, TrTestHigh,
          "Number of available random test cases = %d\n", max));

    for (i = 0; i < p0; i++)
    {
        do {
            n = rand() % max;
        } while ((testcase[n].flags & RND) == 0);

        if ((i + 1) == activate_trace_nr) {
#if (TARGET == 0)
            tr_init(trace_mask, 2, 0 );
#else
            ttr_init(trace_mask);
#endif
            tw(tr_bstat());
        }

        tw(tr(TR_FUNC, TrTest, "Nr: %d", i + 1));
        ttw(ttr(TTrTest, "Nr: %d" NL, i + 1));
        
        if ((error = test_run(testcase[n].name)))
            break;
    }
    
    if (p1 == 1)
        tw(tr(TR_FUNC, TrTestHigh, "Initial seed = %d\n", seed));
    
    test_statistics_print();
    return error;
}


/******************************************************************************
 * Population Tests
 ******************************************************************************/

int case_world(int p0, int p1)
{
    int i;
    const char *dirs[] = { "/antarctica",    "/africa",
                           "/asia",          "/europe",
                           "/north-america", "/south-america",
                           "/australia" };

    // Cleanup
    for (i = 0; i < sizeof(dirs)/sizeof(char *); i++) {
        tffs_remove(dirs[i]);
    }

    for (i = 0; i < sizeof(dirs)/sizeof(char *); i++) {
        error = tffs_mkdir(dirs[i]);
        expect(error, EFFS_OK);
    }
    return 0;
}


int case_europe(int p0, int p1)
{
    int i;
    const char *dirs[] = { "/europe/denmark", "/europe/sweden",
                           "/europe/norway",  "/europe/finland" };

    // Cleanup
    for (i = 0; i < sizeof(dirs)/sizeof(char *); i++) {
        error = tffs_remove(dirs[i]);
    }

    for (i = 0; i < sizeof(dirs)/sizeof(char *); i++) {
        error = tffs_mkdir(dirs[i]);
        expect(error, EFFS_OK);
    }
    return 0;
}

int case_denmark(int p0, int p1)
{
    // Cleanup
    tffs_remove("/europe/denmark/jutland");
    tffs_remove("/europe/denmark/sealand");

    error = tffs_mkdir("/europe/denmark/jutland");
    expect(error, EFFS_OK);
    error = tffs_mkdir("/europe/denmark/sealand");
    expect(error, EFFS_OK);

    return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人一区二区三区视频在线观看| 亚洲成人在线观看视频| 国产毛片精品视频| 久久久久国产精品麻豆| 国产精品一区二区免费不卡 | 国产精品久久久久久一区二区三区| 国产综合久久久久久久久久久久| 国产片一区二区| 91一区二区三区在线播放| 亚洲一区二区在线播放相泽| 欧美精品一级二级| 国产精品自拍网站| 亚洲人123区| 日韩片之四级片| 国产91色综合久久免费分享| 亚洲欧美日韩系列| 制服丝袜av成人在线看| 国产精品亚洲成人| 亚洲国产精品人人做人人爽| 日韩欧美久久久| 99久久精品国产一区二区三区 | 69av一区二区三区| 韩国女主播成人在线| 亚洲天天做日日做天天谢日日欢 | 在线观看国产日韩| 美女一区二区三区在线观看| 国产精品免费网站在线观看| 欧美天堂亚洲电影院在线播放 | 亚洲国产日韩a在线播放| 日韩欧美在线网站| 91网页版在线| 韩国v欧美v亚洲v日本v| 亚洲国产中文字幕在线视频综合| 精品福利一二区| 91成人免费电影| 国产成人av一区二区三区在线观看| 亚洲精品欧美在线| 中文字幕第一页久久| 69久久99精品久久久久婷婷| 91在线免费视频观看| 久久99久久99小草精品免视看| 亚洲欧洲精品一区二区三区 | 日韩国产精品久久| 自拍偷拍国产亚洲| 亚洲国产激情av| 欧美一区二区免费观在线| 日本国产一区二区| www.在线成人| 国产精品1区2区3区| 三级一区在线视频先锋| 亚洲视频在线一区| 国产精品久久久久久久久搜平片 | 国产精品色哟哟| 欧美成人精品1314www| 欧美在线观看你懂的| av在线播放不卡| 国产成人免费av在线| 免费成人性网站| 午夜精品久久久久久| 亚洲精品视频免费看| 亚洲三级免费观看| 亚洲人成电影网站色mp4| 亚洲国产高清aⅴ视频| 国产三级欧美三级日产三级99| 日韩欧美的一区二区| 制服丝袜亚洲色图| 欧美一区二区三区性视频| 欧美片网站yy| 91精品中文字幕一区二区三区| 在线观看视频一区二区欧美日韩| 97久久超碰精品国产| 成人高清视频在线观看| 成人亚洲一区二区一| 盗摄精品av一区二区三区| 国产福利一区二区三区在线视频| 国精品**一区二区三区在线蜜桃| 美女被吸乳得到大胸91| 精品一区二区三区免费| 精品在线免费观看| 国产精品综合久久| 成人性色生活片免费看爆迷你毛片| 国产精品原创巨作av| 不卡电影一区二区三区| 成人精品视频一区二区三区| 99精品视频在线观看| 一本到不卡精品视频在线观看| 91一区二区三区在线观看| 在线观看成人小视频| 制服丝袜亚洲精品中文字幕| 欧美一区二区成人| 久久你懂得1024| 国产精品乱码妇女bbbb| 亚洲色图视频免费播放| 亚洲成人av中文| 国内久久婷婷综合| 不卡一区二区三区四区| 在线观看国产日韩| 欧美电视剧在线看免费| 中文字幕精品在线不卡| 亚洲精品亚洲人成人网| 青青青伊人色综合久久| 国产麻豆视频精品| 色婷婷亚洲精品| 日韩视频一区二区在线观看| 久久综合九色综合97_久久久| 国产精品色哟哟网站| 亚洲成av人片观看| 国产一区激情在线| 色屁屁一区二区| 日韩欧美国产综合一区| 中文字幕欧美激情| 丝袜美腿亚洲色图| 福利电影一区二区| 在线电影一区二区三区| 久久久不卡网国产精品一区| 亚洲卡通欧美制服中文| 国内精品嫩模私拍在线| 在线中文字幕一区二区| 久久九九99视频| 亚洲午夜精品在线| 成人毛片在线观看| 欧美一区二区三区视频在线 | 欧美日韩综合在线免费观看| 欧美大片拔萝卜| 亚洲激情校园春色| 国产一区二区三区不卡在线观看 | 国产精品久久久久7777按摩| 日韩成人一级片| 一本久道久久综合中文字幕| 久久综合色婷婷| 亚洲午夜电影网| 成人免费毛片app| 日韩欧美在线一区二区三区| 一区二区三区四区乱视频| 国产麻豆91精品| 宅男在线国产精品| 一区二区三区四区在线| 成人国产一区二区三区精品| 91精品在线免费| 亚洲午夜激情网页| 一本色道久久综合狠狠躁的推荐 | 欧美性猛交一区二区三区精品| www久久久久| 青青青伊人色综合久久| 欧美视频一区二区| 亚洲精品网站在线观看| 成人ar影院免费观看视频| 欧美va亚洲va国产综合| 午夜电影网一区| 在线观看www91| 亚洲九九爱视频| 99精品一区二区三区| 中文字幕成人网| 成人激情免费电影网址| 久久综合久久鬼色中文字| 日本不卡123| 欧美一区二区三区四区视频| 亚洲午夜久久久久中文字幕久| 色欧美日韩亚洲| 樱桃视频在线观看一区| 9i在线看片成人免费| 国产欧美一区视频| 国产精品1区二区.| 国产欧美一区二区三区在线老狼| 精品亚洲porn| 国产性色一区二区| 国产91精品久久久久久久网曝门| 国产午夜一区二区三区| 成人一区二区三区视频在线观看| 国产欧美一区二区精品性| 国产福利91精品一区二区三区| 久久久亚洲精华液精华液精华液 | 日韩一区二区三区视频在线观看| 午夜不卡在线视频| 欧美一区二区女人| 国内精品在线播放| 国产精品久久三区| 色就色 综合激情| 亚洲成人资源网| 日韩免费观看高清完整版在线观看| 理论电影国产精品| 久久精品亚洲一区二区三区浴池| 丰满放荡岳乱妇91ww| 国产精品国产自产拍在线| 91香蕉视频在线| 日韩1区2区日韩1区2区| 欧美日本韩国一区| 久久国产精品一区二区| 国产日韩欧美精品电影三级在线| 99久久免费国产| 亚洲r级在线视频| 亚洲精品在线观看网站| 波多野结衣视频一区| 夜夜操天天操亚洲| 日韩一区二区三区观看| 国产精品99久久久久久有的能看| 国产精品成人免费在线| 欧美曰成人黄网| 青娱乐精品视频在线| 国产精品色眯眯|