Bug 1124048 - Move TestStorageStream.cpp to gtest and enable it; r=froydnj
authorEhsan Akhgari <ehsan@mozilla.com>
Tue, 20 Jan 2015 23:09:58 -0500 (2015-01-21)
changeset 224925 eae078179fd919ca8e805b17fa412be47dd377a4
parent 224924 447467c0b2c462207aa354d645b5d5062b6fa42e
child 224926 f29bb4c35c4d0f775cfffb5cc62d62ebba8801c0
push id54384
push usereakhgari@mozilla.com
push dateWed, 21 Jan 2015 16:29:46 +0000 (2015-01-21)
treeherdermozilla-inbound@eae078179fd9 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersfroydnj
bugs1124048
milestone38.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1124048 - Move TestStorageStream.cpp to gtest and enable it; r=froydnj
xpcom/tests/TestStorageStream.cpp
xpcom/tests/gtest/TestStorageStream.cpp
xpcom/tests/gtest/moz.build
xpcom/tests/moz.build
deleted file mode 100644
--- a/xpcom/tests/TestStorageStream.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include <stdlib.h>
-#include "nsIStorageStream.h"
-#include "nsIInputStream.h"
-#include "nsIOutputStream.h"
-#include "nsCOMPtr.h"
-
-int main()
-{
-  char kData[4096];
-  memset(kData, 0, sizeof(kData));
-
-  nsresult rv;
-  nsCOMPtr<nsIStorageStream> stor;
-
-  rv = NS_NewStorageStream(4096, UINT32_MAX, getter_AddRefs(stor));
-  if (NS_FAILED(rv))
-    return -1;
-
-  nsCOMPtr<nsIOutputStream> out;
-  rv = stor->GetOutputStream(0, getter_AddRefs(out));
-  if (NS_FAILED(rv))
-    return -1;
-
-  uint32_t n;
-
-  rv = out->Write(kData, sizeof(kData), &n);
-  if (NS_FAILED(rv))
-    return -1;
-
-  rv = out->Write(kData, sizeof(kData), &n);
-  if (NS_FAILED(rv))
-    return -1;
-
-  rv = out->Close();
-  if (NS_FAILED(rv))
-    return -1;
-
-  out = nullptr;
-  
-  nsCOMPtr<nsIInputStream> in;
-  rv = stor->NewInputStream(0, getter_AddRefs(in));
-  if (NS_FAILED(rv))
-    return -1;
-
-  char buf[4096];
-
-  // consume contents of input stream
-  do {
-    rv = in->Read(buf, sizeof(buf), &n);
-    if (NS_FAILED(rv))
-      return -1;
-  } while (n != 0);
-
-  rv = in->Close();
-  if (NS_FAILED(rv))
-    return -1;
-  in = nullptr;
-
-  // now, write 3 more full 4k segments + 11 bytes, starting at 8192
-  // total written equals 20491 bytes
-
-  rv = stor->GetOutputStream(8192, getter_AddRefs(out));
-  if (NS_FAILED(rv))
-    return -1;
-
-  rv = out->Write(kData, sizeof(kData), &n);
-  if (NS_FAILED(rv))
-    return -1;
-
-  rv = out->Write(kData, sizeof(kData), &n);
-  if (NS_FAILED(rv))
-    return -1;
-
-  rv = out->Write(kData, sizeof(kData), &n);
-  if (NS_FAILED(rv))
-    return -1;
-
-  rv = out->Write(kData, 11, &n);
-  if (NS_FAILED(rv))
-    return -1;
-
-  rv = out->Close();
-  if (NS_FAILED(rv))
-    return -1;
-
-  out = nullptr;
-
-  // now, read all
-  rv = stor->NewInputStream(0, getter_AddRefs(in));
-  if (NS_FAILED(rv))
-    return -1;
-
-  // consume contents of input stream
-  do {
-    rv = in->Read(buf, sizeof(buf), &n);
-    if (NS_FAILED(rv))
-      return -1;
-  } while (n != 0);
-
-  rv = in->Close();
-  if (NS_FAILED(rv))
-    return -1;
-  in = nullptr;
-
-  return 0;
-}
new file mode 100644
--- /dev/null
+++ b/xpcom/tests/gtest/TestStorageStream.cpp
@@ -0,0 +1,92 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include <stdlib.h>
+#include "nsIStorageStream.h"
+#include "nsIInputStream.h"
+#include "nsIOutputStream.h"
+#include "nsCOMPtr.h"
+#include "gtest/gtest.h"
+
+TEST(TestStorageStreams, Main)
+{
+  char kData[4096];
+  memset(kData, 0, sizeof(kData));
+
+  nsresult rv;
+  nsCOMPtr<nsIStorageStream> stor;
+
+  rv = NS_NewStorageStream(4096, UINT32_MAX, getter_AddRefs(stor));
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+
+  nsCOMPtr<nsIOutputStream> out;
+  rv = stor->GetOutputStream(0, getter_AddRefs(out));
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+
+  uint32_t n;
+
+  rv = out->Write(kData, sizeof(kData), &n);
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+
+  rv = out->Write(kData, sizeof(kData), &n);
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+
+  rv = out->Close();
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+
+  out = nullptr;
+
+  nsCOMPtr<nsIInputStream> in;
+  rv = stor->NewInputStream(0, getter_AddRefs(in));
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+
+  char buf[4096];
+
+  // consume contents of input stream
+  do {
+    rv = in->Read(buf, sizeof(buf), &n);
+    EXPECT_TRUE(NS_SUCCEEDED(rv));
+  } while (n != 0);
+
+  rv = in->Close();
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+  in = nullptr;
+
+  // now, write 3 more full 4k segments + 11 bytes, starting at 8192
+  // total written equals 20491 bytes
+
+  rv = stor->GetOutputStream(8192, getter_AddRefs(out));
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+
+  rv = out->Write(kData, sizeof(kData), &n);
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+
+  rv = out->Write(kData, sizeof(kData), &n);
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+
+  rv = out->Write(kData, sizeof(kData), &n);
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+
+  rv = out->Write(kData, 11, &n);
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+
+  rv = out->Close();
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+
+  out = nullptr;
+
+  // now, read all
+  rv = stor->NewInputStream(0, getter_AddRefs(in));
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+
+  // consume contents of input stream
+  do {
+    rv = in->Read(buf, sizeof(buf), &n);
+    EXPECT_TRUE(NS_SUCCEEDED(rv));
+  } while (n != 0);
+
+  rv = in->Close();
+  EXPECT_TRUE(NS_SUCCEEDED(rv));
+  in = nullptr;
+}
--- a/xpcom/tests/gtest/moz.build
+++ b/xpcom/tests/gtest/moz.build
@@ -6,14 +6,15 @@
 
 UNIFIED_SOURCES += [
     'TestCRT.cpp',
     'TestEncoding.cpp',
     'TestExpirationTracker.cpp',
     'TestPipes.cpp',
     'TestPriorityQueue.cpp',
     'TestSnappyStreams.cpp',
+    'TestStorageStream.cpp',
     'TestStrings.cpp',
 ]
 
 FINAL_LIBRARY = 'xul-gtest'
 
 FAIL_ON_WARNINGS = True
--- a/xpcom/tests/moz.build
+++ b/xpcom/tests/moz.build
@@ -75,17 +75,16 @@ GeckoCppUnitTests([
 
 if CONFIG['MOZ_MEMORY']:
     GeckoCppUnitTests([
         'TestJemalloc',
     ])
 
 # XXX Make these tests work in libxul builds.
 #CPP_UNIT_TESTS += [
-#    'TestStorageStream',
 #    'TestSynchronization',
 #    'TestTArray',
 #    'TestThreadPool',
 #    'TestThreads',
 #    'TestTimeStamp',
 #    'TestXPIDLString',
 #    'TestUTF',
 #    'TestAtoms',