Ejemplo n.º 1
0
Archivo: test.c Proyecto: fdy84/amulet
int main()
{
    gVar = (int *)malloc((sizeof(int))*CL*RTN);
    
    
    inittest();
    
    
    
    gq = Queue_new();
    
    t0 = clock();
    
    printf("Starting Test 1 ...\n");
    
    start_multi(0);
    
    wait_multi();
    
    //t2 = clock();
    
    //if ( checkresult != 0 )
    //    return -1;
    
    printf("TEST 1 , Multi In.\n");
    printf("         PUT USE : %f seconds\n", (double)(t1 - t0) / CLOCKS_PER_SEC);
    //printf("         GET USE : %f seconds\n", (double)(t2 - t0) / CLOCKS_PER_SEC);
    
    
    
    
    t0 = clock();
    
    printf("Starting Test 2 ...\n");
    
    start_multi(1);
    
    wait_multi2();
    
    //t1 = clock();
    
    if ( checkresult() != 0 )
        return -1;
    
    printf("TEST 2 , Multi Out.\n");
    //printf("         PUT USE : %f seconds\n", (double)(t1 - t0) / CLOCKS_PER_SEC);
    printf("         GET USE : %f seconds\n", (double)(t2 - t0) / CLOCKS_PER_SEC);
    
    
    
    
    
    inittest();
    
    
    
    
    gq = Queue_new();
    
    t0 = clock();
    
    printf("Starting Test 3 ...\n");
    
    start_multi(0);
    
    single_get();
    
    t2 = clock();
    
    wait_multi();
    
    if ( checkresult() != 0 )
        return -1;
    
    printf("TEST 3 , Multi In Single Out.\n");
    printf("         PUT USE : %f seconds\n", (double)(t1 - t0) / CLOCKS_PER_SEC);
    printf("         GET USE : %f seconds\n", (double)(t2 - t0) / CLOCKS_PER_SEC);
    
    
    
    
    
    
    inittest();
    
    
    
    
    gq = Queue_new();
    
    t0 = clock();
    
    printf("Starting Test 4 ...\n");
    
    single_put();
    
    t1 = clock();

    printf("TEST 4 , Single In .\n");
    printf("         PUT USE : %f seconds\n", (double)(t1 - t0) / CLOCKS_PER_SEC);
    //printf("         GET USE : %f seconds\n", (double)(t2 - t0) / CLOCKS_PER_SEC);
    
    
    
    
    t0 = clock();
    
    printf("Starting Test 5 ...\n");
    
    start_multi(2);
    
    wait_multi2();
    
    //t1 = clock();
    
    if ( checkresult() != 0 )
        return -1;
    
    printf("TEST 5 , Multi Out 2.\n");
    //printf("         PUT USE : %f seconds\n", (double)(t1 - t0) / CLOCKS_PER_SEC);
    printf("         GET USE : %f seconds\n", (double)(t2 - t0) / CLOCKS_PER_SEC);
    
    
    
    
    
    inittest();
    
    
    
    
    gq = Queue_new();
    
    t0 = clock();
    
    printf("Starting Test 6 ...\n");
    
    start_multi(0);
    start_multi(1);
    
    wait_multi();
    wait_multi2();
    
    if ( checkresult() != 0 )
        return -1;
    
    printf("TEST 6 , Multi In Multi Out.\n");
    printf("         PUT USE : %f seconds\n", (double)(t1 - t0) / CLOCKS_PER_SEC);
    printf("         GET USE : %f seconds\n", (double)(t2 - t0) / CLOCKS_PER_SEC);
    
    
    
    
    inittest();

    
    
    gq = Queue_new();
    
    t0 = clock();
    
    printf("Starting Test 7 ...\n");
    
    start_multi(0);
    start_multi(2);
    
    wait_multi();
    wait_multi2();
    
    if ( checkresult() != 0 )
        return -1;
    
    printf("TEST 7 , Multi In Multi Out 2.\n");
    printf("         PUT USE : %f seconds\n", (double)(t1 - t0) / CLOCKS_PER_SEC);
    printf("         GET USE : %f seconds\n", (double)(t2 - t0) / CLOCKS_PER_SEC);
    
    
    
    
    return 0;
}
Ejemplo n.º 2
0
int CmdLineParser::get_option(char** val)
{
    CmdLineParser::Option* opt_obj;

    if (!_argv) {
        THROW("unexpected");
    }

    if (_multi_args) {
        THROW("in multi args mode");
    }

    if (_done) {
        THROW("is done");
    }

    int long_index;

    int opt = getopt_long(_argc, _argv, _short_options.c_str(), &_long_options[0], &long_index);

    switch (opt) {
    case 0: {
        if (!(opt_obj = find(_long_options[long_index].val))) {
            THROW("long option no found");
        }

#ifdef DISABLE_ABBREVIATE
        int name_pos =
            (opt_obj->type == REQUIRED_ARGUMENT && optarg[-1] != '=')
            ? optind - 2
            : optind - 1;
        std::string cmd_name(_argv[name_pos] + 2);
        if (cmd_name.find(opt_obj->name) != 0) {
            Platform::term_printf("%s: invalid abbreviated option '--%s'\n", _argv[0], cmd_name.c_str());
            return OPTION_ERROR;
        }
#endif

        if (opt_obj->seperator) {
            *val = start_multi(optarg, opt_obj->seperator);
        } else {
            *val = optarg;
        }
        opt_obj->is_set = true;
        return opt_obj->id;
    }
    case -1: {
        *val = NULL;
        if (!_positional_args && optind != _argc) {
            Platform::term_printf("%s: unexpected positional arguments\n", _argv[0]);
            return OPTION_ERROR;
        }
        if ((opt_obj = find_missing_opt())) {
            Platform::term_printf("%s: option --%s is required\n", _argv[0], opt_obj->name.c_str());
            return OPTION_ERROR;
        }
        _done = true;
        return OPTION_DONE;
    }
    case '?':
        if (optopt >= 255) {
            opt_obj = find(optopt);
            ASSERT(opt_obj);

#ifdef DISABLE_ABBREVIATE
            std::string cmd_name(_argv[optind - 1] + 2);
            if (cmd_name.find(opt_obj->name) != 0) {
                Platform::term_printf("%s: invalid option '--%s'\n", _argv[0], cmd_name.c_str());
                return OPTION_ERROR;
            }
#endif
            Platform::term_printf("%s: option --%s requires an argument\n",
                                  _argv[0], opt_obj->name.c_str());
        } else if (optopt == 0) {
            Platform::term_printf("%s: invalid option '%s'\n", _argv[0], _argv[optind - 1]);
        } else if ((opt_obj = find((char)optopt))) {
            Platform::term_printf("%s: option '-%c' requires an argument\n",
                                  _argv[0], opt_obj->short_name);
        } else {
            Platform::term_printf("%s: invalid option '-%c'\n", _argv[0], char(optopt));
        }
        return OPTION_ERROR;
    default:
        if (opt > 255 || !(opt_obj = find((char)opt))) {
            *val = NULL;
            return OPTION_ERROR;
        }
        if (opt_obj->seperator) {
            *val = start_multi(optarg, opt_obj->seperator);
        } else {
            *val = optarg;
        }
        opt_obj->is_set = true;
        return opt_obj->id;
    }
}