]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/tools/ctestfw/uperf.cpp
ICU-59117.0.1.tar.gz
[apple/icu.git] / icuSources / tools / ctestfw / uperf.cpp
index 2c33dcf6aabc38e2ebc13f634a1bde8b7e9b86d2..0735f8a8eff4cbe917505225473d5c96142a07b8 100644 (file)
@@ -1,11 +1,14 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
  * COPYRIGHT:
 /********************************************************************
  * COPYRIGHT:
- * Copyright (c) 2002-2009, 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 */
-#include "platform_xopen_source_extended.h"
+// 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"
@@ -14,6 +17,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;
@@ -203,6 +209,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;
@@ -312,7 +324,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:
     /*
@@ -323,7 +335,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;
 }
 
@@ -484,8 +495,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;