OSDN Git Service

* WorkBackup: 2015/09/17(Thr) AM 05:50
authorKoine Yuusuke(koinec) <koinec@users.odsn.me>
Wed, 16 Sep 2015 20:50:13 +0000 (05:50 +0900)
committerKoine Yuusuke(koinec) <koinec@users.odsn.me>
Wed, 16 Sep 2015 20:50:13 +0000 (05:50 +0900)
libfiletype/Makefile
libfiletype/drd64_libfiletype_binaryfile.c
libfiletype/drd64_libfiletype_binaryfile.h
libfiletype/test_libfiletype.c
libfiletype/test_libfiletype.h
libfiletype/test_libfiletype_main.c

index 48ad344..302d6f6 100644 (file)
@@ -71,7 +71,8 @@ TEST_OBJS = \
                test_libfiletype.o \
                test_libfiletype_main.o \
                test_libfiletype_common.o \
-               test_libfiletype_textfile.o
+               test_libfiletype_textfile.o \
+               test_libfiletype_binaryfile.o
 TEST_HEADER = \
                test_libfiletype.h
 
@@ -117,6 +118,10 @@ test_libfiletype_textfile.o: test_libfiletype_textfile.c $(HEADER) $(TEST_HEADER
        $(CC) -c -o test_libfiletype_textfile.o \
                                $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
                                test_libfiletype_textfile.c
+test_libfiletype_binaryfile.o: test_libfiletype_binaryfile.c $(HEADER) $(TEST_HEADER)
+       $(CC) -c -o test_libfiletype_binaryfile.o \
+                               $(FLAGS_DEBUG) $(FLAGS_COMPILE) $(TEST_FLAGS_COMPILE) \
+                               test_libfiletype_binaryfile.c
        
 $(TEST_TARGET): $(TEST_OBJS) $(TARGET) $(LIBRARY)
        $(CC) -o $(TEST_TARGET) $(FLAGS_DEBUG) $(TEST_OBJS) $(LIBRARY) $(TARGET) \
index f5ed658..f9279ac 100644 (file)
@@ -90,14 +90,14 @@ int
                pt_elf32        = (Elf32_Ehdr *)pb_data;
                w_elftype       = pt_elf32->e_type;
        }
-       
+
        if( ET_EXEC == w_elftype )
                { p_ftype->w_subtype    = DRD64_LIBFILETYPE_SUB_ELF_EXE; }
        else if( ET_DYN == w_elftype )
                { p_ftype->w_subtype    = DRD64_LIBFILETYPE_SUB_ELF_SO; }
-       if( ET_CORE == w_elftype )
+       else if( ET_CORE == w_elftype )
                { p_ftype->w_subtype    = DRD64_LIBFILETYPE_SUB_ELF_CORE; }
-       if( ET_REL == w_elftype )
+       else if( ET_REL == w_elftype )
                { p_ftype->w_subtype    = DRD64_LIBFILETYPE_SUB_ELF_OBJ; }
        else
                { p_ftype->w_subtype    = DRD64_LIBFILETYPE_SUB_ELF; }
index 3ece4d6..4c5d839 100644 (file)
@@ -43,10 +43,10 @@ Comment:
        #define LIBFILETYPE_BINARYFILE_EXTERN   extern
 #endif
 
-#if defined DRD64_SRC_LIBFILETYPE
+#if defined DRD64_SRC_LIBFILETYPE_BINARYFILE
        #define LIBFILETYPE_BINARYFILE_INTERNAL
        #define LIBFILETYPE_BINARYFILE_INTERNALFUNC
-#elif defined DRD64_SRC_TEST_LIBFILETYPE
+#elif defined DRD64_SRC_TEST_LIBFILETYPE_BINARYFILE
        #define LIBFILETYPE_BINARYFILE_INTERNAL
        #define LIBFILETYPE_BINARYFILE_INTERNALFUNC     extern
 #endif
index 4a37b70..e2829cd 100644 (file)
@@ -51,6 +51,7 @@ int
        Test_LibFileType_Main();
        Test_LibFileType_Common();
        Test_LibFileType_TextFile();
+       Test_LibFileType_BinaryFile();
 
        CU_basic_run_tests();
        CU_cleanup_registry();
index 70e6fef..579726f 100644 (file)
@@ -67,6 +67,14 @@ DRD64_TEST_LIBFILETYPE_COMMON_EXTERN int Test_LibFileType_Common( void );
 #endif
 DRD64_TEST_LIBFILETYPE_TEXTFILE_EXTERN int Test_LibFileType_TextFile( void );
 
+/*---------------------------------------------------------------------*/
+#ifdef DRD64_SRC_TEST_LIBFILETYPE_BINARYFILE
+       #define DRD64_TEST_LIBFILETYPE_BINARYFILE_EXTERN
+#else
+       #define DRD64_TEST_LIBFILETYPE_BINARYFILE_EXTERN        extern
+#endif
+DRD64_TEST_LIBFILETYPE_BINARYFILE_EXTERN int Test_LibFileType_BinaryFile( void );
+
 
 #endif /* DRD64_HEADER_XXX */
 
index f745b3d..b252b3b 100644 (file)
@@ -40,7 +40,7 @@ Comment:
 #include"test_libfiletype.h"
 
 
-/* LibFileType_CheckFileType ****************************************/
+/* LibFileType_CheckFileType ******************************************/
 /*--------------------------------------------------------------------*/
 void Test_LibFileType_CheckFileType_test00_001(void)
 {
@@ -102,6 +102,68 @@ void Test_LibFileType_CheckFileType_test00_003(void)
 }
 
 /*--------------------------------------------------------------------*/
+void Test_LibFileType_CheckFileType_test00_004(void)
+{
+       int             i_result;
+       LibFileType_FileType            t_ftype;
+
+       LibFileType_Init();
+       
+       i_result        = LibFileType_CheckFileType( &t_ftype, "./testdata/dwarftest", -0x01 );
+
+       CU_ASSERT_FATAL( 0x00 == i_result );
+       CU_ASSERT_FATAL( t_ftype.b_type == DRD64_LIBFILETYPE_BINARY );
+       CU_ASSERT_FATAL( t_ftype.w_subtype == DRD64_LIBFILETYPE_SUB_ELF_EXE );
+       CU_ASSERT_FATAL( t_ftype.dw_filesize > 0 );
+
+       LibFileType_Term();
+
+       return;
+}
+
+/*--------------------------------------------------------------------*/
+void Test_LibFileType_CheckFileType_test00_005(void)
+{
+       int             i_result;
+       LibFileType_FileType            t_ftype;
+
+       LibFileType_Init();
+       
+       i_result        = LibFileType_CheckFileType( &t_ftype, "./testdata/libsotest.so", -0x01 );
+
+       CU_ASSERT_FATAL( 0x00 == i_result );
+       CU_ASSERT_FATAL( t_ftype.b_type == DRD64_LIBFILETYPE_BINARY );
+       CU_ASSERT_FATAL( t_ftype.w_subtype == DRD64_LIBFILETYPE_SUB_ELF_SO );
+       CU_ASSERT_FATAL( t_ftype.dw_filesize > 0 );
+
+       LibFileType_Term();
+
+       return;
+}
+
+/*--------------------------------------------------------------------*/
+void Test_LibFileType_CheckFileType_test00_006(void)
+{
+       int             i_result;
+       LibFileType_FileType            t_ftype;
+
+       LibFileType_Init();
+       
+       i_result        = LibFileType_CheckFileType( &t_ftype, "./testdata/libfiletype.a", -0x01 );
+
+       CU_ASSERT_FATAL( 0x00 == i_result );
+       CU_ASSERT_FATAL( t_ftype.b_type == DRD64_LIBFILETYPE_BINARY );
+       CU_ASSERT_FATAL( t_ftype.w_subtype == DRD64_LIBFILETYPE_SUB_ELF_OBJ );
+       CU_ASSERT_FATAL( t_ftype.dw_filesize > 0 );
+
+       LibFileType_Term();
+
+       return;
+}
+
+
+
+/*--------------------------------------------------------------------*/
 void Test_LibFileType_CheckFileType_test01_001(void)
 {
        int             i_result;
@@ -215,6 +277,12 @@ int
                                        Test_LibFileType_CheckFileType_test00_002 );
        CU_add_test( pt_filetype, "FileType_CheckFileType_test00_003",
                                        Test_LibFileType_CheckFileType_test00_003 );
+       CU_add_test( pt_filetype, "FileType_CheckFileType_test00_004",
+                                       Test_LibFileType_CheckFileType_test00_003 );
+       CU_add_test( pt_filetype, "FileType_CheckFileType_test00_005",
+                                       Test_LibFileType_CheckFileType_test00_003 );
+       CU_add_test( pt_filetype, "FileType_CheckFileType_test00_006",
+                                       Test_LibFileType_CheckFileType_test00_003 );
        CU_add_test( pt_filetype, "FileType_CheckFileType_test01_001",
                                        Test_LibFileType_CheckFileType_test01_001 );
        CU_add_test( pt_filetype, "FileType_CheckFileType_test02_001",