goldmansachs/reladomo

reladomo-test-suite fails in non-EST timezone machine

Closed this issue · 4 comments

Number of test cases fail when being built in non-EST timezone. Think these would be better to be made timezone agnostic.

Below are the tests that failed in JST with fresh clone of master repo.

[junit] TestTimeDatedNonTransactional.testToString failed with error
[junit] TestOffHeapSemiUniqueDatedIndex.testBasicData failed
[junit] CacheLoaderManagerTest.testLimitedLoadOfDependentWithOwnerObjectsPassedIn failed
[junit] CacheLoaderManagerTest.testRefreshTwoDatesWithAllDateShifted failed
[junit] CacheLoaderManagerTest.testInitialLoadWithTwoDatesWithinRangeWithAdditionalOperationBuilderThatIsDateInvariant failed
[junit] CacheLoaderManagerTest.testRefreshTopLevelNewDependantOld failed
[junit] CacheLoaderManagerTest.testLoadWithOpenBizDateBringsBackOpenRecords failed
[junit] CacheLoaderManagerTest.testLimitedLoadWithAdditionalOperation failed
[junit] CacheLoaderManagerTest.testRefreshTwoDates failed
[junit] CacheLoaderManagerTest.testInitialLoadWithTwoDatesWithinRangeWithTopAdditionalOperationBuilderThatIsDateVariant failed
[junit] CacheLoaderManagerTest.testLoadWithFilteredMapper failed
[junit] CacheLoaderManagerTest.testRefreshTwoDatesWithDependentDateShifted failed
[junit] CacheLoaderManagerTest.testInitialLoadWithTwoDatesWithinRangeOneDateOutOfRange failed
[junit] CacheLoaderManagerTest.testInitialLoadWithTwoDatesWithinRange failed
[junit] CacheLoaderManagerTest.testOperationBuilderPrerequisite failed
[junit] CacheLoaderManagerTest.testLimitedLoadWithDependency failed
[junit] CacheLoaderManagerTest.testInitialLoad failed
[junit] CacheLoaderManagerTest.testInitialLoadWithTwoDatesWithinRangePostFiltersUnwantedDatesInbetween failed
[junit] CacheLoaderManagerTest.testRefresh failed
[junit] CacheLoaderManagerTest.testInitialLoadWithTwoDatesWithinRangeWithDependentAdditionalOperationBuilderThatIsDateVariant failed
[junit] CacheLoaderManagerTest.testRefreshWithAdditionalOperationBuilderWithLoadPerBusinessDateAndDateShift failed
[junit] CacheLoaderManagerTest.testRefreshTwoDatesWithTopLevelDateShifted failed
[junit] CacheLoaderManagerTest.testLimitedLoad failed
[junit] CacheLoaderManagerTest.testNonRegional failed
[junit] CacheLoaderManagerTest.testLoadWithBizDateInThePastBringsBackNoRecords failed
[junit] CacheLoaderManagerTest.testRefreshWithAdditionalOperationBuilder failed
[junit] CacheLoaderManagerTest.testLoadWithOpenAndPastBizDateBringsBackOpenRecordsOnlyInSingleDateConfig failed
[junit] CacheLoaderManagerTest.testLimitedLoadOfDependent failed
[junit] CacheLoaderManagerTest.testInitialLoadWithTwoDatesWithinRangeAndDependentTaskShifted failed
[junit] CacheLoaderManagerTest.testPrerequisite failed
[junit] CacheLoaderManagerTest.testLoadWithOpenAndPastBizDateBringsBackOpenRecordsOnlyInDateRangeConfig failed
[junit] CacheLoaderManagerTest.testRefreshTopLevelOldDependantNew failed
[junit] CacheLoaderManagerProcessingOnlyTest.testInitialLoad failed
[junit] CacheLoaderManagerProcessingOnlyTest.testRefresh failed
[junit] DependentLoaderFactoryTest.testSameDependentTwice failed
[junit] DependentLoaderFactoryTest.testTwoDependenciesWithDifferentOwnerFilters failed
[junit] FullyMilestonedTopLevelLoaderFactoryTest.testDateFilterToKeep failed
[junit] FullyMilestonedTopLevelLoaderFactoryTest.testInitialLoad failed
[junit] FullyMilestonedTopLevelLoaderFactoryTest.testRefresh failed
[junit] FullyMilestonedTopLevelLoaderFactoryTest.testInitialLoadOnlyPreStartTimeInz failed
[junit] TestAtomicOperationsToString.testInOperation failed
[junit] TestAtomicOperationsToString.testGreaterThanEqualsOperation failed
[junit] TestAtomicOperationsToString.testNotInOperation failed
[junit] TestAtomicOperationsToString.testLessThanOperation failed
[junit] TestAtomicOperationsToString.testNonPrimitiveEqualsOperation failed
[junit] TestAtomicOperationsToString.testLessThanEqualsOperation failed
[junit] TestAtomicOperationsToString.testGreaterThanOperation failed
[junit] TestAtomicOperationsToString.testEqualsOperation failed
[junit] TestAtomicOperationsToString.testNotEqualsOperation failed

I had two thoughts on this:

  • It's easier to fix this from the affected region. Hiroshi, do you want to do this?
  • The "fix" might be as simple as forcing the junit JVM to always run with EST. It might be difficult to change all these tests in a manner that keeps things simple. Right now, many of these tests assert on constants, which is easy. If the test had to have knowledge of timezone and forced the asserts to be on a computed value, we'll end up embedding too much logic into the test.

It's a good idea to force using EST in the JUnit JVM.

Let me test it and submit PR.

Just a quick update. Simply updating to use EST in JUnit JVM didn't completely solve this (some of the test went success though).

I suspect it is something to do with day light saving time (I saw some test failed with 1 hour difference), but I couldn't figure out what exactly.

I have trouble running reladomo JUnit tests in my IDE so it might take some time to address this.

I have these for the partial test suite parameters in idea:
-XX:MaxPermSize=256m -Dlog4j.configuration=log4jWarn.config -Dmithra.xml.config=MithraConfigPartialCache.xml

You'll also have to add a bunch of the target directories to your project dependencies.

I keep my intellij project in gs-rezaem/cfgsync. You might want to take a look.