]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/tools/ctestfw/uperf.cpp
ICU-57166.0.1.tar.gz
[apple/icu.git] / icuSources / tools / ctestfw / uperf.cpp
index 587d82ef4cd8d230dfe04f745745c36713dbde4e..9ff20edccaae01838a7ee8e14aee26e61ed2e33d 100644 (file)
@@ -1,13 +1,12 @@
 /********************************************************************
  * COPYRIGHT:
 /********************************************************************
  * COPYRIGHT:
- * Copyright (c) 2002-2008, International Business Machines Corporation and
+ * Copyright (c) 2002-2012, International Business Machines Corporation and
  * others. All Rights Reserved.
  ********************************************************************/
 
  * others. All Rights Reserved.
  ********************************************************************/
 
-/* z/OS needs this definition for timeval */
-#if !defined(_XOPEN_SOURCE_EXTENDED)
-#define _XOPEN_SOURCE_EXTENDED 1
-#endif
+// Defines _XOPEN_SOURCE for access to POSIX functions.
+// Must be before any other #includes.
+#include "uposixdefs.h"
 
 #include "unicode/uperf.h"
 #include "uoptions.h"
 
 #include "unicode/uperf.h"
 #include "uoptions.h"
@@ -16,6 +15,9 @@
 #include <stdlib.h>
 
 #if !UCONFIG_NO_CONVERSION
 #include <stdlib.h>
 
 #if !UCONFIG_NO_CONVERSION
+
+UPerfFunction::~UPerfFunction() {}
+
 static const char delim = '/';
 static int32_t execCount = 0;
 UPerfTest* UPerfTest::gTest = NULL;
 static const char delim = '/';
 static int32_t execCount = 0;
 UPerfTest* UPerfTest::gTest = NULL;
@@ -205,6 +207,12 @@ void UPerfTest::init(UOption addOptions[], int32_t addOptionsCount,
 }
 
 ULine* UPerfTest::getLines(UErrorCode& status){
 }
 
 ULine* UPerfTest::getLines(UErrorCode& status){
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    if (lines != NULL) {
+        return lines;  // don't do it again
+    }
     lines     = new ULine[MAXLINES];
     int maxLines = MAXLINES;
     numLines=0;
     lines     = new ULine[MAXLINES];
     int maxLines = MAXLINES;
     numLines=0;
@@ -314,7 +322,7 @@ void UPerfTest::setPath( char* pathVal )
 }
 
 // call individual tests, to be overriden to call implementations
 }
 
 // call individual tests, to be overriden to call implementations
-UPerfFunction* UPerfTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* par )
+UPerfFunction* UPerfTest::runIndexedTest( int32_t /*index*/, UBool /*exec*/, const char* & /*name*/, char* /*par*/ )
 {
     // to be overriden by a method like:
     /*
 {
     // to be overriden by a method like:
     /*
@@ -325,7 +333,6 @@ UPerfFunction* UPerfTest::runIndexedTest( int32_t index, UBool exec, const char*
     }
     */
     fprintf(stderr,"*** runIndexedTest needs to be overriden! ***");
     }
     */
     fprintf(stderr,"*** runIndexedTest needs to be overriden! ***");
-    name = ""; exec = exec; index = index; par = par;
     return NULL;
 }
 
     return NULL;
 }
 
@@ -486,8 +493,7 @@ void UPerfTest::usage( void )
         this->runIndexedTest( index, FALSE, name );
         if (!name)
             break;
         this->runIndexedTest( index, FALSE, name );
         if (!name)
             break;
-        fprintf(stdout,name);
-        fprintf(stdout,"\n");
+        fprintf(stdout, "%s\n", name);
         index++;
     }while (name && (name[0] != 0));
     verbose = save_verbose;
         index++;
     }while (name && (name[0] != 0));
     verbose = save_verbose;