(file) Return to cabinet_fdi.c CVS log (file) (dir) Up to [RizwankCVS] / group3 / wine / dlls / cabinet / tests

Diff for /group3/wine/dlls/cabinet/tests/cabinet_fdi.c between version 2.12 and 2.14

version 2.12, 2005/03/01 07:25:39 version 2.14, 2005/03/13 12:13:17
Line 18 
Line 18 
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */  */
  
   #include <stdio.h>
 #include <stdlib.h> #include <stdlib.h>
 #include <string.h> #include <string.h>
 #include <sys/stat.h> #include <sys/stat.h>
 #include <stdarg.h> #include <stdarg.h>
   #include <malloc.h>
  
 #ifndef STANDALONE  #include <stdarg.h>
 #include <wine/test.h>  
 #define ok2 ok  
 #else  
 /* To build outside Wine tree, compile with cl -DSTANDALONE -D_X86_ tvfs.c cabinet_fdi.c FDI.lib  
   These are only called if standalone are used, defining ok and START_TEST, which would normally be declared in winetree */  
 #include <assert.h>  
 #include <stdio.h> #include <stdio.h>
 #define START_TEST(name) main(int argc, char **argv)  
 #define ok(condition, msg)    \  
     do { if(!(condition)) {  \  
         fprintf(stderr,"failed at %d, msg:" msg "\n",__LINE__); \  
     exit(1);    \  
     } } while(0)  
 #define ok2(condition, msg, arg) \  
     do { if(!(condition)) {  \  
         fprintf(stderr,"failed at %d, msg:" msg "\n",__LINE__, arg); \  
     exit(1);    \  
     } } while(0)  
 #define todo_wine  
   
 static void trace(const char *s, ...)  
 {  
     va_list ellipsis;  
     va_start (ellipsis, s);  
     vprintf(s, ellipsis);  
     va_end(ellipsis);  
 }  
  
 #endif  #include "windef.h"
   #include "winbase.h"
   #include "winerror.h"
   #include "fdi.h"
  
 #include <winerror.h>  
 #include <fdi.h>  
 #include <fcntl.h> #include <fcntl.h>
   
 #include "tvfs.h" #include "tvfs.h"
 #include "data.h" #include "data.h"
  
 /* Do malloc and free output debug messages?  #ifndef STANDALONE
 #define DEBUG_ALLOC  #include <wine/test.h>
 #define VERBOSE  #define ok2 ok
 */  
   
 #ifndef DEBUG_ALLOC  
 FNALLOC(final_alloc) {  
     return malloc(cb);  
 }  
 FNFREE(final_free) {  
     free(pv);  
     return;  
 }  
 #else #else
   #include "standalone.h"
   /* To build outside Wine tree, compile with cl -DSTANDALONE -D_X86_ -DWIN_ENV tvfs.c cabinet_fdi.c FDI.lib
     standalone.h is used if standalone are used, defining ok and START_TEST, which would normally be declared in winetree */
   #endif
   
 FNALLOC(final_alloc) { FNALLOC(final_alloc) {
     trace("   FNALLOC just called with %d\n",cb);     trace("   FNALLOC just called with %d\n",cb);
     return malloc(cb);     return malloc(cb);
Line 83 
Line 56 
     free(pv);     free(pv);
     return;     return;
 } }
 #endif  
 /*Possible non trivial addition: /*Possible non trivial addition:
 Notify receives some information about the cab file(see FDI documentation). Notify receives some information about the cab file(see FDI documentation).
 Since this info is different depending on the value of fdint, and Notify should Since this info is different depending on the value of fdint, and Notify should
Line 91 
Line 64 
 */ */
 FNFDINOTIFY(notification_function) FNFDINOTIFY(notification_function)
 { {
 #ifdef VERBOSE  
     trace("   FNFDINOTIFY real just called with %d, %d \n",fdint,pfdin);     trace("   FNFDINOTIFY real just called with %d, %d \n",fdint,pfdin);
 #endif  
     switch (fdint)     switch (fdint)
     {     {
         case fdintCABINET_INFO:         case fdintCABINET_INFO:
         {         {
 #ifdef VERBOSE  
             trace(             trace(
                 "fdintCABINET_INFO:\n"                 "fdintCABINET_INFO:\n"
                 "-next cab name: %s\n"                 "-next cab name: %s\n"
Line 106 
Line 76 
                 "-path name: %s\n"                 "-path name: %s\n"
                 "-set ID: %d\n"                 "-set ID: %d\n"
                 "-number in set: %d\n",                 "-number in set: %d\n",
                 pfdin->psz1,                  pfdin->psz1, pfdin->psz2, pfdin->psz3, pfdin->setID, pfdin->iCabinet
                 pfdin->psz2,  
                 pfdin->psz3,  
                 pfdin->setID,  
                 pfdin->iCabinet  
             );             );
 #endif  
             return 0;             return 0;
         }         }
         case fdintPARTIAL_FILE:         case fdintPARTIAL_FILE:
         {         {
 #ifdef VERBOSE  
             trace("dintPARTIAL_FILE\n");             trace("dintPARTIAL_FILE\n");
 #endif  
  
             return 0;             return 0;
         }         }
Line 127 
Line 90 
         {         {
             int fih = 0;             int fih = 0;
             char target[256];             char target[256];
 #ifdef VERBOSE  
             trace(             trace(
                 "fdintCOPY_FILE:\n"                 "fdintCOPY_FILE:\n"
                 "-name: %s\n"                 "-name: %s\n"
Line 136 
Line 98 
                 "-time: %d\n"                 "-time: %d\n"
                 "-attributes: %d\n"                 "-attributes: %d\n"
                 "-file's folder index: %d\n",                 "-file's folder index: %d\n",
                 pfdin->psz1,                  pfdin->psz1, pfdin->cb, pfdin->date, pfdin->time, pfdin->attribs, pfdin->iFolder
                 pfdin->cb,  
                 pfdin->date,  
                 pfdin->time,  
                 pfdin->attribs,  
                 pfdin->iFolder  
             );             );
 #endif  
             sprintf(target, "./%s",pfdin->psz1);             sprintf(target, "./%s",pfdin->psz1);
             fih = tvfs_open (target,             fih = tvfs_open (target,
                 _O_BINARY | _O_CREAT | _O_WRONLY | _O_SEQUENTIAL,                 _O_BINARY | _O_CREAT | _O_WRONLY | _O_SEQUENTIAL,
Line 153 
Line 109 
         }         }
         case fdintCLOSE_FILE_INFO:         case fdintCLOSE_FILE_INFO:
         {         {
             char filebuf[256];  
             int result;  
 #ifdef VERBOSE #ifdef VERBOSE
             trace(             trace(
                 "fdintCLOSE_FILE:\n"                 "fdintCLOSE_FILE:\n"
Line 165 
Line 119 
                 "-attributes: %d\n"                 "-attributes: %d\n"
                 "-file's folder index: %d\n"                 "-file's folder index: %d\n"
                 "-run: %d\n",                 "-run: %d\n",
                 pfdin->psz1,                  pfdin->psz1, pfdin->hf, pfdin->date, pfdin->time, pfdin->attribs, pfdin->iFolder, pfdin->cb
                 pfdin->hf,  
                 pfdin->date,  
                 pfdin->time,  
                 pfdin->attribs,  
                 pfdin->iFolder,  
                 pfdin->cb  
             );             );
 #endif #endif
  
Line 180 
Line 128 
         }         }
         case fdintNEXT_CABINET:         case fdintNEXT_CABINET:
         {         {
 #ifdef VERBOSE  
             trace("fdintNEXT_CABINET\n");             trace("fdintNEXT_CABINET\n");
 #endif  
             return 0;             return 0;
         }         }
         case fdintENUMERATE:         case fdintENUMERATE:
         {         {
 #ifdef VERBOSE  
             trace("fdintENUMERATE\n");             trace("fdintENUMERATE\n");
 #endif  
             return 0;             return 0;
         }         }
     }     }
Line 197 
Line 141 
 } }
  
 static void printCabInfo(FDICABINETINFO  cabinfo){ static void printCabInfo(FDICABINETINFO  cabinfo){
 #ifdef VERBOSE  
     trace("   Cabinet Data : cbC %d cF %d cFi %d si %d iC %d fr %d hp %d hn %d\n",     trace("   Cabinet Data : cbC %d cF %d cFi %d si %d iC %d fr %d hp %d hn %d\n",
         cabinfo.cbCabinet,         cabinfo.cbCabinet,
         cabinfo.cFolders ,         cabinfo.cFolders ,
Line 207 
Line 150 
         cabinfo.fReserve ,         cabinfo.fReserve ,
         cabinfo.hasprev ,         cabinfo.hasprev ,
         cabinfo.hasnext );         cabinfo.hasnext );
 #endif  
 } }
  
 static void CheckCabInfo(char *  cabname, static void CheckCabInfo(char *  cabname,
Line 229 
Line 171 
     ok2 ( cabinfo.hasprev == Thasprev, "FDIIsCabinet,cabinfo %s data did not match! Failed!\n", cabname);     ok2 ( cabinfo.hasprev == Thasprev, "FDIIsCabinet,cabinfo %s data did not match! Failed!\n", cabname);
     ok2 ( cabinfo.hasnext == Thasnext, "FDIIsCabinet,cabinfo %s data did not match! Failed!\n", cabname);     ok2 ( cabinfo.hasnext == Thasnext, "FDIIsCabinet,cabinfo %s data did not match! Failed!\n", cabname);
    }    }
      /* TODO :  Message should contain variable values */
      /* TODO :  Use ok - is ok in standalone different fron winetest? */
  
 static HFDI hfdi_unknown; static HFDI hfdi_unknown;
 /* yes its global and ugly */ /* yes its global and ugly */
Line 272 
Line 216 
     CheckCabInfo("simple.cab",fdi_cabinfo_simple,121,1,1,0,0,0,0,0);     CheckCabInfo("simple.cab",fdi_cabinfo_simple,121,1,1,0,0,0,0,0);
  
     tvfs_close(fd);     tvfs_close(fd);
   
     tvfs_create( name_complex_cab, file_complex_cab, size_complex_cab);  
     fd = tvfs_open( name_complex_cab, _O_BINARY, 0 );  
   
     ok( FDIIsCabinet( hfdi_unknown, fd, &fdi_cabinfo_complex) == TRUE,  
     "FDIIsCabinet (Virtual File = Complex.cab) failed!\n");  
   
     printCabInfo(fdi_cabinfo_complex);  
     CheckCabInfo("complex.cab",fdi_cabinfo_complex,12918,1,2,0,0,0,0,0);  
   
     tvfs_close(fd);  
     tvfs_free();     tvfs_free();
  
     trace("Ending TestInfo()\n");     trace("Ending TestInfo()\n");
Line 312 
Line 245 
         trace ("File %s compare failed!\n",name_file_path);         trace ("File %s compare failed!\n",name_file_path);
     tvfs_free();     tvfs_free();
  
     trace("---complex.cab\n");  
     tvfs_create( name_complex_cab, file_complex_cab, size_complex_cab);  
     FDICopy(hfdi_unknown,  
         "complex.cab",  
         "",  
         0,  
         notification_function,  
         NULL,  
         NULL);  
   
     /* Filename when extracted is ./<filename> */  
     sprintf(name_file_path, "./%s", name_README);  
     result = tvfs_compare(name_file_path, file_README, size_README);  
     if (result)  
         trace ("File %s compare failed!\n",name_file_path);  
   
     sprintf(name_file_path, "./%s", name_lgpl_txt);  
     result = tvfs_compare(name_file_path, file_lgpl_txt, size_lgpl_txt);  
     if (result)  
         trace ("File %s compare failed!\n",name_file_path);  
   
     tvfs_free();  
   
     trace("Ending TestCopy()\n");     trace("Ending TestCopy()\n");
 } }
  
Line 344 
Line 254 
     trace("Ending TestDestroy()\n");     trace("Ending TestDestroy()\n");
 } }
  
 START_TEST(paths)  START_TEST(cabinet_fdi)
 { {
     TestCreate();     TestCreate();
     TestInfo();     TestInfo();


Legend:
Removed from v.2.12  
changed lines
  Added in v.2.14

Rizwan Kassim
Powered by
ViewCVS 0.9.2