author | Ehsan 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 id | 54384 |
push user | eakhgari@mozilla.com |
push date | Wed, 21 Jan 2015 16:29:46 +0000 (2015-01-21) |
treeherder | mozilla-inbound@eae078179fd9 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | froydnj |
bugs | 1124048 |
milestone | 38.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
|
xpcom/tests/TestStorageStream.cpp | file | annotate | diff | comparison | revisions | |
xpcom/tests/gtest/TestStorageStream.cpp | file | annotate | diff | comparison | revisions | |
xpcom/tests/gtest/moz.build | file | annotate | diff | comparison | revisions | |
xpcom/tests/moz.build | file | annotate | diff | comparison | revisions |
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',