[Mondrian] Re: FW: Cron <jhyde at marmalade> nice sh --login /home/jhyde/open2/mondrian/testAll --nightly

Richard Emberson remberson at edgedynamics.com
Wed Mar 21 15:41:02 EDT 2007


Julian,

I can not duplicate the errors here either running each test
by itself or doing a complete test run.
Before I checked in everything passed on mysql, oracle, derby
with java5 and mysql with java4.

I would be interested in knowing which tests if run by themselves
produce an error.

The mondrian.rolap.CacheControlTest tests look like unit test cross-talk.
Adding

         // got to clean out the cache
         final TestContext testContext = getTestContext();
         final mondrian.olap.CacheControl cacheControl =
             testContext.getConnection().getCacheControl(null);

         // Flush the entire cache.
         final Connection connection = testContext.getConnection();
         final mondrian.olap.Cube salesCube =
             connection.getSchema().lookupCube("Sales", true);
         final mondrian.olap.CacheControl.CellRegion measuresRegion =
             cacheControl.createMeasuresRegion(salesCube);
         cacheControl.flush(measuresRegion);

to the top of the mondrian.rolap.CacheControlTest testFlush(),
testPartialFlush() and testPartialFlushRange() methods might
fix it. I had to put the above code into the DataSourceChangeListenerTest
testDataSourceChangeListenerPlugin() test in order to eliminate
such cross talk prior to my checkin.

The
testMultipleMeasures(mondrian.rolap.TestAggregationManager)junit.framework.AssertionFailedError
test also looks like unit test cross-talk having to do with
whats in the cache so the above might also fix it.

Concerning the testDrillThrough(mondrian.xmla.XmlaBasicTest)
test result on derby, I can not duplicate it:

test-nobuild:
      [echo] Connecting to jdbc:derby:demo/derby/foodmart
      [echo] Connect String: 
Provider=mondrian;Jdbc='jdbc:derby:demo/derby/foodmart';JdbcUser='sa';JdbcPassword='sa';Catalog='file:/home/emberson/java/mondrian/mondrian.head/demo/FoodMart.xml';PoolNeeded=false
      [java] log4j:WARN No appenders could be found for logger 
(mondrian.olap.MondrianProperties).
      [java] log4j:WARN Please initialize the log4j system properly.
      [java] testName: testDrillThrough
      [java] testClass: mondrian.xmla.XmlaBasicTest
      [java] java.version: 1.6.0
      [java] Iterations=1
      [java] All 1 thread(s) started.

      [java] [0] .

      [java] OK (1 test)

      [java] Time: 12.039
      [java] Normal termination.


What do you suggest?

Richard













Julian Hyde wrote:
> Richard,
> 
> Your change caused a new test exception (in certain configurations):
> 
>      [java] 1)
> testMultipleMeasures(mondrian.rolap.TestAggregationManager)junit.framewo
> rk.AssertionFailedError
>      [java] 	at
> mondrian.rolap.TestAggregationManager.assertRequestSql(TestAggregationMa
> nager.java:695)
>      [java] 	at
> mondrian.rolap.TestAggregationManager.testMultipleMeasures(TestAggregati
> onManager.java:149)
>      [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
>      [java] 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:39)
>      [java] 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:25)
>      [java] 	at
> mondrian.test.MondrianTestRunner$2.run(MondrianTestRunner.java:130)
>      [java] 	at java.lang.Thread.run(Thread.java:534)
> 
> And some javadoc warnings:
> 
>   [javadoc]
> /home/jhyde/open2/mondrian/src/main/mondrian/rolap/agg/AggregationManage
> r.java:380: warning - Tag @link: reference not found: PinSet
>   [javadoc]
> /home/jhyde/open2/mondrian/src/main/mondrian/rolap/agg/AggregationManage
> r.java:380: warning - Tag @link: reference not found: PinSet
>   [javadoc]
> /home/jhyde/open2/mondrian/src/main/mondrian/rolap/agg/AggregationManage
> r.java:380: warning - Tag @link: reference not found: PinSet
>   [javadoc]
> /home/jhyde/open2/mondrian/src/main/mondrian/rolap/agg/AggregationManage
> r.java:380: warning - Tag @link: reference not found: PinSet
> 
> And these:
> 
>      [java] There were 4 failures:
>      [java] 1)
> testFlush(mondrian.rolap.CacheControlTest)junit.framework.ComparisonFail
> ure: expected:<...Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}}
>      [java] Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     time_by_day.quarter=any, values={Q1, Q2, Q3, Q4}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}}
>      [java] Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     time_by_day.quarter=any, values={Q1, Q2, Q3, Q4}
>      [java]     time_by_day.month_of_year=any, values={1, 2, 3, 4, 5, 6,
> 7, 8, 9, 10, 11, 12}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}}
> 
>      [java] discard segment - it has no columns in common: Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any
>      [java]     product_class.product_family=any}
>      [java] Cache state after flush:
>      [java] Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     time_by_day.quarter(true - [Time].[1997].[Q1]),
> values={Q2, Q3, Q4}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}
>      [java]     excluded={[Time].[1997].[Q1]}}
>      [java] Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     time_by_day.quarter(true - [Time].[1997].[Q1]),
> values={Q2, Q3, Q4}
>      [java]     time_by_day.month_of_year=any, values={1, 2, 3, 4, 5, 6,
> 7, 8, 9, 10, 11, 12}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}
>      [java]     excluded={[Time].[1997].[Q1]}}...> but was:<...
>      [java] Cache state after flush:...>
>      [java] 	at
> mondrian.test.DiffRepository.assertEquals(DiffRepository.java:465)
>      [java] 	at
> mondrian.rolap.CacheControlTest.assertCacheStateEquals(CacheControlTest.
> java:78)
>      [java] 	at
> mondrian.rolap.CacheControlTest.testFlush(CacheControlTest.java:305)
>      [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
>      [java] 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:39)
>      [java] 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:25)
>      [java] 	at
> mondrian.test.MondrianTestRunner$2.run(MondrianTestRunner.java:130)
>      [java] 	at java.lang.Thread.run(Thread.java:619)
>      [java] 2)
> testPartialFlush(mondrian.rolap.CacheControlTest)junit.framework.Compari
> sonFailure: expected:<...Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}}
>      [java] Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     time_by_day.quarter=any, values={Q1, Q2, Q3, Q4}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}}
>      [java] Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     time_by_day.quarter=any, values={Q1, Q2, Q3, Q4}
>      [java]     time_by_day.month_of_year=any, values={1, 2, 3, 4, 5, 6,
> 7, 8, 9, 10, 11, 12}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}}
> 
>      [java] discard segment - it has no columns in common: Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any
>      [java]     product_class.product_family=any}
>      [java] Cache state after flush:
>      [java] Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     time_by_day.quarter(true - [Time].[1997].[Q1]),
> values={Q2, Q3, Q4}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}
>      [java]     excluded={[Time].[1997].[Q1]}}
>      [java] Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     time_by_day.quarter(true - [Time].[1997].[Q1]),
> values={Q2, Q3, Q4}
>      [java]     time_by_day.month_of_year=any, values={1, 2, 3, 4, 5, 6,
> 7, 8, 9, 10, 11, 12}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}
>      [java]     excluded={[Time].[1997].[Q1]}}...> but was:<...
>      [java] Cache state after flush:...>
>      [java] 	at
> mondrian.test.DiffRepository.assertEquals(DiffRepository.java:465)
>      [java] 	at
> mondrian.rolap.CacheControlTest.assertCacheStateEquals(CacheControlTest.
> java:78)
>      [java] 	at
> mondrian.rolap.CacheControlTest.testPartialFlush(CacheControlTest.java:3
> 42)
>      [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
>      [java] 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:39)
>      [java] 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:25)
>      [java] 	at
> mondrian.test.MondrianTestRunner$2.run(MondrianTestRunner.java:130)
>      [java] 	at java.lang.Thread.run(Thread.java:619)
>      [java] 3)
> testPartialFlushRange(mondrian.rolap.CacheControlTest)junit.framework.Co
> mparisonFailure: expected:<...Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}}
>      [java] Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     time_by_day.quarter=any, values={Q1, Q2, Q3, Q4}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}}
>      [java] Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     time_by_day.quarter=any, values={Q1, Q2, Q3, Q4}
>      [java]     time_by_day.month_of_year=any, values={1, 2, 3, 4, 5, 6,
> 7, 8, 9, 10, 11, 12}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}}
> 
>      [java] Cache state after flush:
>      [java] Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}
>      [java]     excluded={>= [Time].[1997].[Q2].[4]}}
>      [java] Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     time_by_day.quarter=any, values={Q1, Q2}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}
>      [java]     excluded={>= [Time].[1997].[Q2].[4]}}
>      [java] Segment ## {
>      [java]     measure=sum(sales_fact_1997.unit_sales)
>      [java]     time_by_day.the_year=any, values={1997}
>      [java]     time_by_day.quarter=any, values={Q1}
>      [java]     time_by_day.month_of_year=any, values={1, 2, 3}
>      [java]     product_class.product_family=any, values={Drink, Food,
> Non-Consumable}
>      [java]     excluded={>= [Time].[1997].[Q2].[4]}}...> but was:<...
>      [java] Cache state after flush:...>
>      [java] 	at
> mondrian.test.DiffRepository.assertEquals(DiffRepository.java:465)
>      [java] 	at
> mondrian.rolap.CacheControlTest.assertCacheStateEquals(CacheControlTest.
> java:78)
>      [java] 	at
> mondrian.rolap.CacheControlTest.testPartialFlushRange(CacheControlTest.j
> ava:406)
>      [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
>      [java] 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:39)
>      [java] 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:25)
>      [java] 	at
> mondrian.test.MondrianTestRunner$2.run(MondrianTestRunner.java:130)
>      [java] 	at java.lang.Thread.run(Thread.java:619)
>      [java] 4)
> testDrillThrough(mondrian.xmla.XmlaBasicTest)junit.framework.ComparisonF
> ailure: expected:<...86</Store_x0020_Country>
>      [java]
> <Store_x0020_State>86</Store_x0020_State>
>      [java]
> <Store_x0020_City>86</Store_x0020_City>
>      [java]
> <Store_x0020_Name>86</Store_x0020_Name>
>      [java]
> <Store_x0020_Sqft>86</Store_x0020_Sqft>
>      [java]
> <Store_x0020_Type>86</Store_x0020_Type>
>      [java]                         <Year>86</Year>
>      [java]                         <Quarter>86</Quarter>
>      [java]                         <Month>86</Month>
>      [java]
> <Product_x0020_Family>86</Product_x0020_Family>
>      [java]
> <Product_x0020_Department>86</Product_x0020_Department>
>      [java]
> <Product_x0020_Category>86</Product_x0020_Category>
>      [java]
> <Product_x0020_Subcategory>86</Product_x0020_Subcategory>
>      [java]
> <Brand_x0020_Name>86</Brand_x0020_Name>
>      [java]
> <Product_x0020_Name>86</Product_x0020_Name>
>      [java]
> <Media_x0020_Type>86</Media_x0020_Type>
>      [java]
> <Promotion_x0020_Name>86</Promotion_x0020_Name>
>      [java]
> <State_x0020_Province>86</State_x0020_Province>
>      [java]                         <City>86</City>
>      [java]                         <Name>86</Name>
>      [java]
> <Name_x0020__x0028_Key_x0029_>86</Name_x0020__x0028_Key_x0029_>
>      [java]
> <Education_x0020_Level>86</Education_x0020_Level>
>      [java]                         <Gender>86</Gender>
>      [java]
> <Marital_x0020_Status>86</Marital_x0020_Status>
>      [java]
> <Yearly_x0020_Income>86</Yearly_x0020_Income>
>      [java]
> <Unit_x0020_Sales>86</Unit_x0020_Sales>
>      [java]                     </row>
>      [java]                     <row>
>      [java]                         <Store_x0020_Country>...> but
> was:<......>
>      [java] 	at
> mondrian.test.DiffRepository.assertEquals(DiffRepository.java:465)
>      [java] 	at
> mondrian.xmla.XmlaBasicTest.doTests(XmlaBasicTest.java:625)
>      [java] 	at
> mondrian.xmla.XmlaBasicTest.doTestInline(XmlaBasicTest.java:526)
>      [java] 	at
> mondrian.xmla.XmlaBasicTest.doTest(XmlaBasicTest.java:501)
>      [java] 	at
> mondrian.xmla.XmlaBasicTest.testDrillThrough(XmlaBasicTest.java:414)
>      [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
>      [java] 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:39)
>      [java] 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:25)
>      [java] 	at
> mondrian.test.MondrianTestRunner$2.run(MondrianTestRunner.java:130)
>      [java] 	at java.lang.Thread.run(Thread.java:619)
> 
>      [java] FAILURES!!!
>      [java] Tests run: 1262,  Failures: 4,  Errors: 0
> 
> The executeHR.xml exception is pre-existing.
> 
> Julian


-- 
Quis custodiet ipsos custodes:
This email message is for the sole use of the intended recipient(s) and
may contain confidential information.  Any unauthorized review, use,
disclosure or distribution is prohibited.  If you are not the intended
recipient, please contact the sender by reply email and destroy all
copies of the original message.



More information about the Mondrian mailing list