OSDN Git Service

2019/04/17(Wed) 20:56
authorKoine Yuusuke(koinec) <koinec@users.osdn.me>
Wed, 17 Apr 2019 11:56:11 +0000 (20:56 +0900)
committerKoine Yuusuke(koinec) <koinec@users.osdn.me>
Wed, 17 Apr 2019 11:56:11 +0000 (20:56 +0900)
 (LibGoblin)
  * WorkBackup

libgoblin/drd64_libgoblin.h
libgoblin/drd64_libgoblin_binaryfile.c
libgoblin/test_libgoblin_binaryfile.c
libgoblin/test_libgoblin_binfo.c

index 4d1d3aa..6568bda 100644 (file)
@@ -105,6 +105,7 @@ Comment:
 #define        DRD64_SRCID_LIBGOBLIN_API                       0x01
 #define        DRD64_SRCID_LIBGOBLIN_PROGINFO          0x11
 #define        DRD64_SRCID_LIBGOBLIN_BINARYINFO        0x12
+#define        DRD64_SRCID_LIBGOBLIN_BINARYFILE        0x13
 
 #endif /* DRD64_HEADER_LIBGOBLIN_MAIN */
 
index 7a465e6..3dee986 100644 (file)
@@ -37,18 +37,34 @@ Comment:
 #define        DRD64_SRC_LIBGOBLIN_BINARYFILE
 #include"drd64_libgoblin.h"
 
+#define LOCATION(n) DRD64_ERR_LOCATION( \
+                                               DRD64_ERROR_MODULE_LIBGOBLIN, DRD64_ERROR_ARCH_NODEPEND, \
+                                               DRD64_SRCID_LIBGOBLIN_BINARYFILE, (n))
+
+
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibGoblin_BinaryFile_GetBinaryFile       0x14
 LIBGOBLIN_BINARYFILE_EXTERN
 LibGoblin_BinaryFile   *
        BinaryFile_GetBinaryFile(
                        int             i_bfid )
 {
-       if(( gi_max_binary_file <= i_bfid ) || ( 0 > i_bfid ))
-               { return NULL; }
+       if(( gi_max_binary_file <= i_bfid ) || ( 0 > i_bfid ))  {
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x01 ),
+                       LOCATION( FUNCID_LibGoblin_BinaryFile_GetBinaryFile ),
+                       errno, (QWord)i_bfid, (QWord)gi_max_binary_file, __LINE__ );
+               return NULL;
+       }
        
-       if( -0x01 == BINFILE( i_bfid )->i_id )
-               { return NULL; }
+       if( -0x01 == BINFILE( i_bfid )->i_id )  {
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_FAILCALL, 0x01, 0x02 ),
+                       LOCATION( FUNCID_LibGoblin_BinaryFile_GetBinaryFile ),
+                       errno, (QWord)i_bfid, (QWord)0x00, __LINE__ );
+               return NULL;
+       }
 
        return BINFILE( i_bfid );
 }
@@ -57,6 +73,7 @@ LibGoblin_BinaryFile  *
 /*----------------------------------------------------------------------
 OK
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibGoblin_BinaryFile_ClearBinaryFile     0x13
 void
        BinaryFile_ClearBinaryFile(
                        LibGoblin_BinaryFile    *p_binfile )
@@ -79,6 +96,7 @@ void
 /*----------------------------------------------------------------------
 OK
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibGoblin_BinaryFile_AllocBinaryFile     0x11
 LIBGOBLIN_BINARYFILE_EXTERN
 LibGoblin_BinaryFile   *
        BinaryFile_AllocBinaryFile(
@@ -100,6 +118,10 @@ LibGoblin_BinaryFile       *
                }
 
                // Bug -- Not Exist Non-used BinaryFile struct.
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_BUG, 0x01, 0x01 ),
+                       LOCATION( FUNCID_LibGoblin_BinaryFile_AllocBinaryFile ),
+                       errno, (QWord)gi_now_binary_file, (QWord)gi_max_binary_file, __LINE__ );
                goto    goto_BinaryFile_AllocBinaryFile_post;
        }
 
@@ -108,6 +130,10 @@ LibGoblin_BinaryFile       *
                                                                sizeof( LibGoblin_BinaryFile ) * 
                                                                ( gi_alloc_binary_file + LIBGOBLIN_BINARYFILE_UNITS ) );
                if( NULL == p_bfilebase )       {
+                       LibBrownie_Error_SetErrorInfo(
+                               DRD64_ERROR( DRD64_ERROR_PTN_NOMEMORY, 0x01, 0x02 ),
+                               LOCATION( FUNCID_LibGoblin_BinaryFile_AllocBinaryFile ),
+                               errno, (QWord)gi_alloc_binary_file, (QWord)0x00, __LINE__ );
                        goto    goto_BinaryFile_AllocBinaryFile_post;
                }
 
@@ -134,6 +160,7 @@ goto_BinaryFile_AllocBinaryFile_post:
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibGoblin_BinaryFile_SearchBinaryFile    0x31
 LIBGOBLIN_BINARYFILE_EXTERN
 LibGoblin_BinaryFile   *
        BinaryFile_SearchBinaryFile(
@@ -176,6 +203,7 @@ goto_BinaryFile_SearchBinaryFile_post:
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibGoblin_BinaryFile_DispenseBinaryFile  0x21
 LIBGOBLIN_BINARYFILE_EXTERN
 LibGoblin_BinaryFile   *
        BinaryFile_DispenseBinaryFile(
@@ -189,18 +217,23 @@ LibGoblin_BinaryFile      *
 
        p_bfile = BinaryFile_SearchBinaryFile(
                                        p_binfo->str_filename, pstr_localpath, pstr_remotepath );
+       if( NULL != p_bfile )
+               { p_bfile->i_refcount++; }
+       else
+               { p_bfile       = BinaryFile_AllocBinaryFile(); }
+
        if( NULL != p_bfile )   {
-               p_bfile->i_refcount++;
+               strncpy( p_bfile->str_filename, p_binfo->str_filename, DRD64_MAX_PATH );
+       strncpy( p_bfile->str_localpath, pstr_localpath, DRD64_MAX_PATH );
+       if( NULL != pstr_remotepath )
+                       { strncpy( p_bfile->str_remotepath, pstr_remotepath, DRD64_MAX_PATH ); }
        }
        else    {
-               p_bfile = BinaryFile_AllocBinaryFile();
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_NULLPTR, 0x01, 0x01 ),
+                       LOCATION( FUNCID_LibGoblin_BinaryFile_DispenseBinaryFile ),
+                       errno, (QWord)0x00, (QWord)0x00, __LINE__ );
        }
-
-       strncpy( p_bfile->str_filename, p_binfo->str_filename, DRD64_MAX_PATH );
-    strncpy( p_bfile->str_localpath, pstr_localpath, DRD64_MAX_PATH );
-    if( NULL != pstr_remotepath )   {
-        strncpy( p_bfile->str_remotepath, pstr_remotepath, DRD64_MAX_PATH );
-    }
                                
        return  p_bfile;
 }
@@ -209,6 +242,7 @@ LibGoblin_BinaryFile        *
 /*----------------------------------------------------------------------
 OK
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibGoblin_BinaryFile_FreeBinaryFile      0x12
 LIBGOBLIN_BINARYFILE_EXTERN
 int
        BinaryFile_FreeBinaryFile(
@@ -218,7 +252,13 @@ int
        
        assert( NULL != p_binfile );
 
-       if( -0x01 == p_binfile->i_id )  { return 0x00; }
+       if( -0x01 == p_binfile->i_id )  {
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_FAILCALL, 0x01, 0x01 ),
+                       LOCATION( FUNCID_LibGoblin_BinaryFile_FreeBinaryFile ),
+                       errno, (QWord)0x00, (QWord)0x00, __LINE__ );
+               return 0x00;
+       }
 
        p_binfile->i_refcount--;
 
@@ -240,6 +280,7 @@ int
 /*----------------------------------------------------------------------
 OK
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibGoblin_BinaryFile_Init        0x01
 LIBGOBLIN_BINARYFILE_EXTERN
 int
        BinaryFile_Init(
@@ -249,12 +290,20 @@ int
        LibGoblin_BinaryFile    *p_binfile;
 
        if( 0 != gi_max_binary_file )   {
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_FAILCALL, 0x01, 0x01 ),
+                       LOCATION( FUNCID_LibGoblin_BinaryFile_Init ),
+                       errno, (QWord)gi_max_binary_file, (QWord)0x00, __LINE__ );
                return -0x01;
        }
 
        gp_binary_file  = (LibGoblin_BinaryFile *)malloc(
                                                sizeof( LibGoblin_BinaryFile ) * LIBGOBLIN_BINARYFILE_UNITS );
        if( NULL == gp_binary_file )    {
+               LibBrownie_Error_SetErrorInfo(
+                       DRD64_ERROR( DRD64_ERROR_PTN_NOMEMORY, 0x01, 0x02 ),
+                       LOCATION( FUNCID_LibGoblin_BinaryFile_Init ),
+                       errno, (QWord)0x00, (QWord)0x00, __LINE__ );
                return -0x02;
        }
 
@@ -274,6 +323,7 @@ int
 /*----------------------------------------------------------------------
 OK
 ----------------------------------------------------------------------*/
+#define        FUNCID_LibGoblin_BinaryFile_Term        0x02
 LIBGOBLIN_BINARYFILE_EXTERN
 int
        BinaryFile_Term(
index f4eeb31..0879172 100644 (file)
@@ -46,6 +46,9 @@ void Test_BinaryFile_AllocFree_test00_001( void )
        int             i_result;
        LibGoblin_BinaryFile    *p_binfile;
 
+       i_result        = LibBrownie_Init();
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = BinaryFile_Init();
        CU_ASSERT( 0x00 == i_result );
 
@@ -58,6 +61,8 @@ void Test_BinaryFile_AllocFree_test00_001( void )
        i_result        = BinaryFile_Term();
        CU_ASSERT( 0x00 == i_result );
 
+       LibBrownie_Term();
+
        return;
 }
 
@@ -69,6 +74,9 @@ void Test_BinaryFile_AllocFree_test00_002( void )
        int             i_result;
        LibGoblin_BinaryFile    *p_binfile;
 
+       i_result        = LibBrownie_Init();
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = BinaryFile_Init();
        CU_ASSERT( 0x00 == i_result );
 
@@ -110,6 +118,8 @@ void Test_BinaryFile_AllocFree_test00_002( void )
        i_result        = BinaryFile_Term();
        CU_ASSERT( 0x00 == i_result );
 
+       LibBrownie_Term();
+
        return;
 }
 
@@ -120,12 +130,17 @@ void Test_BinaryFile_InitTerm_test00_001( void )
 {
        int             i_result;
 
+       i_result        = LibBrownie_Init();
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = BinaryFile_Init();
        CU_ASSERT( 0x00 == i_result );
 
        i_result        = BinaryFile_Term();
        CU_ASSERT( 0x00 == i_result );
 
+       LibBrownie_Term();
+
        return;
 }
 
index 7a673a3..e97fda9 100644 (file)
@@ -47,6 +47,9 @@ void Test_BinaryInfo_AllocFree_test00_001( void )
        LibGoblin_ProgramInfo   *p_pginfo;
        LibGoblin_BinaryInfo    *p_binfo;
 
+       i_result        = LibBrownie_Init();
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = ProgInfo_Init();
        CU_ASSERT( 0x00 == i_result );
 
@@ -71,6 +74,8 @@ void Test_BinaryInfo_AllocFree_test00_001( void )
        i_result        = ProgInfo_Term();
        CU_ASSERT( 0x00 == i_result );
 
+       LibBrownie_Term();
+
        return;
 }
 
@@ -85,6 +90,9 @@ void Test_BinaryInfo_AllocFree_test00_002( void )
        LibGoblin_ProgramInfo   *p_pginfo;
        LibGoblin_BinaryInfo    *p_binfo;
 
+       i_result        = LibBrownie_Init();
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = ProgInfo_Init();
        CU_ASSERT( 0x00 == i_result );
 
@@ -123,6 +131,8 @@ void Test_BinaryInfo_AllocFree_test00_002( void )
        i_result        = ProgInfo_Term();
        CU_ASSERT( 0x00 == i_result );
 
+       LibBrownie_Term();
+
        return;
 }
 
@@ -133,12 +143,17 @@ void Test_BinaryInfo_InitTerm_test00_001( void )
 {
        int             i_result;
 
+       i_result        = LibBrownie_Init();
+       CU_ASSERT( 0x00 == i_result );
+
        i_result        = BinaryInfo_Init();
        CU_ASSERT( 0x00 == i_result );
 
        i_result        = BinaryInfo_Term();
        CU_ASSERT( 0x00 == i_result );
 
+       LibBrownie_Term();
+
        return;
 }