Thejas Nair,Thank you
Actually there are other unit tests failed because of different order output.
During parse the pig command, a HashMap variable "aliases" will be used in
src-gen/org/apache/pig/impl/logicalLayer/parser/QueryParser.java. I think this
unit test failure is also caused by HashMap problem. What is your opinion?
Here are two failure unit test examples:
TestLogToPhyCompiler:Query: split (load 'a') into x if $0 < '7', y if $0 > '7';
Testcase: testSplit took 0.198 sec
FAILED
IBM JDK:
x: Filter[tuple] - Test-Plan-Builder-240
| |
| Less Than[boolean] - Test-Plan-Builder-243
| |
| |---Project[bytearray][0] - Test-Plan-Builder-241
| |
| |---Constant(7) - Test-Plan-Builder-242
|
|---Split - Test-Plan-Builder-239
|
|---229: Load()
y: Filter[tuple] - Test-Plan-Builder-244
| |
| Greater Than[boolean] - Test-Plan-Builder-247
| |
| |---Project[bytearray][0] - Test-Plan-Builder-245
| |
| |---Constant(7) - Test-Plan-Builder-246
|
|---Split - Test-Plan-Builder-239
|
|---229: Load()
SUN JDK:
y: Filter[tuple] - Test-Plan-Builder-240
| |
| Greater Than[boolean] - Test-Plan-Builder-243
| |
| |---Project[bytearray][0] - Test-Plan-Builder-241
| |
| |---Constant(7) - Test-Plan-Builder-242
|
|---Split - Test-Plan-Builder-239
|
|---229: Load()
x: Filter[tuple] - Test-Plan-Builder-244
| |
| Less Than[boolean] - Test-Plan-Builder-247
| |
| |---Project[bytearray][0] - Test-Plan-Builder-245
| |
| |---Constant(7) - Test-Plan-Builder-246
|
|---Split - Test-Plan-Builder-239
|
|---229: Load()
TestMRCompiler(IBM JDK):
Testcase: testSortUDF1 took 0.02 sec
FAILED
null expected:<...---MapReduce(20,SUM,[COUNT,TestMRCompiler$WeirdComparator]) -
-18:
| ...> but
was:<...---MapReduce(20,SUM,[TestMRCompiler$WeirdComparator,COUNT]) - -18:
| ...>
junit.framework.ComparisonFailure: null
expected:<...---MapReduce(20,SUM,[COUNT,TestMRCompiler$WeirdComparator]) - -18:
| ...> but
was:<...---MapReduce(20,SUM,[TestMRCompiler$WeirdComparator,COUNT]) - -18:
| ...>
at org.apache.pig.test.TestMRCompiler.run(TestMRCompiler.java:1056)
at
org.apache.pig.test.TestMRCompiler.testSortUDF1(TestMRCompiler.java:790)
At 2011-08-18 01:17:02,"Thejas Nair" <[email protected]> wrote:
>Since HashMap does not guarantee ordering, this test is not guaranteed
>to pass, ie the test is faulty and it needs to be fixed. The result from
>IBM JDK is also correct.
>An easy fix for the test case would be to test for both sequences of
>hash-map.
>Can you please open a jira ?
>
>-Thejas
>
>
>
>On 8/16/11 7:56 PM, lulynn_2008 wrote:
>> Hello,
>> I runTestDataModel test case with IBM JDK, and got the following error:
>> Testcase: testTupleToString took 0.002 sec
>> FAILED
>> toString expected:<...ad a little
>> lamb)},[[hello#world,goodbye#all]],42,5000000000,3.14...> but was:<...ad a
>> little lamb)},[[goodbye#all,hello#world]],42,5000000000,3.14...>
>> junit.framework.ComparisonFailure: toString expected:<...ad a little
>> lamb)},[[hello#world,goodbye#all]],42,5000000000,3.14...> but was:<...ad a
>> little lamb)},[[goodbye#all,hello#world]],42,5000000000,3.14...>
>> at
>> org.apache.pig.test.TestDataModel.testTupleToString(TestDataModel.java:269)
>> This is because IBM HashMap.toString() output different with SUN
>> HashMap.toString(). My question is:
>> Should the output must be the one expected?
>> Are the output expected based on SUN JDK?
>> Does the failed test case mean pig-0.8.1 can not work with IBM JDk?
>> Thank you.
>>
>>
>>
>