summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std
diff options
context:
space:
mode:
authorStephan T. Lavavej <stl@exchange.microsoft.com>2016-12-12 19:50:22 +0000
committerStephan T. Lavavej <stl@exchange.microsoft.com>2016-12-12 19:50:22 +0000
commit1738e9d649a067326a4840aaf99e2b2b1023e5d8 (patch)
tree4dcafe2e2681a67075b324f0f199fd5cd6a0e45f /libcxx/test/std
parent14530fcb93fdf7e9a6be614f7985f63be8530fb9 (diff)
downloadbcm5719-llvm-1738e9d649a067326a4840aaf99e2b2b1023e5d8.tar.gz
bcm5719-llvm-1738e9d649a067326a4840aaf99e2b2b1023e5d8.zip
[libcxx] [test] Change ifstream constructor tests to handle read-only files.
Certain source control systems like to set the read-only bit on their files, which interferes with opening "test.dat" for both input and output. Fortunately, we can work around this without losing test coverage. Now, the ifstream.cons tests have comments referring to the ofstream.cons tests. There, we're creating writable files (not checked into source control), where the ifstream constructor tests will succeed. Fixes D26814. llvm-svn: 289463
Diffstat (limited to 'libcxx/test/std')
-rw-r--r--libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/pointer.pass.cpp18
-rw-r--r--libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/string.pass.cpp18
-rw-r--r--libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/pointer.pass.cpp12
-rw-r--r--libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/string.pass.cpp12
4 files changed, 36 insertions, 24 deletions
diff --git a/libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/pointer.pass.cpp b/libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/pointer.pass.cpp
index f43df3c9f84..ef3959cfcef 100644
--- a/libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/pointer.pass.cpp
+++ b/libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/pointer.pass.cpp
@@ -25,22 +25,16 @@ int main()
fs >> x;
assert(x == 3.25);
}
- {
- std::ifstream fs("test.dat", std::ios_base::out);
- double x = 0;
- fs >> x;
- assert(x == 3.25);
- }
+ // std::ifstream(const char*, std::ios_base::openmode) is tested in
+ // test/std/input.output/file.streams/fstreams/ofstream.cons/pointer.pass.cpp
+ // which creates writable files.
{
std::wifstream fs("test.dat");
double x = 0;
fs >> x;
assert(x == 3.25);
}
- {
- std::wifstream fs("test.dat", std::ios_base::out);
- double x = 0;
- fs >> x;
- assert(x == 3.25);
- }
+ // std::wifstream(const char*, std::ios_base::openmode) is tested in
+ // test/std/input.output/file.streams/fstreams/ofstream.cons/pointer.pass.cpp
+ // which creates writable files.
}
diff --git a/libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/string.pass.cpp b/libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/string.pass.cpp
index ad5fe5149df..d4155ea8e7f 100644
--- a/libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/string.pass.cpp
+++ b/libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/string.pass.cpp
@@ -25,22 +25,16 @@ int main()
fs >> x;
assert(x == 3.25);
}
- {
- std::ifstream fs(std::string("test.dat"), std::ios_base::out);
- double x = 0;
- fs >> x;
- assert(x == 3.25);
- }
+ // std::ifstream(const std::string&, std::ios_base::openmode) is tested in
+ // test/std/input.output/file.streams/fstreams/ofstream.cons/string.pass.cpp
+ // which creates writable files.
{
std::wifstream fs(std::string("test.dat"));
double x = 0;
fs >> x;
assert(x == 3.25);
}
- {
- std::wifstream fs(std::string("test.dat"), std::ios_base::out);
- double x = 0;
- fs >> x;
- assert(x == 3.25);
- }
+ // std::wifstream(const std::string&, std::ios_base::openmode) is tested in
+ // test/std/input.output/file.streams/fstreams/ofstream.cons/string.pass.cpp
+ // which creates writable files.
}
diff --git a/libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/pointer.pass.cpp b/libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/pointer.pass.cpp
index bd5832abeb5..60f92569049 100644
--- a/libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/pointer.pass.cpp
+++ b/libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/pointer.pass.cpp
@@ -31,6 +31,12 @@ int main()
fs >> x;
assert(x == 3.25);
}
+ {
+ std::ifstream fs(temp.c_str(), std::ios_base::out);
+ double x = 0;
+ fs >> x;
+ assert(x == 3.25);
+ }
std::remove(temp.c_str());
{
std::wofstream fs(temp.c_str());
@@ -42,5 +48,11 @@ int main()
fs >> x;
assert(x == 3.25);
}
+ {
+ std::wifstream fs(temp.c_str(), std::ios_base::out);
+ double x = 0;
+ fs >> x;
+ assert(x == 3.25);
+ }
std::remove(temp.c_str());
}
diff --git a/libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/string.pass.cpp b/libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/string.pass.cpp
index 7112b17fb8b..b95db662602 100644
--- a/libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/string.pass.cpp
+++ b/libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/string.pass.cpp
@@ -31,6 +31,12 @@ int main()
fs >> x;
assert(x == 3.25);
}
+ {
+ std::ifstream fs(temp, std::ios_base::out);
+ double x = 0;
+ fs >> x;
+ assert(x == 3.25);
+ }
std::remove(temp.c_str());
{
std::wofstream fs(temp);
@@ -42,5 +48,11 @@ int main()
fs >> x;
assert(x == 3.25);
}
+ {
+ std::wifstream fs(temp, std::ios_base::out);
+ double x = 0;
+ fs >> x;
+ assert(x == 3.25);
+ }
std::remove(temp.c_str());
}
OpenPOWER on IntegriCloud