[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cups-commit
Subject:    [cups.commit] [CUPS] r10018 - trunk/test
From:       cups-dev () easysw ! com
Date:       2011-09-28 5:56:46
Message-ID: 10789-cups.commit () news ! easysw ! com
[Download RAW message or body]

Author: mike
Date: 2011-09-27 22:56:45 -0700 (Tue, 27 Sep 2011)
New Revision: 10018
Log:
Add test score/summary at end.


Modified:
   trunk/test/ipptool.c

Modified: trunk/test/ipptool.c
===================================================================
--- trunk/test/ipptool.c	2011-09-26 18:46:46 UTC (rev 10017)
+++ trunk/test/ipptool.c	2011-09-28 05:56:45 UTC (rev 10018)
@@ -144,7 +144,11 @@
 		IgnoreErrors = 0,	/* Ignore errors? */
 		Verbosity = 0,		/* Show all attributes? */
 		Version = 11,		/* Default IPP version */
-		XMLHeader = 0;		/* 1 if header is written */
+		XMLHeader = 0,		/* 1 if header is written */
+		TestCount = 0,		/* Number of tests run */
+		PassCount = 0,		/* Number of passing tests */
+		FailCount = 0,		/* Number of failing tests */
+		SkipCount = 0;		/* Number of skipped tests */
 char		*Password = NULL;	/* Password from URI */
 const char * const URIStatusStrings[] =	/* URI status strings */
 {
@@ -398,15 +402,30 @@
               if (vars.filename)
 		free(vars.filename);
 
-              if (access(argv[i], 0) && argv[i][0] != '/')
+              if (access(argv[i], 0))
               {
-                snprintf(filename, sizeof(filename), "%s/ipptool/%s",
-                         cg->cups_datadir, argv[i]);
-                if (access(argv[i], 0))
-		  vars.filename = strdup(argv[i]);
-                else
-                  vars.filename = strdup(filename);
-              }
+               /*
+                * Try filename.gz...
+                */
+
+		snprintf(filename, sizeof(filename), "%s.gz", argv[i]);
+                if (access(filename, 0) && filename[0] != '/')
+		{
+		  snprintf(filename, sizeof(filename), "%s/ipptool/%s",
+			   cg->cups_datadir, argv[i]);
+		  if (access(filename, 0))
+		  {
+		    snprintf(filename, sizeof(filename), "%s/ipptool/%s.gz",
+			     cg->cups_datadir, argv[i]);
+		    if (access(filename, 0))
+		      vars.filename = strdup(argv[i]);
+		  }
+		  else
+		    vars.filename = strdup(filename);
+		}
+		else
+		  vars.filename = strdup(filename);
+	      }
               else
 		vars.filename = strdup(argv[i]);
 
@@ -419,7 +438,9 @@
                 if (!_cups_strcasecmp(ext, ".gif"))
                   set_variable(&vars, "filetype", "image/gif");
                 else if (!_cups_strcasecmp(ext, ".htm") ||
-                         !_cups_strcasecmp(ext, ".html"))
+                         !_cups_strcasecmp(ext, ".htm.gz") ||
+                         !_cups_strcasecmp(ext, ".html") ||
+                         !_cups_strcasecmp(ext, ".html.gz"))
                   set_variable(&vars, "filetype", "text/html");
                 else if (!_cups_strcasecmp(ext, ".jpg"))
                   set_variable(&vars, "filetype", "image/jpeg");
@@ -427,11 +448,14 @@
                   set_variable(&vars, "filetype", "application/pdf");
                 else if (!_cups_strcasecmp(ext, ".png"))
                   set_variable(&vars, "filetype", "image/png");
-                else if (!_cups_strcasecmp(ext, ".ps"))
+                else if (!_cups_strcasecmp(ext, ".ps") ||
+                         !_cups_strcasecmp(ext, ".ps.gz"))
                   set_variable(&vars, "filetype", "application/postscript");
-                else if (!_cups_strcasecmp(ext, ".ras"))
+                else if (!_cups_strcasecmp(ext, ".ras") ||
+                         !_cups_strcasecmp(ext, ".ras.gz"))
                   set_variable(&vars, "filetype", "image/pwg-raster");
-                else if (!_cups_strcasecmp(ext, ".txt"))
+                else if (!_cups_strcasecmp(ext, ".txt") ||
+                         !_cups_strcasecmp(ext, ".txt.gz"))
                   set_variable(&vars, "filetype", "text/plain");
                 else if (!_cups_strcasecmp(ext, ".xps"))
                   set_variable(&vars, "filetype", "application/openxps");
@@ -627,7 +651,17 @@
       do_tests(&vars, testfile);
     }
   }
+  else if (Output == _CUPS_OUTPUT_TEST && TestCount > 1)
+  {
+   /*
+    * Show a summary report if there were multiple tests...
+    */
 
+    printf("\nSummary: %d tests, %d passed, %d failed, %d skipped\n"
+           "Score: %d%%\n", TestCount, PassCount, FailCount, SkipCount,
+           100 * (PassCount + SkipCount) / TestCount);
+  }
+
  /*
   * Exit...
   */
@@ -676,7 +710,7 @@
 		*response = NULL;	/* IPP response */
   size_t	length;			/* Length of IPP request */
   http_status_t	status;			/* HTTP status */
-  int		fd;			/* File to send */
+  cups_file_t	*reqfile;		/* File to send */
   ssize_t	bytes;			/* Bytes read/written */
   char		attr[128];		/* Attribute name */
   ipp_op_t	op;			/* Operation */
@@ -2037,6 +2071,8 @@
     * Submit the IPP request...
     */
 
+    TestCount ++;
+
     request->request.op.version[0]   = version / 10;
     request->request.op.version[1]   = version % 10;
     request->request.op.operation_id = op;
@@ -2078,6 +2114,8 @@
 
     if ((skip_previous && !prev_pass) || skip_test)
     {
+      SkipCount ++;
+
       ippDelete(request);
       request = NULL;
 
@@ -2118,20 +2156,16 @@
 
 	length = ippLength(request);
 
-	if (filename[0])
+	if (filename[0] && (reqfile = cupsFileOpen(filename, "r")) != NULL)
 	{
-	  struct stat	fileinfo;	/* File information */
+	 /*
+	  * Read the file to get the uncompressed file size...
+	  */
 
-	  if (stat(filename, &fileinfo))
-	  {
-	    snprintf(buffer, sizeof(buffer), "%s: %s", filename,
-	             strerror(errno));
-	    _cupsSetError(IPP_INTERNAL_ERROR, buffer, 0);
+	  while ((bytes = cupsFileRead(reqfile, buffer, sizeof(buffer))) > 0)
+	    length += bytes;
 
-	    status = HTTP_ERROR;
-	  }
-	  else
-	    length += fileinfo.st_size;
+	  cupsFileClose(reqfile);
 	}
       }
 
@@ -2152,12 +2186,16 @@
 	  if (!Cancel && status == HTTP_CONTINUE &&
 	      request->state == IPP_DATA && filename[0])
 	  {
-	    if ((fd = open(filename, O_RDONLY | O_BINARY)) >= 0)
+	    if ((reqfile = cupsFileOpen(filename, "r")) != NULL)
 	    {
-	      while (!Cancel && (bytes = read(fd, buffer, sizeof(buffer))) > 0)
+	      while (!Cancel &&
+	             (bytes = cupsFileRead(reqfile, buffer,
+	                                   sizeof(buffer))) > 0)
 		if ((status = cupsWriteRequestData(http, buffer,
 						   bytes)) != HTTP_CONTINUE)
 		  break;
+
+	      cupsFileClose(reqfile);
 	    }
 	    else
 	    {
@@ -2420,8 +2458,13 @@
 
     ippDelete(request);
 
-    request   = NULL;
+    request = NULL;
 
+    if (prev_pass)
+      PassCount ++;
+    else
+      FailCount ++;
+
     if (Output == _CUPS_OUTPUT_PLIST)
     {
       puts("<key>Successful</key>");

_______________________________________________
cups-commit mailing list
cups-commit@easysw.com
http://lists.easysw.com/mailman/listinfo/cups-commit
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic