From 85a6816df1638661059e2dce3fac5adb8080f081 Mon Sep 17 00:00:00 2001 From: Prathmesh Chandwade Date: Mon, 1 Dec 2025 22:59:15 +0000 Subject: [PATCH 1/2] fix(spanner): correct chrono arithmetic in Interval integration test (#15163) --- .../integration_tests/data_types_integration_test.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/google/cloud/spanner/integration_tests/data_types_integration_test.cc b/google/cloud/spanner/integration_tests/data_types_integration_test.cc index 2ce744aea670b..b87b6aa4df3f3 100644 --- a/google/cloud/spanner/integration_tests/data_types_integration_test.cc +++ b/google/cloud/spanner/integration_tests/data_types_integration_test.cc @@ -533,9 +533,12 @@ TEST_F(DataTypeIntegrationTest, SelectIntervalFromTimestampDiff) { Interval expected_interval{ std::chrono::duration_cast( std::chrono::hours(1))}; + auto const now_time_point = std::chrono::system_clock::now(); std::time_t now_seconds = - std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); - std::time_t one_hour_later_seconds = now_seconds + 3600; + std::chrono::system_clock::to_time_t(now_time_point); + std::time_t one_hour_later_seconds = + std::chrono::system_clock::to_time_t( + now_time_point + std::chrono::hours(1)); std::vector> const data = {std::vector{ MakeTimestamp(MakeTime(now_seconds, 0)).value(), From ff9d3905bc3e611394296aaff98c88e8447a1444 Mon Sep 17 00:00:00 2001 From: Prathmesh Chandwade Date: Mon, 1 Dec 2025 22:59:15 +0000 Subject: [PATCH 2/2] fix(spanner): correct chrono arithmetic in Interval integration test (#15163) --- .../data_types_integration_test.cc | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/google/cloud/spanner/integration_tests/data_types_integration_test.cc b/google/cloud/spanner/integration_tests/data_types_integration_test.cc index b87b6aa4df3f3..a873369e47cdc 100644 --- a/google/cloud/spanner/integration_tests/data_types_integration_test.cc +++ b/google/cloud/spanner/integration_tests/data_types_integration_test.cc @@ -530,19 +530,15 @@ SELECT ARRAY[INTERVAL '1-2 3 4:5:6.789123456' YEAR TO SECOND];)sql", TEST_F(DataTypeIntegrationTest, SelectIntervalFromTimestampDiff) { if (UsingEmulator()) GTEST_SKIP(); - Interval expected_interval{ - std::chrono::duration_cast( - std::chrono::hours(1))}; - auto const now_time_point = std::chrono::system_clock::now(); - std::time_t now_seconds = - std::chrono::system_clock::to_time_t(now_time_point); - std::time_t one_hour_later_seconds = - std::chrono::system_clock::to_time_t( - now_time_point + std::chrono::hours(1)); - - std::vector> const data = {std::vector{ - MakeTimestamp(MakeTime(now_seconds, 0)).value(), - MakeTimestamp(MakeTime(one_hour_later_seconds, 0)).value()}}; + + auto const t0 = std::chrono::system_clock::from_time_t(1234567890); + auto const t1 = t0 + std::chrono::hours(1); + + Interval expected_interval{t1 - t0}; + + std::vector> const data = { + {MakeTimestamp(t0).value(), MakeTimestamp(t1).value()}}; + auto result = WriteReadData(*client_, data, "ArrayTimestampValue"); EXPECT_THAT(result, IsOkAndHolds(UnorderedElementsAreArray(data)));