OSDN Git Service

* BugFix for drcc_edittext.c : AllocTextInfo
authorKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Tue, 31 Mar 2015 20:18:01 +0000 (05:18 +0900)
committerKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Tue, 31 Mar 2015 20:18:01 +0000 (05:18 +0900)
drcc/drcc_edittext.c
drcc/test_drcc.h
drcc/test_drcc_edittext.c
drcc/test_drcc_filetype.c
drcc/test_main_drcc.c

index 8f487d2..8e7134f 100644 (file)
@@ -67,15 +67,17 @@ Drd64_Drcc_TextInfo *
        }
        p_textinfo      = NULL;
 
-       if(( 0 == dw_cnt ) && ( gdw_max_textinfo == gdw_alloc_textinfo ))       {
-               p_textinfo      = (Drd64_Drcc_TextInfo *)realloc(
-                               gp_textinfo, sizeof( Drd64_Drcc_TextInfo )
-                                       * (gdw_alloc_textinfo + DRD64_DRCC_DEFAULT_ALLOC_TEXTINFO ) );
-               if( NULL == p_textinfo )        { return NULL; }
-
-               gp_textinfo                     = p_textinfo;
-               gdw_alloc_textinfo      += DRD64_DRCC_DEFAULT_ALLOC_TEXTINFO;
-               p_textinfo      = NULL;
+       if( 0 == dw_cnt )       {
+               if( gdw_max_textinfo == gdw_alloc_textinfo )    {
+                       p_textinfo      = (Drd64_Drcc_TextInfo *)realloc(
+                                       gp_textinfo, sizeof( Drd64_Drcc_TextInfo )
+                                               * (gdw_alloc_textinfo + DRD64_DRCC_DEFAULT_ALLOC_TEXTINFO ) );
+                       if( NULL == p_textinfo )        { return NULL; }
+
+                       gp_textinfo                     = p_textinfo;
+                       gdw_alloc_textinfo      += DRD64_DRCC_DEFAULT_ALLOC_TEXTINFO;
+                       p_textinfo      = NULL;
+               }
                dw_cnt  = gdw_max_textinfo + 1;
        }
 
@@ -105,7 +107,8 @@ int
 {
        DWord   dw_id;
 
-       if( NULL == p_textinfo )        { return 0x01; }
+       if( NULL == p_textinfo )                { return 0x01; }
+       if( -1 == p_textinfo->i_id )    { return 0x02; }
 
        /* Clear TextInfo Struct */
        dw_id   = (DWord) p_textinfo->i_id;
@@ -155,12 +158,14 @@ DRCC_EDITTEXT_EXTERN      int
 
        if( NULL == gp_textinfo)        { return 0x01; }
        
+/*
        for( dw_cnt = gdw_max_textinfo; dw_cnt > 0; dw_cnt-- )  {
                p_textinfo      = (gp_textinfo + dw_cnt - 1);
                assert( NULL != p_textinfo );
 
                p_textinfo->i_id        = -1;
        }
+*/
 
        free( gp_textinfo );
        gp_textinfo     = NULL;
index 33d2786..b80d86d 100644 (file)
@@ -38,7 +38,7 @@ Comment:
 #define DRD64_HEADER_TEST_DRCC
 
 #include"CUnit/CUnit.h"
-#include"CUnit/Console.h"
+#include"CUnit/Basic.h"
 
 
 #ifdef DRD64_SRC_XXX
index 3776f65..6579bf4 100644 (file)
@@ -39,6 +39,49 @@ Comment:
 #include"test_drcc.h"
 
 
+/* DrCC_EditText_AllocTextInfo ****************************************/
+/*--------------------------------------------------------------------*/
+void Test_DrCC_EditText_AllocTextInfo_test00_001(void)
+{
+       int             i_cnt;
+       int             i_result;
+       Drd64_Drcc_TextInfo     *p_tinfo[DRD64_DRCC_DEFAULT_ALLOC_TEXTINFO * 2 + 2];
+
+       for( i_cnt = 0; i_cnt < (DRD64_DRCC_DEFAULT_ALLOC_TEXTINFO * 2); i_cnt++ )      {
+               p_tinfo[i_cnt]  = DrCC_EditText_AllocTextInfo();
+               CU_ASSERT_FATAL( NULL != p_tinfo[i_cnt] );
+               CU_ASSERT( i_cnt == p_tinfo[i_cnt]->i_id );
+       }
+
+       for( i_cnt = (DRD64_DRCC_DEFAULT_ALLOC_TEXTINFO / 2);
+                               i_cnt < ((DRD64_DRCC_DEFAULT_ALLOC_TEXTINFO / 2)
+                                                               + DRD64_DRCC_DEFAULT_ALLOC_TEXTINFO);
+                               i_cnt++ )       {
+               i_result        = DrCC_EditText_FreeTextInfo( p_tinfo[i_cnt] );
+               CU_ASSERT_FATAL( 0x00 == i_result );
+               p_tinfo[i_cnt]  = NULL;
+       }
+
+       for( i_cnt = (DRD64_DRCC_DEFAULT_ALLOC_TEXTINFO / 2);
+                               i_cnt < ((DRD64_DRCC_DEFAULT_ALLOC_TEXTINFO / 2)
+                                                               + DRD64_DRCC_DEFAULT_ALLOC_TEXTINFO);
+                               i_cnt++ )       {
+               p_tinfo[i_cnt]  = DrCC_EditText_AllocTextInfo();
+               CU_ASSERT_FATAL( NULL != p_tinfo[i_cnt] );
+       }
+               
+       for( i_cnt = 0; i_cnt < (DRD64_DRCC_DEFAULT_ALLOC_TEXTINFO * 2); i_cnt++ )      {
+               i_result        = DrCC_EditText_FreeTextInfo( p_tinfo[i_cnt] );
+               CU_ASSERT_FATAL( 0x00 == i_result );
+               p_tinfo[i_cnt]  = NULL;
+       }
+               
+
+       return;
+}
+
+
+/* DrCC_EditText_Init *************************************************/
 /*--------------------------------------------------------------------*/
 void Test_DrCC_EditText_Init_test00_001(void)
 {
@@ -56,7 +99,7 @@ void Test_DrCC_EditText_Init_test00_002(void)
        int             i_result;
 
        i_result        = DrCC_EditText_Init();
-       CU_ASSERT( 0x01 == i_result );
+       CU_ASSERT( 0x00 == i_result );
 
        return;
 }
@@ -80,7 +123,7 @@ void Test_DrCC_EditText_Term_test00_002(void)
        int             i_result;
 
        i_result        = DrCC_EditText_Term();
-       CU_ASSERT( 0x01 == i_result );
+       CU_ASSERT( 0x00 == i_result );
 
        return;
 }
@@ -97,11 +140,19 @@ int
 
        pt_edittext     = CU_add_suite( "DrCC_EditText", NULL, NULL );
 
-       CU_add_test( pt_edittext, "EditText_Init_test00_001", Test_DrCC_EditText_Init_test00_001 );
-       CU_add_test( pt_edittext, "EditText_Init_test00_002", Test_DrCC_EditText_Init_test00_002 );
+       CU_add_test( pt_edittext, "EditText_Init_test00_001",
+                                                               Test_DrCC_EditText_Init_test00_001 );
+       CU_add_test( pt_edittext, "EditText_Term_test00_001",
+                                                               Test_DrCC_EditText_Term_test00_001 );
+
+       CU_add_test( pt_edittext, "EditText_Init_test00_002",
+                                                               Test_DrCC_EditText_Init_test00_002 );
+
+       CU_add_test( pt_edittext, "EditText_AllocTextInfo_test00_001",
+                                                               Test_DrCC_EditText_AllocTextInfo_test00_001 );
 
-       CU_add_test( pt_edittext, "EditText_Term_test00_001", Test_DrCC_EditText_Term_test00_001 );
-       CU_add_test( pt_edittext, "EditText_Term_test00_002", Test_DrCC_EditText_Term_test00_002 );
+       CU_add_test( pt_edittext, "EditText_Term_test00_002",
+                                                               Test_DrCC_EditText_Term_test00_002 );
 
        return 0x00;
 }
index e468757..0d1c4c6 100644 (file)
@@ -82,6 +82,7 @@ void Test_DrCC_FileType_CheckFileType_test00_001(void)
        CU_ASSERT_FATAL( 0x00 == i_result );
        CU_ASSERT_FATAL( t_ftype.b_type == DRD64_DRCC_FILETYPE_TEXT );
        CU_ASSERT_FATAL( t_ftype.w_subtype == DRD64_DRCC_FILESUBTYPE_CSRC );
+       CU_ASSERT_FATAL( t_ftype.dw_filesize > 0 );
 
        return;
 }
@@ -97,6 +98,7 @@ void Test_DrCC_FileType_CheckFileType_test00_002(void)
        CU_ASSERT_FATAL( 0x00 == i_result );
        CU_ASSERT_FATAL( t_ftype.b_type == DRD64_DRCC_FILETYPE_TEXT );
        CU_ASSERT_FATAL( t_ftype.w_subtype == DRD64_DRCC_FILESUBTYPE_CHEADER );
+       CU_ASSERT_FATAL( t_ftype.dw_filesize > 0 );
 
        return;
 }
@@ -112,6 +114,7 @@ void Test_DrCC_FileType_CheckFileType_test00_003(void)
        CU_ASSERT_FATAL( 0x00 == i_result );
        CU_ASSERT_FATAL( t_ftype.b_type == DRD64_DRCC_FILETYPE_BINARY );
        CU_ASSERT_FATAL( t_ftype.w_subtype == DRD64_DRCC_FILESUBTYPE_ELF_OBJ );
+       CU_ASSERT_FATAL( t_ftype.dw_filesize > 0 );
 
        return;
 }
index 77de303..9aaebff 100644 (file)
@@ -51,7 +51,7 @@ int
        Test_DrCC_EditText();
        Test_DrCC_FileType();
 
-       CU_console_run_tests();
+       CU_basic_run_tests();
        CU_cleanup_registry();
 
        return 0x00;