示例#1
0
TEST(tuple_gen,servePoolSim) {
    CServerPoolSimple gen;
    gen.Create(cdSEQ_DIST, 
               0x30000001,  0x40000001, 64000,10);
    CTupleBase result;
    uint32_t result_dest;

    for(int i=0;i<10;i++) {
        gen.GenerateTuple(result);
        printf(" S:%x \n",result.getServer());

        result_dest = result.getServer();
        EXPECT_EQ(result_dest, (uint32_t) (((0x30000001+i)) ) );
    }

    gen.Delete();

    gen.Create(cdSEQ_DIST, 
               0x30000001,  0x30000003, 64000,1000);

    for(int i=0;i<10;i++) {
        gen.GenerateTuple(result);
        printf(" S:%x \n",result.getServer());

        result_dest = result.getServer();
        EXPECT_EQ(result_dest, (uint32_t) (((0x30000001+i%3)) ) );
    }

    gen.Delete();
    //    EXPECT_EQ((size_t)0, gen.m_clients.size());
}
示例#2
0
TEST(tuple_gen_2,template2) {
    CTupleGeneratorSmart gen;
    gen.Create(1, 1);
    gen.add_client_pool(cdSEQ_DIST,0x10000001,0x1000000f,64000,4,NULL,0,0);
    gen.add_server_pool(cdSEQ_DIST,0x30000001,0x40000001,64000,4,false);
    CTupleTemplateGeneratorSmart template_1;
    template_1.Create(&gen,0,0);
    template_1.SetW(10);

    CTupleBase result;


    int i;
    for (i=0; i<20; i++) {
        template_1.GenerateTuple(result);
        uint32_t result_src = result.getClient();
        uint32_t result_dest = result.getServer();
        uint16_t result_port = result.getClientPort();
        //printf(" %x %x %x \n",result_src,result_dest,result_port);
        EXPECT_EQ(result_src, (uint32_t)(0x10000001+(i/10)));
        EXPECT_EQ(result_dest, (uint32_t)(((0x30000001+ (i/10) )) ));
        EXPECT_EQ(result_port,   1024+(i%10));
    }

    template_1.Delete();
    gen.Delete();
}
示例#3
0
TEST(tuple_gen,try_to_free) {
    CTupleGeneratorSmart gen;
    gen.Create(1, 1); 
    gen.add_client_pool(cdSEQ_DIST,0x10000001,0x10000001,64000,4,NULL,0,0);
    gen.add_server_pool(cdSEQ_DIST,0x30000001,0x400000ff,64000,4,false);
    CTupleTemplateGeneratorSmart template_1;
    template_1.Create(&gen,0,0);

    CTupleBase result;


    int i;
    for (i=0; i<65557; i++) {
        template_1.GenerateTuple(result);
        uint32_t result_src = result.getClient();
        uint32_t result_dest = result.getServer();
        uint16_t result_port = result.getClientPort();
        gen.FreePort(0,result.getClientId(),result_port);
    }
    // should have error
    EXPECT_FALSE((gen.getErrorAllocationCounter()>0)?true:false);

    template_1.Delete();
    gen.Delete();
}
示例#4
0
/* tuple generator using CClientInfoL*/
TEST(tuple_gen_2,GenerateTuple) {
    CTupleGeneratorSmart gen;
    gen.Create(1, 1); 
    gen.add_client_pool(cdSEQ_DIST,0x10000001,0x10000f01,64000,4,NULL,0,0);
    gen.add_server_pool(cdSEQ_DIST,0x30000001,0x40000001,64000,4,false);
    CTupleTemplateGeneratorSmart template_1;
    template_1.Create(&gen,0,0);
    CTupleBase result;
    uint32_t result_src;
    uint32_t result_dest;
    uint16_t result_port;

    for(int i=0;i<10;i++) {
        template_1.GenerateTuple(result);
        printf(" C:%x S:%x P:%d \n",result.getClient(),result.getServer(),result.getClientPort());

        result_src = result.getClient();
        result_dest = result.getServer();
        result_port = result.getClientPort();
        EXPECT_EQ(result_src, (uint32_t)(0x10000001+i));
        EXPECT_EQ(result_dest, (uint32_t) (((0x30000001+i)) ) );
        EXPECT_EQ(result_port, 1024);
    }

    gen.Delete();
//    EXPECT_EQ((size_t)0, gen.m_clients.size());
}
示例#5
0
TEST(tuple_gen,GenerateTupleMac) {
    CFlowGenList  fl;
    fl.Create();
    fl.load_from_mac_file("avl/mac_uit.yaml");

    CClientPool gen;
    gen.Create(cdSEQ_DIST, 
               0x10000001,  0x1000000f, 64000,2, &fl.m_mac_info,true,0,0);

    CTupleBase result;
    uint32_t result_src;
    uint16_t result_port;
    mac_addr_align_t* result_mac;
    for(int i=0;i<10;i++) {
        gen.GenerateTuple(result);
        printf(" C:%x P:%d \n",result.getClient(),result.getClientPort());

        result_src = result.getClient();
        result_port = result.getClientPort();
        result_mac = result.getClientMac();
        EXPECT_EQ(result_src, (uint32_t)(0x10000001+i%2));
        EXPECT_EQ(result_port, 1024+i/2);
        printf("i:%d,mac:%d\n",i,result_mac->mac[3]);
        if (i%2==0)
            EXPECT_EQ(result_mac->mac[3], 5);
        else
            EXPECT_EQ(result_mac->mac[3], 1);
    }

    gen.Delete();
//    EXPECT_EQ((size_t)0, gen.m_clients.size());
}
示例#6
0
TEST(tuple_gen,GenerateTuple2) {
    CClientPool c_gen;
    CClientPool c_gen_2;
    c_gen.Create(cdSEQ_DIST, 
               0x10000001,  0x1000000f, 64000,4,NULL,false, 
               0,0);
    CServerPool s_gen;
    CServerPool s_gen_2;
    s_gen.Create(cdSEQ_DIST, 
               0x30000001,  0x30000ff1, 64000,10);
    CTupleBase result;

    uint32_t result_src;
    uint32_t result_dest;
    uint16_t result_port;

    for(int i=0;i<200;i++) {
        c_gen.GenerateTuple(result);
        s_gen.GenerateTuple(result);
      //  gen.Dump(stdout);
      //  fprintf(stdout, "i:%d\n",i);
        result_src = result.getClient();
        result_dest = result.getServer();
        result_port = result.getClientPort();
        EXPECT_EQ(result_src, (uint32_t)(0x10000001+i%15));
        EXPECT_EQ(result_dest, (uint32_t)((0x30000001+i) ) );
        EXPECT_EQ(result_port, 1024+i/15);
    }

    s_gen.Delete();
    c_gen.Delete();
//    EXPECT_EQ((size_t)0, gen.m_clients.size());
    c_gen.Create(cdSEQ_DIST, 
               0x10000001,  0x1000000f, 64000,400,NULL,false, 
               0,0);
    s_gen.Create(cdSEQ_DIST, 
               0x30000001,  0x30000001, 64000,10);
    for(int i=0;i<200;i++) {
        s_gen.GenerateTuple(result);
        c_gen.GenerateTuple(result);
    //    gen.Dump(stdout);
       // fprintf(stdout, "i:%d\n",i);
        result_src = result.getClient();
        result_dest = result.getServer();
        result_port = result.getClientPort();
        EXPECT_EQ(result_src, (uint32_t)(0x10000001+i%15));
        EXPECT_EQ(result_dest, (uint32_t) (((0x30000001)) ) );
        EXPECT_EQ(result_port, 1024+i/15);
    }

    s_gen.Delete();
    c_gen.Delete();


}
/* UIT of CClientPool, using CClientInfo */
TEST(tuple_gen,clientPool) {
    CClientPool gen;
    gen.Create(cdSEQ_DIST, 
               0x10000001,  0x10000021, 64000,1000, g_dummy,
               0,0);
    CTupleBase result;
    uint32_t result_src;
    uint16_t result_port;

    for(int i=0;i<10;i++) {
        gen.GenerateTuple(result);
        printf(" C:%x P:%d \n",result.getClient(),result.getClientPort());

        result_src = result.getClient();
        result_port = result.getClientPort();
        EXPECT_EQ(result_src, (uint32_t)(0x10000001+i));
        EXPECT_EQ(result_port, 1024);
    }

    gen.Delete();
//    EXPECT_EQ((size_t)0, gen.m_clients.size());
}
TEST(tuple_gen,template1) {
    CTupleGeneratorSmart gen;
    gen.Create(1, 1); 
    gen.add_client_pool(cdSEQ_DIST,0x10000001,0x1000000f,64000,4, g_dummy, 0, 0);
    gen.add_server_pool(cdSEQ_DIST,0x30000001,0x40000001,64000,4,false);
    CTupleTemplateGeneratorSmart template_1;
    template_1.Create(&gen,0,0);
    template_1.SetSingleServer(true,0x12121212,0,0);
    CTupleBase result;


    int i;
    for (i=0; i<10; i++) {
        template_1.GenerateTuple(result);
        uint32_t result_src = result.getClient();
        uint32_t result_dest = result.getServer();
        //printf(" %x %x %x \n",result_src,result_dest,result_port);
        EXPECT_EQ(result_src, (uint32_t)(0x10000001+i));
        EXPECT_EQ(result_dest, (uint32_t)(((0x12121212)) ));
    }

    template_1.Delete();
    gen.Delete();
}
TEST(tuple_gen_2,GenerateTuple2) {
    CTupleGeneratorSmart gen;
    gen.Create(1, 1);
    gen.add_client_pool(cdSEQ_DIST,0x10000001,0x1000000f,64000,4,g_dummy,0,0);
    gen.add_server_pool(cdSEQ_DIST,0x30000001,0x40000001,64000,4,false);
    CTupleTemplateGeneratorSmart template_1;
    template_1.Create(&gen,0,0);
    CTupleBase result;
    uint32_t result_src;
    uint32_t result_dest;
    uint16_t result_port;

    for(int i=0;i<200;i++) {
        template_1.GenerateTuple(result);
      //  gen.Dump(stdout);
      //  fprintf(stdout, "i:%d\n",i);
        result_src = result.getClient();
        result_dest = result.getServer();
        result_port = result.getClientPort();
        EXPECT_EQ(result_src, (uint32_t)(0x10000001+i%15));
        EXPECT_EQ(result_dest, (uint32_t)((0x30000001+i) ) );
        EXPECT_EQ(result_port, 1024+i/15);
    }

    gen.Delete();
//    EXPECT_EQ((size_t)0, gen.m_clients.size());
    gen.Create(1, 1); 
    gen.add_client_pool(cdSEQ_DIST,0x10000001,0x1000000f,64000,4,g_dummy,0,0);
    gen.add_server_pool(cdSEQ_DIST,0x30000001,0x40000001,64000,4,false);
    template_1.Create(&gen,0,0);
    for(int i=0;i<200;i++) {
        template_1.GenerateTuple(result);
    //    gen.Dump(stdout);
     //   fprintf(stdout, "i:%d\n",i);
        result_src = result.getClient();
        result_dest = result.getServer();
        result_port = result.getClientPort();
        EXPECT_EQ(result_src, (uint32_t)(0x10000001+i%15));
        EXPECT_EQ(result_dest, (uint32_t) (((0x30000001+i)) ) );
        EXPECT_EQ(result_port, 1024+i/15);
    }



}