[poppler] test/Makefile.am test/perf-test.cc test/perf-test-preview-dummy.cc

Krzysztof Kowalczyk kjk at kemper.freedesktop.org
Tue Sep 25 00:26:08 PDT 2007


 test/Makefile.am                |   16 +++++-
 test/perf-test-preview-dummy.cc |    1 
 test/perf-test.cc               |  104 ++++++++++++++++------------------------
 3 files changed, 59 insertions(+), 62 deletions(-)

New commits:
diff-tree ff25e83abae1ca17e2e7dd6f20946026fca69fff (from 70f3bf42b3028d9a2e4aefdc2e1a458b3c77b0e7)
Author: Krzysztof Kowalczyk <kkowalczyk at gmail.com>
Date:   Mon Sep 24 23:57:25 2007 -0700

    Make perf-test compile on unix as well.

diff --git a/test/Makefile.am b/test/Makefile.am
index 614fe38..df1809a 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -26,6 +26,12 @@ endif
 
 endif
 
+if BUILD_SPLASH_OUTPUT
+
+perf_test =				\
+	perf-test
+
+endif
 
 INCLUDES =					\
 	-I$(top_srcdir)				\
@@ -36,7 +42,7 @@ INCLUDES =					\
 	$(GTK_TEST_CFLAGS)			\
 	$(FONTCONFIG_CFLAGS)
 
-noinst_PROGRAMS = $(gtk_splash_test) $(gtk_cairo_test) $(pdf_inspector)
+noinst_PROGRAMS = $(gtk_splash_test) $(gtk_cairo_test) $(pdf_inspector) $(perf_test)
 
 gtk_splash_test_SOURCES =			\
        gtk-splash-test.cc
@@ -65,5 +71,13 @@ pdf_inspector_LDADD =					\
 	$(FREETYPE_LIBS)				\
 	$(GTK_TEST_LIBS)
 
+perf_test_SOURCES =			\
+       perf-test.cc                     \
+       perf-test-preview-dummy.cc
+
+perf_test_LDADD =				\
+	$(top_builddir)/poppler/libpoppler.la	\
+	$(FREETYPE_LIBS)
+
 EXTRA_DIST =					\
 	pdf-operators.c
diff --git a/test/perf-test-preview-dummy.cc b/test/perf-test-preview-dummy.cc
index 10c5518..09f7d0f 100644
--- a/test/perf-test-preview-dummy.cc
+++ b/test/perf-test-preview-dummy.cc
@@ -6,6 +6,7 @@ Using this perf-test still works for per
 get any visual feedback during testing.
 */
 
+#include "splash/SplashBitmap.h"
 
 void PreviewBitmapSplash(SplashBitmap *bmpSplash)
 {
diff --git a/test/perf-test.cc b/test/perf-test.cc
index 1f88a2f..a9fa50b 100644
--- a/test/perf-test.cc
+++ b/test/perf-test.cc
@@ -5,6 +5,7 @@
   very simplistic performance measuring.
 
   TODO:
+   * make it work with cairo output as well
    * print more info about document like e.g. enumarate images,
      streams, compression, encryption, password-protection. Each should have
      a command-line arguments to turn it on/off
@@ -44,20 +45,20 @@
 
 #include "Error.h"
 #include "ErrorCodes.h"
-#include "GooString.h"
-#include "GooList.h"
-#include "GooTimer.h"
+#include "goo/GooString.h"
+#include "goo/GooList.h"
+#include "goo/GooTimer.h"
 #include "GlobalParams.h"
-#include "SplashBitmap.h"
+#include "splash/SplashBitmap.h"
 #include "Object.h" /* must be included before SplashOutputDev.h because of sloppiness in SplashOutputDev.h */
 #include "SplashOutputDev.h"
 #include "TextOutputDev.h"
 #include "PDFDoc.h"
-#include "SecurityHandler.h"
 #include "Link.h"
 
 #ifdef _MSC_VER
 #define strdup _strdup
+#define strcasecmp _stricmp
 #endif
 
 #define dimof(X)    (sizeof(X)/sizeof((X)[0]))
@@ -269,7 +270,7 @@ bool str_ieq(const char *str1, const cha
         return true;
     if (!str1 || !str2)
         return false;
-    if (0 == _stricmp(str1, str2))
+    if (0 == strcasecmp(str1, str2))
         return true;
     return false;
 }
@@ -321,6 +322,32 @@ void sleep_milliseconds(int milliseconds
 #endif
 }
 
+#ifndef _MSC_VER
+void strcpy_s(char* dst, size_t dst_size, const char* src)
+{
+    size_t src_size = strlen(src) + 1;
+    if (src_size <= dst_size)
+        memcpy(dst, src, src_size);
+    else {
+        if (dst_size > 0) {
+            memcpy(dst, src, dst_size);
+            dst[dst_size-1] = 0;
+        }
+    }
+}
+
+void strcat_s(char *dst, size_t dst_size, const char* src)
+{
+    size_t dst_len = strlen(dst);
+    if (dst_len >= dst_size) {
+        if (dst_size > 0)
+            dst[dst_size-1] = 0;
+        return;
+    }
+    strcpy_s(dst+dst_len, dst_size - dst_len, src);
+}
+#endif
+
 static SplashColorMode gSplashColorMode = splashModeBGR8;
 
 static SplashColor splashColRed;
@@ -801,6 +828,8 @@ static void RenderPdfAsText(const char *
     GooString *         fileNameStr = NULL;
     PDFDoc *            pdfDoc = NULL;
     GooString *         txt = NULL;
+    int                 pageCount;
+    double              timeInMs;
 
     assert(fileName);
     if (!fileName)
@@ -827,10 +856,10 @@ static void RenderPdfAsText(const char *
     }
 
     msTimer.stop();
-    double timeInMs = msTimer.getElapsed();
+    timeInMs = msTimer.getElapsed();
     LogInfo("load: %.2f ms\n", timeInMs);
 
-    int pageCount = pdfDoc->getNumPages();
+    pageCount = pdfDoc->getNumPages();
     LogInfo("page count: %d\n", pageCount);
 
     for (int curPage = 1; curPage <= pageCount; curPage++) {
@@ -867,8 +896,10 @@ Exit:
 
 static void RenderPdf(const char *fileName)
 {
-    const char *fileNameSplash = NULL;
-    PdfEnginePoppler * engineSplash = NULL;
+    const char *        fileNameSplash = NULL;
+    PdfEnginePoppler *  engineSplash = NULL;
+    int                 pageCount;
+    double              timeInMs;
 
 #ifdef COPY_FILE
     // TODO: fails if file already exists and has read-only attribute
@@ -887,9 +918,9 @@ static void RenderPdf(const char *fileNa
         goto Error;
     }
     msTimer.stop();
-    double timeInMs = msTimer.getElapsed();
+    timeInMs = msTimer.getElapsed();
     LogInfo("load splash: %.2f ms\n", timeInMs);
-    int pageCount = engineSplash->pageCount();
+    pageCount = engineSplash->pageCount();
 
     LogInfo("page count: %d\n", pageCount);
     if (gfLoadOnly)
@@ -992,53 +1023,6 @@ static bool ParseResolutionString(const 
     return true;
 }
 
-#ifdef DEBUG
-static void u_ParseResolutionString(void)
-{
-    int i;
-    int result, resX, resY;
-    const char *str;
-    struct TestData {
-        const char *    str;
-        int             result;
-        int             resX;
-        int             resY;
-    } testData[] = {
-        { "", false, 0, 0 },
-        { "abc", false, 0, 0},
-        { "34", false, 0, 0},
-        { "0x0", true, 0, 0},
-        { "0x1", true, 0, 1},
-        { "0xab", false, 0, 0},
-        { "1x0", true, 1, 0},
-        { "100x200", true, 100, 200},
-        { "58x58", true, 58, 58},
-        { "  58x58", true, 58, 58},
-        { "58x  58", true, 58, 58},
-        { "58x58  ", true, 58, 58},
-        { "     58  x  58  ", true, 58, 58},
-        { "34x1234a", false, 0, 0},
-        { NULL, false, 0, 0}
-    };
-    for (i=0; NULL != testData[i].str; i++) {
-        str = testData[i].str;
-        result = ParseResolutionString(str, &resX, &resY);
-        assert(result == testData[i].result);
-        if (result) {
-            assert(resX == testData[i].resX);
-            assert(resY == testData[i].resY);
-        }
-    }
-}
-#endif
-
-static void runAllUnitTests(void)
-{
-#ifdef DEBUG
-    u_ParseResolutionString();
-#endif
-}
-
 static void ParseCommandLine(int argc, char **argv)
 {
     char *      arg;
@@ -1243,8 +1227,6 @@ static void RenderCmdLineArg(char *cmdLi
 
 int main(int argc, char **argv)
 {
-    //runAllUnitTests();
-
     setErrorFunction(my_error);
     ParseCommandLine(argc, argv);
     if (0 == StrList_Len(&gArgsListRoot))


More information about the poppler mailing list