[ 
https://issues.apache.org/jira/browse/MAPREDUCE-1871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12885778#action_12885778
 ] 

Konstantin Boudnik commented on MAPREDUCE-1871:
-----------------------------------------------

bq. Code is right now like this. If you check the testcases, values are getting 
received in the way you mentioned. When using Aspectj, I cannot use ArrayLists 
or Integer Arrays as return values in JobTracker. So, used int array .

I think there's a confusion here. Current code uses an int array as a return 
type and then you accessing the content of the array by accessing the elements 
of array i.e. {{int succeededTasksSinceStartBeforeJob = ttAllInfo[1];}} This is 
bad for at least two reasons:
- it is hard to say what [1] or [2] means. But you can fix this by having named 
constants for the array elements (although, it is still C-like programming 
style)
- you have to keep the order of elements to be synced both on the producer (JT) 
and consumer (your test) sides. This is ugly and hard to maintain.

What I have suggested is this. Instead of int array have class Foo with a 
number of int fields, a constructor, and a bunch of getters returning int as 
well. Instead of creating an array now you'll instantiate an object type Foo by 
passing whatever values you need to its constructor. The following method 
signature {{public int[] JobTracker.getInfoFromAllClientsForAllTaskType()}} 
will change to {{public Foo JobTracker.getInfoFromAllClientsForAllTaskType()}}. 
Your test will be accessing the needed value via particular getters from the 
object say: {{foo.getSucceededTasksSinceStartBeforeJob()}} (also, the name 
doesn't make much sense to me... sincestartbefore ?).

Hope it makes more sense now.


> Create automated test scenario for "Collect information about number of tasks 
> succeeded / total per time unit for a tasktracker"
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-1871
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-1871
>             Project: Hadoop Map/Reduce
>          Issue Type: Test
>          Components: test
>            Reporter: Iyappan Srinivasan
>            Assignee: Iyappan Srinivasan
>         Attachments: 1871-ydist-security-patch.txt, 
> 1871-ydist-security-patch.txt, 1871-ydist-security-patch.txt, 
> 1871-ydist-security-patch.txt, MAPREDUCE-1871.patch, MAPREDUCE-1871.patch
>
>
> Create automated test scenario for "Collect information about number of tasks 
> succeeded / total per time unit for a tasktracker"
> 1) Verification of all the above mentioned fields with the specified TTs. 
> Total no. of tasks and successful tasks should be equal to the corresponding 
> no. of tasks specified in TTs logs
> 2)  Fail a task on tasktracker.  Node UI should update the status of tasks on 
> that TT accordingly. 
> 3)  Kill a task on tasktracker.  Node UI should update the status of tasks on 
> that TT accordingly
> 4) Positive Run simultaneous jobs and check if all the fields are populated 
> with proper values of tasks.  Node UI should have correct valiues for all the 
> fields mentioned above. 
> 5)  Check the fields across one hour window  Fields related to hour should be 
> updated after every hour
> 6) Check the fields across one day window  fields related to hour should be 
> updated after every day
> 7) Restart a TT and bring it back.  UI should retain the fields values.  
> 8) Positive Run a bunch of jobs with 0 maps and 0 reduces simultanously.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to