예제 #1
0
 def _AssertNumberOfErrorsWithSources(self, number_of_errors, sources):
   assert 3 == len(sources), 'This function accepts a list of 3 source files'
   self._GenerateBuildFile(textwrap.dedent("""
     rtc_static_library("bar_foo") {
       sources = [
         "%s",
         "%s",
         "%s",
       ],
     }
     rtc_source_set("foo_bar") {
       sources = [
         "%s",
         "%s",
         "%s",
       ],
     }
   """ % (tuple(sources) * 2)))
   self.input_api.files = [MockFile(self.file_path)]
   errors = PRESUBMIT.CheckNoMixingSources(self.input_api,
                                           [MockFile(self.file_path)],
                                           self.output_api)
   self.assertEqual(number_of_errors, len(errors))
   if number_of_errors == 1:
     for source in sources:
       if not source.endswith('.h'):
         self.assertTrue(source in str(errors[0]))
예제 #2
0
 def testNoErrorIfSourcesAreInExclusiveIfBranches(self):
   self._GenerateBuildFile(textwrap.dedent("""
     rtc_source_set("bar_foo") {
       if (is_win) {
         sources = [
           "bar.cc",
         ],
       }
       if (is_ios) {
         sources = [
           "bar.mm",
         ],
       }
     }
     rtc_source_set("foo_bar") {
       if (is_win) {
         sources = [
           "foo.cc",
         ],
       }
       if (is_ios) {
         sources = [
           "foo.mm",
         ],
       }
     }
   """))
   self.input_api.files = [MockFile(self.file_path)]
   errors = PRESUBMIT.CheckNoMixingSources(self.input_api,
                                           [MockFile(self.file_path)],
                                           self.output_api)
   self.assertEqual(0, len(errors))
예제 #3
0
 def testDetectsAssertInObjCppFile(self):
     self.input_api.files = [
         MockFile('with_assert.mm', self._content_with_assert),
         MockFile('without_assert.mm', self._content_without_assert),
     ]
     errors = PRESUBMIT.CheckAssertUsage(
         self.input_api, self.output_api, lambda x: True)
     self.assertEqual(1, len(errors))
     self.assertEqual('with_assert.mm', errors[0].items[0])
예제 #4
0
 def testNoErrorIfProtoFileEndsWithNewline(self):
   self._GenerateProtoWithNewlineAtTheEnd()
   self.input_api.files = [MockFile(self.proto_file_path)]
   errors = PRESUBMIT.CheckNewlineAtTheEndOfProtoFiles(self.input_api,
                                                       self.output_api,
                                                       lambda x: True)
   self.assertEqual(0, len(errors))
예제 #5
0
 def testDoesntDetectAssertInOtherFiles(self):
     self.input_api.files = [
         MockFile('with_assert.cpp', self._content_with_assert),
     ]
     errors = PRESUBMIT.CheckAssertUsage(
         self.input_api, self.output_api, lambda x: True)
     self.assertEqual(0, len(errors))
예제 #6
0
 def testGetChromiumOwnedAddedDeps(self):
   self._input_api.files = [
     MockFile('THIRD_PARTY_CHROMIUM_DEPS.json',
              new_contents=[
                """
                {
                  "dependencies": [
                    "foo",
                    "bar",
                    "buzz",
                    "xyz"
                  ]
                }
                """
              ],
              old_contents=[
                """
                {
                  "dependencies": [
                    "foo",
                    "buzz"
                  ]
                }
                """
              ],
              action='M')
   ]
   added_deps = check_3pp.GetChromiumOwnedAddedDeps(self._input_api)
   self.assertEqual(len(added_deps), 2, added_deps)
   self.assertIn('bar', added_deps)
   self.assertIn('xyz', added_deps)
예제 #7
0
 def testErrorIfSourcesAreNotInExclusiveIfBranches(self):
     self._GenerateBuildFile(
         textwrap.dedent("""
   rtc_library("bar_foo") {
     if (is_win) {
       sources = [
         "bar.cc",
       ],
     }
     if (foo_bar) {
       sources += [
         "bar.mm",
       ],
     }
   }
   rtc_library("foo_bar") {
     if (is_win) {
       sources = [
         "foo.cc",
       ],
     }
     if (foo_bar) {
       sources += [
         "foo.mm",
       ],
     }
     if (is_ios) {
       sources = [
         "bar.m",
         "bar.c",
       ],
     }
   }
 """))
     self.input_api.files = [MockFile(self.file_path)]
     errors = PRESUBMIT.CheckNoMixingSources(self.input_api,
                                             [MockFile(self.file_path)],
                                             self.output_api)
     self.assertEqual(1, len(errors))
     self.assertTrue('bar.cc' in str(errors[0]))
     self.assertTrue('bar.mm' in str(errors[0]))
     self.assertTrue('foo.cc' in str(errors[0]))
     self.assertTrue('foo.mm' in str(errors[0]))
     self.assertTrue('bar.m' in str(errors[0]))
     self.assertTrue('bar.c' in str(errors[0]))
예제 #8
0
 def testErrorIfProtoFileDoesNotEndWithNewline(self):
     self._GenerateProtoWithoutNewlineAtTheEnd()
     self.input_api.files = [MockFile(self.proto_file_path)]
     errors = PRESUBMIT.CheckNewlineAtTheEndOfProtoFiles(
         self.input_api, self.output_api)
     self.assertEqual(1, len(errors))
     self.assertEqual(
         'File %s must end with exactly one newline.' %
         self.proto_file_path, str(errors[0]))
예제 #9
0
 def testCheckNoChangesInAutoImportedDepsNotFireOnNewlyAdded(self):
   self._input_api.files = [
     MockFile('third_party/chromium/source.js')
   ]
   errors = check_3pp.CheckNoChangesInAutoImportedDeps(self._input_api,
                                                       self._output_api,
                                                       ['webrtc'],
                                                       ['chromium'],
                                                       ['chromium'], None)
   self.assertEqual(len(errors), 0, errors)
예제 #10
0
 def testCheckNoChangesInAutoImportedDepsFire(self):
   self._input_api.files = [
     MockFile('third_party/chromium/source.js')
   ]
   errors = check_3pp.CheckNoChangesInAutoImportedDeps(self._input_api,
                                                       self._output_api,
                                                       ['webrtc'],
                                                       ['chromium'], [],
                                                       None)
   self.assertEqual(len(errors), 1)
   self.assertIn('chromium', errors[0].message)
예제 #11
0
 def testCheckNoChangesInAutoImportedDepsNotFireOnSpecialTag(self):
   self._input_api.files = [
     MockFile('third_party/chromium/source.js')
   ]
   self._input_api.change.tags['NO_AUTOIMPORT_DEPS_CHECK'] = 'True'
   errors = check_3pp.CheckNoChangesInAutoImportedDeps(self._input_api,
                                                       self._output_api,
                                                       ['webrtc'],
                                                       ['chromium'],
                                                       [], None)
   self.assertEqual(len(errors), 0, errors)