Exemple #1
0
    def testModifyStatusIfDuplicateSingleAnalysisResult(self):
        analyses = self._CreateAnalyses('m', 'b', 1)

        check_duplicate_failures._ModifyStatusIfDuplicate(analyses[0])

        analysis = WfAnalysis.Get('m', 'b', 0)
        self.assertEqual(result_status.FOUND_UNTRIAGED, analysis.result_status)
  def testModifyStatusIfDuplicateFirstResultUntriaged(self):
    analyses = self._CreateAnalyses('m', 'b', 3)
    check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

    analysis_one = WfAnalysis.Get('m', 'b', 1)
    self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED,
                     analysis_one.result_status)
Exemple #3
0
    def testModifyStatusIfDuplicateFirstResultUntriaged(self):
        analyses = self._CreateAnalyses('m', 'b', 3)
        check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

        analysis_one = WfAnalysis.Get('m', 'b', 1)
        self.assertEqual(result_status.FOUND_UNTRIAGED,
                         analysis_one.result_status)
  def testModifyStatusIfDuplicateSingleAnalysisResult(self):
    analyses = self._CreateAnalyses('m', 'b', 1)

    check_duplicate_failures._ModifyStatusIfDuplicate(analyses[0])

    analysis = WfAnalysis.Get('m', 'b', 0)
    self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED,
                     analysis.result_status)
Exemple #5
0
    def testModifyStatusIfDuplicateCheckForTriagedResult(self):
        analyses = self._CreateAnalyses('m', 'b', 1)

        analyses[0].result_status = result_status.NOT_FOUND_UNTRIAGED
        check_duplicate_failures._ModifyStatusIfDuplicate(analyses[0])

        analysis = WfAnalysis.Get('m', 'b', 0)
        self.assertEqual(result_status.NOT_FOUND_UNTRIAGED,
                         analysis.result_status)
  def testModifyStatusIfDuplicateCheckForTriagedResult(self):
    analyses = self._CreateAnalyses('m', 'b', 1)

    analyses[0].result_status = wf_analysis_result_status.NOT_FOUND_UNTRIAGED
    check_duplicate_failures._ModifyStatusIfDuplicate(analyses[0])

    analysis = WfAnalysis.Get('m', 'b', 0)
    self.assertEqual(wf_analysis_result_status.NOT_FOUND_UNTRIAGED,
                     analysis.result_status)
Exemple #7
0
    def testModifyStatusIfDuplicateOnlyOneTriagedEnd(self):
        analyses = self._CreateAnalyses('m', 'b', 4)

        analyses[0].result_status = result_status.FOUND_CORRECT
        analyses[0].put()

        check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])
        for i in range(1, 3):
            analysis = WfAnalysis.Get('m', 'b', i)
            self.assertEqual(result_status.FOUND_UNTRIAGED,
                             analysis.result_status)
  def testModifyStatusIfDuplicateOnlyOneTriagedEnd(self):
    analyses = self._CreateAnalyses('m', 'b', 4)

    analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT
    analyses[0].put()

    check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])
    for i in range(1, 3):
      analysis = WfAnalysis.Get('m', 'b', i)
      self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED,
                       analysis.result_status)
Exemple #9
0
    def testModifyStatusIfDuplicateModifiedMultipleAnalyses(self):
        analyses = self._CreateAnalyses('m', 'b', 4)

        analyses[0].result_status = result_status.FOUND_CORRECT
        analyses[0].put()
        analyses[3].result_status = result_status.FOUND_CORRECT
        analyses[3].put()

        check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])
        for i in range(1, 3):
            analysis = WfAnalysis.Get('m', 'b', i)
            self.assertEqual(result_status.FOUND_CORRECT_DUPLICATE,
                             analysis.result_status)
  def testModifyStatusIfDuplicateModifiedMultipleAnalyses(self):
    analyses = self._CreateAnalyses('m', 'b', 4)

    analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT
    analyses[0].put()
    analyses[3].result_status = wf_analysis_result_status.FOUND_CORRECT
    analyses[3].put()

    check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])
    for i in range(1, 3):
      analysis = WfAnalysis.Get('m', 'b', i)
      self.assertEqual(wf_analysis_result_status.FOUND_CORRECT_DUPLICATE,
                       analysis.result_status)
  def testModifyStatusIfDuplicateSuccess(self):
    analyses = self._CreateAnalyses('m', 'b', 3)

    analyses[0].result_status = wf_analysis_result_status.FOUND_INCORRECT
    analyses[0].put()
    analyses[2].result_status = wf_analysis_result_status.FOUND_INCORRECT
    analyses[2].put()

    check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

    # Use data in datastore rather than in memory.
    analysis_two =  WfAnalysis.Get('m', 'b', 1)
    self.assertEqual(wf_analysis_result_status.FOUND_INCORRECT_DUPLICATE,
                     analysis_two.result_status)
Exemple #12
0
    def testModifyStatusIfDuplicateSuccess(self):
        analyses = self._CreateAnalyses('m', 'b', 3)

        analyses[0].result_status = result_status.FOUND_INCORRECT
        analyses[0].put()
        analyses[2].result_status = result_status.FOUND_INCORRECT
        analyses[2].put()

        check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

        # Use data in datastore rather than in memory.
        analysis_two = WfAnalysis.Get('m', 'b', 1)
        self.assertEqual(result_status.FOUND_INCORRECT_DUPLICATE,
                         analysis_two.result_status)
Exemple #13
0
    def testModifyStatusIfDuplicateDifferentStatuses(self):
        analyses = self._CreateAnalyses('m', 'b', 4)

        analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT
        analyses[0].put()
        analyses[3].result_status = wf_analysis_result_status.FOUND_INCORRECT
        analyses[3].put()

        check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

        for i in range(1, 3):
            analysis = WfAnalysis.Get('m', 'b', i)
            self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED,
                             analysis.result_status)
  def testModifyStatusIfDuplicateNotContinuousFailures(self):
    analyses = self._CreateAnalyses('m', 'b', 5)

    analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT
    analyses[0].put()
    analyses[4].result_status = wf_analysis_result_status.FOUND_CORRECT
    analyses[4].put()

    analyses[2].result['failures'][0]['step_name'] = 'not_a'
    analyses[2].put()

    check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

    analysis_one = WfAnalysis.Get('m', 'b', 1)
    self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED,
                     analysis_one.result_status)
  def testModifyStatusIfDuplicateDifferentStatusInBetween(self):
    analyses = self._CreateAnalyses('m', 'b', 5)

    analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT
    analyses[0].put()
    analyses[4].result_status = wf_analysis_result_status.FOUND_CORRECT
    analyses[4].put()

    analyses[2].result_status = wf_analysis_result_status.NOT_FOUND_UNTRIAGED
    analyses[2].put()

    check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

    analysis_one = WfAnalysis.Get('m', 'b', 1)
    self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED,
                     analysis_one.result_status)
Exemple #16
0
    def testModifyStatusIfDuplicateDifferentStatusInBetween(self):
        analyses = self._CreateAnalyses('m', 'b', 5)

        analyses[0].result_status = result_status.FOUND_CORRECT
        analyses[0].put()
        analyses[4].result_status = result_status.FOUND_CORRECT
        analyses[4].put()

        analyses[2].result_status = result_status.NOT_FOUND_UNTRIAGED
        analyses[2].put()

        check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

        analysis_one = WfAnalysis.Get('m', 'b', 1)
        self.assertEqual(result_status.FOUND_UNTRIAGED,
                         analysis_one.result_status)
Exemple #17
0
    def testModifyStatusIfDuplicateNotContinuousFailures(self):
        analyses = self._CreateAnalyses('m', 'b', 5)

        analyses[0].result_status = result_status.FOUND_CORRECT
        analyses[0].put()
        analyses[4].result_status = result_status.FOUND_CORRECT
        analyses[4].put()

        analyses[2].result['failures'][0]['step_name'] = 'not_a'
        analyses[2].put()

        check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

        analysis_one = WfAnalysis.Get('m', 'b', 1)
        self.assertEqual(result_status.FOUND_UNTRIAGED,
                         analysis_one.result_status)
  def testModifyStatusIfDuplicateDifferentCLs(self):
    analyses = self._CreateAnalyses('m', 'b', 5)

    analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT
    analyses[0].put()
    analyses[4].result_status = wf_analysis_result_status.FOUND_CORRECT
    analyses[4].put()

    analyses[2].result['failures'][0]['suspected_cls'][0]['revision'] = 'rev'
    analyses[2].suspected_cls[0]['revision'] = 'rev'
    analyses[2].put()

    check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

    for i in range(1, 4):
      analysis = WfAnalysis.Get('m', 'b', i)
      self.assertEqual(wf_analysis_result_status.FOUND_UNTRIAGED,
                       analysis.result_status)
Exemple #19
0
    def testModifyStatusIfDuplicateDifferentCLs(self):
        analyses = self._CreateAnalyses('m', 'b', 5)

        analyses[0].result_status = result_status.FOUND_CORRECT
        analyses[0].put()
        analyses[4].result_status = result_status.FOUND_CORRECT
        analyses[4].put()

        analyses[2].result['failures'][0]['suspected_cls'][0][
            'revision'] = 'rev'
        analyses[2].suspected_cls[0]['revision'] = 'rev'
        analyses[2].put()

        check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

        for i in range(1, 4):
            analysis = WfAnalysis.Get('m', 'b', i)
            self.assertEqual(result_status.FOUND_UNTRIAGED,
                             analysis.result_status)
Exemple #20
0
    def testModifyStatusIfDuplicateDuplicateStatusInBetween(self):
        analyses = self._CreateAnalyses('m', 'b', 5)

        analyses[0].result_status = result_status.FOUND_CORRECT
        analyses[0].put()
        analyses[4].result_status = result_status.FOUND_CORRECT
        analyses[4].put()

        analyses[2].result_status = (result_status.FOUND_CORRECT_DUPLICATE)
        analyses[2].put()

        check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

        analysis_one = WfAnalysis.Get('m', 'b', 1)
        analysis_three = WfAnalysis.Get('m', 'b', 3)
        self.assertEqual(result_status.FOUND_CORRECT_DUPLICATE,
                         analysis_one.result_status)
        self.assertEqual(result_status.FOUND_CORRECT_DUPLICATE,
                         analysis_three.result_status)
  def testModifyStatusIfDuplicateDuplicateStatusInBetween(self):
    analyses = self._CreateAnalyses('m', 'b', 5)

    analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT
    analyses[0].put()
    analyses[4].result_status = wf_analysis_result_status.FOUND_CORRECT
    analyses[4].put()

    analyses[2].result_status = (
        wf_analysis_result_status.FOUND_CORRECT_DUPLICATE)
    analyses[2].put()

    check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

    analysis_one = WfAnalysis.Get('m', 'b', 1)
    analysis_three = WfAnalysis.Get('m', 'b', 3)
    self.assertEqual(wf_analysis_result_status.FOUND_CORRECT_DUPLICATE,
                     analysis_one.result_status)
    self.assertEqual(wf_analysis_result_status.FOUND_CORRECT_DUPLICATE,
                     analysis_three.result_status)
  def testModifyStatusIfDuplicateExtraFlakyFailure(self):
    analyses = self._CreateAnalyses('m', 'b', 5)

    analyses[0].result_status = wf_analysis_result_status.FOUND_CORRECT
    analyses[0].put()
    analyses[4].result_status = wf_analysis_result_status.FOUND_CORRECT
    analyses[4].put()

    flaky_failure = {
        'step_name': 'flaky',
        'first_failure': 2,
        'last_pass': 1,
        'suspected_cls': [],
    }
    analyses[2].result['failures'].append(flaky_failure)
    analyses[2].put()

    check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

    for i in range(1, 4):
      analysis = WfAnalysis.Get('m', 'b', i)
      self.assertEqual(wf_analysis_result_status.FOUND_CORRECT_DUPLICATE,
                       analysis.result_status)
Exemple #23
0
    def testModifyStatusIfDuplicateExtraFlakyFailure(self):
        analyses = self._CreateAnalyses('m', 'b', 5)

        analyses[0].result_status = result_status.FOUND_CORRECT
        analyses[0].put()
        analyses[4].result_status = result_status.FOUND_CORRECT
        analyses[4].put()

        flaky_failure = {
            'step_name': 'flaky',
            'first_failure': 2,
            'last_pass': 1,
            'suspected_cls': [],
        }
        analyses[2].result['failures'].append(flaky_failure)
        analyses[2].put()

        check_duplicate_failures._ModifyStatusIfDuplicate(analyses[1])

        for i in range(1, 4):
            analysis = WfAnalysis.Get('m', 'b', i)
            self.assertEqual(result_status.FOUND_CORRECT_DUPLICATE,
                             analysis.result_status)