OSDN Git Service

* Suuport: LibBrownie CUnit UnitTest-Program
authorKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Sun, 24 May 2015 20:42:00 +0000 (05:42 +0900)
committerKoine Yuusuke(koinec) <koinec@users.sourceforge.jp>
Sun, 24 May 2015 20:42:00 +0000 (05:42 +0900)
* Implement: LibBrownie UnitTest Base-Code (test_libbrownie.[ch])
* Implement: LibBrownie ErrorLib UnitTest Base-Code (test_libbrownie_error.c)
* Fix: LibBrownie Error FuncName Drd64_LibBrownie_Error_* to LibBrownie_Error_*
* Modify: LibBrownie Error Code for libedittext/libfiletype
* WorkBackup: 2015/05/25(Mon) AM 05:44

include/drd64_error.h
include/libbrownie.h
libbrownie/Makefile
libbrownie/drd64_libbrownie.h
libbrownie/drd64_libbrownie_error.c
libbrownie/test_libbrownie.c [new file with mode: 0644]
libbrownie/test_libbrownie.h [new file with mode: 0644]
libbrownie/test_libbrownie_error.c [new file with mode: 0644]

index 013d9bc..c8f5937 100644 (file)
@@ -87,6 +87,7 @@ DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD*/
 #define        DRD64_ERROR_PTN_NOMEMORY                0x00070000
 #define        DRD64_ERROR_PTN_SOCKET                  0x00080000
 #define        DRD64_ERROR_PTN_INETADDR                0x00090000
+#define        DRD64_ERROR_PTN_BUG                             0x00ff0000
 #define        DRD64_ERROR_PTN_FUNCTION                0x00ff0000
 
 
@@ -94,11 +95,15 @@ DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD*/
 #define        DRD64_ERROR_MODULE_MARSHALD             0x01000000
 #define        DRD64_ERROR_MODULE_DEBUGD               0x02000000
 #define        DRD64_ERROR_MODULE_SERVER               0x03000000
-#define        DRD64_ERROR_MODULE_LIBGOBLIN    0x11000000
-#define        DRD64_ERROR_MODULE_LIBDRD64             0x12000000
-#define        DRD64_ERROR_MODULE_LIBARCH              0x20000000
+#define        DRD64_ERROR_MODULE_LIBDRD64             0x10000000
+#define        DRD64_ERROR_MODULE_LIBARCH              0x21000000
+#define        DRD64_ERROR_MODULE_LIBBROWNIE   0x22000000
 #define        DRD64_ERROR_MODULE_LIBASM               0x30000000
-#define        DRD64_ERROR_MODULE_UI                   0x71000000
+#define        DRD64_ERROR_MODULE_DRCC                 0x40000000
+#define        DRD64_ERROR_MODULE_LIBGOBLIN    0x50000000
+#define        DRD64_ERROR_MODULE_LIBEDITTEXT  0x61000000
+#define        DRD64_ERROR_MODULE_LIBFILETYPE  0x62000000
+#define        DRD64_ERROR_MODULE_RESERVE              0x70000000
 
 /* [Location] Archtechture Code ======= ___**_____ */
 #define        DRD64_ERROR_ARCH_NODEPEND               0x00000000
@@ -116,8 +121,7 @@ typedef struct      {
        DWord   dw_error;
        DWord   dw_location;
        int             i_system_errno;
-       Value   v_value;
-       char    str_string[DRD64_MAX_PATH+1];
+       QWord   qw_value[2];
 } Drd64_ErrorInfo;
 
 
index 53d1288..5318d01 100644 (file)
@@ -49,26 +49,15 @@ Comment:
 
 /* drd64_libbrownie_error.c Functions ========================*/
 LIBBROWNIE_FUNC
-       int
-               Drd64_LibBrownie_Error_SetErrorInfo(
-                       DWord   dw_errcode,
-                       DWord   dw_errlocation,
-                       int             i_syserrno );
-
+       int LibBrownie_Error_SetErrorInfo(
+                       DWord dw_errcode, DWord dw_errlocation, int i_syserrno,
+                       QWord qw_value1, QWord qw_value2 );
 LIBBROWNIE_FUNC
-       int
-               Drd64_LibBrownie_Error_InitErrorSystem(
-                       int i_max_errorinfo );
-
+       Drd64_ErrorInfo *LibBrownie_Error_GetErrorInfo( int i_history_id );
 LIBBROWNIE_FUNC
-       void
-               Drd64_LibBrownie_Error_TermErrorSystem(
-                       void );
-
+       int LibBrownie_Error_InitErrorSystem( int i_max_errorinfo );
 LIBBROWNIE_FUNC
-       Drd64_ErrorInfo *
-               Drd64_LibBrownie_Error_GetErrorInfo(
-                       int i_history_id );
+       void LibBrownie_Error_TermErrorSystem( void );
 
 
 /* drd64_libbrownie_inetaddr.c Functions =====================*/
index 03010e3..b510fc0 100644 (file)
@@ -36,7 +36,7 @@
 
 # Section 1 : Setting Build Command ####################################
 MAKE = make
-CC = gcc
+CC = cc
 
 
 SUPER_HEADER = ../include/drd64_packet.h \
@@ -47,7 +47,7 @@ SUPER_HEADER =        ../include/drd64_packet.h \
 CLIENT_HEADER =
 USER_HEADER =
 
-FLAGS_DEBUG = -g
+FLAGS_DEBUG = -g -Wall
 
 LIBBROWNIE_TARGET = libbrownie.a
 LIBBROWNIE_OBJS = drd64_libbrownie_error.o \
@@ -58,28 +58,55 @@ LIBBROWNIE_HEADER = drd64_libbrownie.h \
                                        ../include/libbrownie.h \
                                        $(SUPER_HEADER)
 
+TEST_FLAGS_COMPILE = -I/usr/local/include
+TEST_FLAGS_LINKER = -L/usr/local/lib
+TEST_TARGET = test_libbrownie
+TEST_OBJS = \
+                       test_libbrownie.o \
+                       test_libbrownie_error.o
+TEST_HEADER = test_libbrownie.h
 
-all:   $(LIBBROWNIE_TARGET)
+
+all:   $(LIBBROWNIE_TARGET) test
+test:  $(TEST_TARGET)
+               ./$(TEST_TARGET)
 
 $(LIBBROWNIE_TARGET): $(LIBBROWNIE_OBJS)
        ar rv $(LIBBROWNIE_TARGET) $(LIBBROWNIE_OBJS)
        ranlib $(LIBBROWNIE_TARGET)
+       rm -f ../$(LIBBROWNIE_TARGET)
        cp $(LIBBROWNIE_TARGET) ..
 
 drd64_libbrownie_error.o: drd64_libbrownie_error.c $(LIBBROWNIE_HEADER)
-       gcc -c -o drd64_libbrownie_error.o $(FLAGS_DEBUG) \
+       $(CC) -c -o drd64_libbrownie_error.o $(FLAGS_DEBUG) \
                                drd64_libbrownie_error.c
 
 drd64_libbrownie_inetaddr.o: drd64_libbrownie_inetaddr.c $(LIBBROWNIE_HEADER)
-       gcc -c -o drd64_libbrownie_inetaddr.o $(FLAGS_DEBUG) \
+       $(CC) -c -o drd64_libbrownie_inetaddr.o $(FLAGS_DEBUG) \
                                drd64_libbrownie_inetaddr.c
 
 drd64_libbrownie_socket.o: drd64_libbrownie_socket.c $(LIBBROWNIE_HEADER)
-       gcc -c -o drd64_libbrownie_socket.o $(FLAGS_DEBUG) \
+       $(CC) -c -o drd64_libbrownie_socket.o $(FLAGS_DEBUG) \
                                drd64_libbrownie_socket.c
 
+test_libbrownie.o: test_libbrownie.c $(LIBBROWNIE_HEADER) $(TEST_HEADER)
+       $(CC) -c -o test_libbrownie.o \
+                       $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
+                       test_libbrownie.c
+test_libbrownie_error.o: test_libbrownie_error.c $(LIBBROWNIE_HEADER) $(TEST_HEADER)
+       $(CC) -c -o test_libbrownie_error.o \
+                       $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
+                       test_libbrownie_error.c
+
+$(TEST_TARGET): $(TEST_OBJS) $(LIBBROWNIE_OBJS) $(LIBBROWNIE_TARGET)
+       $(CC) -o $(TEST_TARGET) $(FLAGS_DEBUG) $(LIBBROWNIE_OBJS) $(TEST_OBJS) $(LIBBROWNIE_TARGET) \
+                               $(TEST_FLAGS_LINKER) -lcunit
+
 clean:
        rm -f *.o
        rm -f $(LIBBROWNIE_TARGET)
        rm -f *.core
+       rm -f $(TEST_TARGET)
+       rm -f *.xml
+
 
index 8f19bc4..94325aa 100644 (file)
@@ -41,11 +41,13 @@ Comment:
 #include<stdlib.h>
 #include<string.h>
 #include<netdb.h>
+#include<unistd.h>
 #include<sys/types.h>
 #include<sys/socket.h>
 #include<sys/un.h>
 #include<netinet/in.h>
 #include<netinet/tcp.h>
+#include<arpa/inet.h>
 #include"../include/drd64_types.h"
 #include"../include/drd64_defines.h"
 #include"../include/drd64_error.h"
index a266efb..38ac07c 100644 (file)
@@ -37,22 +37,27 @@ Comment:
 #define        DRD64_SRC_LIBBROWNIE_ERROR
 #include"drd64_libbrownie.h"
 
-static Drd64_ErrorInfo *gp_errorinfo_pool;
-static Drd64_ErrorInfo **gpp_errorinfo_history;
-static int                             gi_max_errorinfo;
+static Drd64_ErrorInfo *gp_errorinfo_pool              = NULL;
+static Drd64_ErrorInfo **gpp_errorinfo_history = NULL;
+static int                             gi_max_errorinfo                = -1;
+static int                             gi_refcount                             = 0;
 
 
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
 LIBBROWNIE_FUNC
 int
        Drd64_LibBrownie_Error_SetErrorInfo(
                DWord   dw_errcode,
                DWord   dw_errlocation,
-               int             i_syserrno )
+               int             i_syserrno,
+               QWord   qw_value1,
+               QWord   qw_value2 )
 {
        int             i_cnt;
        Drd64_ErrorInfo         *p_errinfo;
 
-       p_errinfo       = *(gpp_errorinfo_history + gi_max_errorinfo);
+       p_errinfo       = *(gpp_errorinfo_history + (gi_max_errorinfo - 1));
        for( i_cnt = gi_max_errorinfo - 1; i_cnt > 0; i_cnt-- )         {
                *(gpp_errorinfo_history + i_cnt)
                        = *(gpp_errorinfo_history + (i_cnt - 1));
@@ -61,6 +66,8 @@ int
        p_errinfo->dw_error                     = dw_errcode;
        p_errinfo->dw_location          = dw_errlocation;
        p_errinfo->i_system_errno       = i_syserrno;
+       p_errinfo->qw_value[0]          = qw_value1;
+       p_errinfo->qw_value[1]          = qw_value2;
 
        *(gpp_errorinfo_history + 0)    = p_errinfo;
        
@@ -68,14 +75,33 @@ int
 }
 
 
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBBROWNIE_FUNC
+Drd64_ErrorInfo *
+       LibBrownie_Error_GetErrorInfo(
+               int i_history_id )
+{
+       Drd64_ErrorInfo         *p_errinfo;
+
+       if((gi_max_errorinfo <= i_history_id ) || ( 0 > i_history_id ))
+               { return NULL; }
+
+       p_errinfo       = *(gpp_errorinfo_history + i_history_id);
+
+       return p_errinfo;
+}
+
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
 LIBBROWNIE_FUNC
 int
-       Drd64_LibBrownie_Error_InitErrorSystem(
+       LibBrownie_Error_InitErrorSystem(
                int i_max_errorinfo )
 {
        int                                     i_cnt;
        Drd64_ErrorInfo         *p_errinfo;
-       Drd64_ErrorInfo         *p_errnow;
        Drd64_ErrorInfo         **pp_errhistory;
 
        gp_errorinfo_pool               = NULL;
@@ -84,6 +110,9 @@ int
 
        if( 1 > i_max_errorinfo )       { return 0x03; }
 
+       gi_refcount++;
+       if( 1 < gi_refcount )   { return 0x00; }
+
        p_errinfo = (Drd64_ErrorInfo *)malloc(
                                        sizeof( Drd64_ErrorInfo ) * i_max_errorinfo );
        if( NULL == p_errinfo )         { return 0x01; }
@@ -106,11 +135,16 @@ int
 }
 
 
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
 LIBBROWNIE_FUNC
 void
-       Drd64_LibBrownie_Error_TermErrorSystem(
+       LibBrownie_Error_TermErrorSystem(
                void )
 {
+       gi_refcount--;
+       if( 0 < gi_refcount )   { return; }
+
        if( NULL != gp_errorinfo_pool ) {
                free( gp_errorinfo_pool );
                gp_errorinfo_pool               = NULL;
@@ -121,23 +155,9 @@ void
                gpp_errorinfo_history   = NULL;
        }
 
-       return;
-}
-
-
-LIBBROWNIE_FUNC
-Drd64_ErrorInfo *
-       Drd64_LibBrownie_Error_GetErrorInfo(
-               int i_history_id )
-{
-       Drd64_ErrorInfo         *p_errinfo;
-
-       if((gi_max_errorinfo <= i_history_id ) || ( 0 > i_history_id ))
-               { return NULL; }
-
-       p_errinfo       = *(gpp_errorinfo_history + i_history_id);
+       gi_max_errorinfo                = 0;
 
-       return p_errinfo;
+       return;
 }
 
 
diff --git a/libbrownie/test_libbrownie.c b/libbrownie/test_libbrownie.c
new file mode 100644 (file)
index 0000000..59ae30c
--- /dev/null
@@ -0,0 +1,60 @@
+/*DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64
+
+                         D r . D e a m o n  6 4
+                        for INTEL64(R), AMD64(R)
+       
+   Copyright(C) 2007-2009 Koine Yuusuke(koinec). All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY Koine Yuusuke(koinec) ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL Koine Yuusuke(koinec) OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64*/
+
+/* File Info -----------------------------------------------------------
+File: drd64_.c
+Function: 
+Comment: 
+----------------------------------------------------------------------*/
+
+#define        DRD64_SRC_TEST_LIBBROWNIE
+#include"drd64_libbrownie.h"
+#include"test_libbrownie.h"
+
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+int
+       main(
+               int     argc, 
+               char    *argv[] )
+{
+       CU_initialize_registry();
+
+       Test_LibBrownie_Error();
+
+       CU_basic_run_tests();
+       CU_cleanup_registry();
+
+       return 0x00;
+}
+
+
+/* EOF of drd64_.c ----------------------------------- */
diff --git a/libbrownie/test_libbrownie.h b/libbrownie/test_libbrownie.h
new file mode 100644 (file)
index 0000000..c0de776
--- /dev/null
@@ -0,0 +1,54 @@
+/*DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64
+
+                         D r . D e a m o n  6 4
+                        for INTEL64(R), AMD64(R)
+       
+   Copyright(C) 2007-2009 Koine Yuusuke(koinec). All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY Koine Yuusuke(koinec) ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL Koine Yuusuke(koinec) OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64*/
+
+/* File Info -----------------------------------------------------------
+File: drd64_.h
+Function: Header 
+Comment: 
+----------------------------------------------------------------------*/
+
+#ifndef DRD64_HEADER_TEST_LIBBROWNIE
+#define DRD64_HEADER_TEST_LIBBROWNIE
+
+#include"CUnit/CUnit.h"
+#include"CUnit/Basic.h"
+
+#ifdef DRD64_SRC_TEST_LIBBROWNIE_ERROR
+       #define DRD64_TEST_LIBBROWNIE_ERROR_EXTERN
+#else
+       #define DRD64_TEST_LIBBROWNIE_ERROR_EXTERN      extern
+#endif
+DRD64_TEST_LIBBROWNIE_ERROR_EXTERN int Test_LibBrownie_Error( void );
+
+
+
+#endif /* DRD64_HEADER_XXX */
+
+/* EOF of drd64_.h ----------------------------------- */
diff --git a/libbrownie/test_libbrownie_error.c b/libbrownie/test_libbrownie_error.c
new file mode 100644 (file)
index 0000000..57d2748
--- /dev/null
@@ -0,0 +1,67 @@
+/*DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64
+
+                         D r . D e a m o n  6 4
+                        for INTEL64(R), AMD64(R)
+       
+   Copyright(C) 2007-2009 Koine Yuusuke(koinec). All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY Koine Yuusuke(koinec) ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL Koine Yuusuke(koinec) OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64*/
+
+/* File Info -----------------------------------------------------------
+File: drd64_.c
+Function: 
+Comment: 
+----------------------------------------------------------------------*/
+
+#define        DRD64_SRC_TEST_LIBBROWNIE_ERROR
+#include"test_libbrownie.h"
+#include"drd64_libbrownie.h"
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+void Test_LibBrownie_Error_test00_001(void)
+{
+       CU_ASSERT( 0x01 );
+       return;
+}
+
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+DRD64_TEST_LIBBROWNIE_ERROR_EXTERN
+int
+       Test_LibBrownie_Error(
+                       void )
+{
+       CU_pSuite       pt_brownie;
+       
+       pt_brownie      = CU_add_suite( "LibBrownie_Error", NULL, NULL );
+
+       CU_add_test( pt_brownie, "LibBrownie_Error_test00_001", Test_LibBrownie_Error_test00_001 );
+
+       return 0x00;
+}
+
+
+/* EOF of drd64_.c ----------------------------------- */