This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new b527e066362 Wraps DateTimeUtilsTest in a session (#12971)
b527e066362 is described below
commit b527e06636244c854a56cdbee82992f353cd7fed
Author: Brian Demers <[email protected]>
AuthorDate: Thu Jul 18 21:25:20 2024 -0400
Wraps DateTimeUtilsTest in a session (#12971)
DateTimeUtilsTest.getConvertDurationIncludingMonthUnit() uses dates
conversions that are TZ specfic.
Wrapping the test in a session, allows this single test to use a set
timezone, while not affecting the behavior of other tests
Fixes: #12970
---
.../apache/iotdb/db/utils/DateTimeUtilsTest.java | 63 ++++++++++++++--------
1 file changed, 40 insertions(+), 23 deletions(-)
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/DateTimeUtilsTest.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/DateTimeUtilsTest.java
index f528e30ba09..0e99f01fe8a 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/DateTimeUtilsTest.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/DateTimeUtilsTest.java
@@ -18,6 +18,10 @@
*/
package org.apache.iotdb.db.utils;
+import org.apache.iotdb.db.protocol.session.IClientSession;
+import org.apache.iotdb.db.protocol.session.InternalClientSession;
+import org.apache.iotdb.db.protocol.session.SessionManager;
+
import org.apache.tsfile.utils.TimeDuration;
import org.junit.Assert;
import org.junit.Test;
@@ -25,6 +29,7 @@ import org.junit.Test;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
+import java.util.TimeZone;
import static org.junit.Assert.assertEquals;
@@ -147,29 +152,41 @@ public class DateTimeUtilsTest {
/** Test convert duration including natural month unit. Time includes:
1970-01-01 ~ 1970-12-01 */
@Test
public void getConvertDurationIncludingMonthUnit() {
- Assert.assertEquals(31 * 86400000L,
DateTimeUtils.convertDurationStrToLong(0, 1, "mo", "ms"));
- Assert.assertEquals(
- 28 * 86400000L, DateTimeUtils.convertDurationStrToLong(2678400000L, 1,
"mo", "ms"));
- Assert.assertEquals(
- 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(5097600000L, 1,
"mo", "ms"));
- Assert.assertEquals(
- 30 * 86400000L, DateTimeUtils.convertDurationStrToLong(7776000000L, 1,
"mo", "ms"));
- Assert.assertEquals(
- 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(10368000000L,
1, "mo", "ms"));
- Assert.assertEquals(
- 30 * 86400000L, DateTimeUtils.convertDurationStrToLong(13046400000L,
1, "mo", "ms"));
- Assert.assertEquals(
- 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(15638400000L,
1, "mo", "ms"));
- Assert.assertEquals(
- 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(18316800000L,
1, "mo", "ms"));
- Assert.assertEquals(
- 30 * 86400000L, DateTimeUtils.convertDurationStrToLong(20995200000L,
1, "mo", "ms"));
- Assert.assertEquals(
- 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(23587200000L,
1, "mo", "ms"));
- Assert.assertEquals(
- 30 * 86400000L, DateTimeUtils.convertDurationStrToLong(26265600000L,
1, "mo", "ms"));
- Assert.assertEquals(
- 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(28857600000L,
1, "mo", "ms"));
+ // force the current session's timezone to be UTC
+ IClientSession session = new
InternalClientSession("getConvertDurationIncludingMonthUnit");
+ session.setZoneId(ZoneId.of("UTC"));
+
+ try {
+ SessionManager.getInstance().registerSession(session);
+
+ Assert.assertEquals(31 * 86400000L,
DateTimeUtils.convertDurationStrToLong(0, 1, "mo", "ms"));
+ Assert.assertEquals(
+ 28 * 86400000L, DateTimeUtils.convertDurationStrToLong(2678400000L,
1, "mo", "ms"));
+ TimeZone.getTimeZone(ZoneOffset.UTC);
+ Assert.assertEquals(
+ 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(5097600000L,
1, "mo", "ms"));
+ Assert.assertEquals(
+ 30 * 86400000L, DateTimeUtils.convertDurationStrToLong(7776000000L,
1, "mo", "ms"));
+ Assert.assertEquals(
+ 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(10368000000L,
1, "mo", "ms"));
+ Assert.assertEquals(
+ 30 * 86400000L, DateTimeUtils.convertDurationStrToLong(13046400000L,
1, "mo", "ms"));
+ Assert.assertEquals(
+ 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(15638400000L,
1, "mo", "ms"));
+ Assert.assertEquals(
+ 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(18316800000L,
1, "mo", "ms"));
+ Assert.assertEquals(
+ 30 * 86400000L, DateTimeUtils.convertDurationStrToLong(20995200000L,
1, "mo", "ms"));
+ Assert.assertEquals(
+ 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(23587200000L,
1, "mo", "ms"));
+ Assert.assertEquals(
+ 30 * 86400000L, DateTimeUtils.convertDurationStrToLong(26265600000L,
1, "mo", "ms"));
+ Assert.assertEquals(
+ 31 * 86400000L, DateTimeUtils.convertDurationStrToLong(28857600000L,
1, "mo", "ms"));
+ } finally {
+ // clean up the session after test
+ SessionManager.getInstance().removeCurrSession();
+ }
}
public void testConvertDatetimeStrToLongWithoutMS(