summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities
diff options
context:
space:
mode:
authorMarshall Clow <mclow.lists@gmail.com>2019-06-17 18:06:30 +0000
committerMarshall Clow <mclow.lists@gmail.com>2019-06-17 18:06:30 +0000
commit2e550cabead6a444bfa69e6c168df99814e05e6a (patch)
tree277c4e6a64b77dd0a537d53a60ceec055039dd85 /libcxx/test/std/utilities
parenta9191c8492abe90dfb4141610d11b0d5d0d67f5d (diff)
downloadbcm5719-llvm-2e550cabead6a444bfa69e6c168df99814e05e6a.tar.gz
bcm5719-llvm-2e550cabead6a444bfa69e6c168df99814e05e6a.zip
Add tests for LWG 3206. NFC
llvm-svn: 363589
Diffstat (limited to 'libcxx/test/std/utilities')
-rw-r--r--libcxx/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.sys_days.pass.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/libcxx/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.sys_days.pass.cpp b/libcxx/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.sys_days.pass.cpp
index a9568455085..03d3bbbc895 100644
--- a/libcxx/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.sys_days.pass.cpp
+++ b/libcxx/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.sys_days.pass.cpp
@@ -90,5 +90,28 @@ int main(int, char**)
assert( year_month_day{sd} == ymd); // and back
}
+// These two tests check the wording for LWG 3206
+ {
+ constexpr year_month_day ymd{year{1971}, month{1}, day{0}}; // bad day
+ static_assert(!ymd.ok(), "");
+ static_assert( ymd.year().ok(), "");
+ static_assert( ymd.month().ok(), "");
+ static_assert(!ymd.day().ok(), "");
+ constexpr sys_days sd{ymd};
+ static_assert(sd.time_since_epoch() == days{364}, "");
+ static_assert(sd == sys_days{ymd.year()/ymd.month()/day{1}} + (ymd.day() - day{1}), "");
+ }
+
+ {
+ constexpr year_month_day ymd{year{1970}, month{12}, day{32}}; // bad day
+ static_assert(!ymd.ok(), "");
+ static_assert( ymd.year().ok(), "");
+ static_assert( ymd.month().ok(), "");
+ static_assert(!ymd.day().ok(), "");
+ constexpr sys_days sd{ymd};
+ static_assert(sd.time_since_epoch() == days{365}, "");
+ static_assert(sd == sys_days{ymd.year()/ymd.month()/day{1}} + (ymd.day() - day{1}), "");
+ }
+
return 0;
}
OpenPOWER on IntegriCloud