]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/test/iotest/stream.cpp
ICU-64232.0.1.tar.gz
[apple/icu.git] / icuSources / test / iotest / stream.cpp
index 8fb3cf5adfb7ba7d6524b2bcdd65f8d043e96705..0ffc62390632ef9078e259ef5a5085f1a64b9a58 100644 (file)
@@ -1,10 +1,12 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
-*   Copyright (C) 2002-2010, International Business Machines
+*   Copyright (C) 2002-2016, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   file name:  iotest.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
@@ -18,9 +20,9 @@
 #include "unicode/ucnv.h"
 #include "unicode/ustring.h"
 #include "ustr_cnv.h"
+#include "cmemory.h"
 #include "iotest.h"
 
-#if U_IOSTREAM_SOURCE >= 199711
 #if defined(__GNUC__) && __GNUC__ >= 4
 #define USE_SSTREAM 1
 #include <sstream>
 #include <fstream>
 #include <iomanip>
 using namespace std;
-#elif U_IOSTREAM_SOURCE >= 198506
-#define USE_OLD_IOSTREAM 1
-#include <strstream.h>
-#include <fstream.h>
-#endif
 
 #include <string.h>
 
 U_CDECL_BEGIN
-#ifdef U_WINDOWS
+#if U_PLATFORM_USES_ONLY_WIN32_API
 const UChar NEW_LINE[] = {0x0d,0x0a,0};
 const char C_NEW_LINE[] = {0x0d,0x0a,0};
 #define UTF8_NEW_LINE "\x0d\x0a"
@@ -51,11 +48,9 @@ const char C_NEW_LINE[] = {'\n',0};
 #endif
 U_CDECL_END
 
-#if U_IOSTREAM_SOURCE
 U_CDECL_BEGIN
 static void U_CALLCONV TestStream(void)
 {
-#if U_IOSTREAM_SOURCE >= 198506
     const UChar thisMu[] = { 0x74, 0x48, 0x69, 0x73, 0x3BC, 0};
     const UChar mu[] = { 0x6D, 0x75, 0};
     UnicodeString str1 = UNICODE_STRING_SIMPLE("str1");
@@ -81,7 +76,7 @@ static void U_CALLCONV TestStream(void)
         return;
     }
     ucnv_close(defConv);
-    strncpy(defConvName, ucnv_getDefaultName(), sizeof(defConvName)/sizeof(defConvName[0]));
+    strncpy(defConvName, ucnv_getDefaultName(), UPRV_LENGTHOF(defConvName));
     ucnv_setDefaultName("UTF-8");
 
     static const char * const TESTSTRING = "\x20\x74\x48\x69\x73\xCE\xBC\xE2\x80\x82\x20\x6D\x75\x20\x77\x6F\x72\x6C\x64";
@@ -110,12 +105,12 @@ static void U_CALLCONV TestStream(void)
 
     inTestStream >> inStr >> inStr2;
     if (inStr.compare(thisMu) != 0) {
-        u_austrncpy(inStrC, inStr.getBuffer(), inStr.length());
+        u_austrncpy(inStrC, toUCharPtr(inStr.getBuffer()), inStr.length());
         inStrC[inStr.length()] = 0;
         log_err("Got: \"%s\", Expected: \"tHis\\u03BC\"\n", inStrC);
     }
     if (inStr2.compare(mu) != 0) {
-        u_austrncpy(inStrC, inStr.getBuffer(), inStr.length());
+        u_austrncpy(inStrC, toUCharPtr(inStr.getBuffer()), inStr.length());
         inStrC[inStr.length()] = 0;
         log_err("Got: \"%s\", Expected: \"mu\"\n", inStrC);
     }
@@ -158,7 +153,7 @@ static void U_CALLCONV TestStream(void)
     ostrstream outLargeStream(testLargeStreamBuf, sizeof(testLargeStreamBuf));
 #endif
     UChar large_array[200];
-    int32_t large_array_length = sizeof(large_array)/sizeof(UChar);
+    int32_t large_array_length = UPRV_LENGTHOF(large_array);
     for (int32_t i = 0; i < large_array_length; i++) {
         large_array[i] = 0x41;
     }
@@ -182,9 +177,6 @@ static void U_CALLCONV TestStream(void)
         log_err("Error converting string for large stream buffer testing.\n");
     }
     ucnv_close(defConv);
-#else
-    log_info("U_IOSTREAM_SOURCE is disabled\n");
-#endif
 }
 
 #define IOSTREAM_GOOD_SHIFT 3
@@ -248,12 +240,7 @@ testString(
 
     if (getBitStatus(sstrm) != expectedStatus) {
         printBits(sstrm);
-#ifdef USE_OLD_IOSTREAM
-        log_info("Warning. Expected status %d, Got %d. This maybe caused by the fact that the non-standardized iostream is being used.\n", expectedStatus, getBitStatus(sstrm));
-        log_info("See verbose output for details.\n");
-#else
         log_err("Expected status %d, Got %d. See verbose output for details\n", expectedStatus, getBitStatus(sstrm));
-#endif
     }
     if (str != UnicodeString(expectedString)) {
         log_err("Did not get expected results from \"%s\", expected \"%s\"\n", testString, expectedString);
@@ -271,11 +258,6 @@ static void U_CALLCONV TestStreamEOF(void)
     strstream ss;
 #endif
 
-#ifdef USE_OLD_IOSTREAM
-    log_info("Old non-standardized iostream being used. This may result in inconsistent state flag settings. (e.g. failbit may not be set properly)\n");
-    log_info("In such a case, warnings will be issued instead of errors.\n");
-#endif
-
     fs << "EXAMPLE";
     fs.seekg(0);
     ss << "EXAMPLE";
@@ -339,4 +321,3 @@ U_CFUNC void addStreamTests(TestNode** root) {
     addTest(root, &TestStream, "stream/TestStream");
     addTest(root, &TestStreamEOF, "stream/TestStreamEOF");
 }
-#endif