| """Tests for gn_utils. |
| |
| Before running these tests, run test_data/gn_utils/generate_test_data.sh with |
| a recent version of gn to make sure the test data is up to date. |
| """ |
| |
| from __future__ import absolute_import |
| import datetime |
| import os |
| import re |
| import sys |
| import unittest |
| |
| # Allow imports from cq/scripts folder |
| sys.path.insert( |
| 0, |
| os.path.realpath(os.path.join(os.path.dirname(__file__), os.pardir))) |
| from helpers import gn_utils |
| |
| class GnUtilsTest(unittest.TestCase): |
| def testValidGnLabelToTargetName(self): |
| """Tests that gn_label_to_target_name handles valid input properly.""" |
| self.assertEqual('baz', gn_utils.gn_label_to_target_name('//foo/bar:baz')) |
| self.assertEqual('baz', gn_utils.gn_label_to_target_name('//foo/bar/baz')) |
| self.assertEqual('foo', gn_utils.gn_label_to_target_name('//foo')) |
| self.assertEqual('qux', gn_utils.gn_label_to_target_name('qux')) |
| |
| def testBadGnLabelToTargetName(self): |
| """Tests that gn_label_to_target_name raises exceptions on bad input.""" |
| with self.assertRaises(ValueError): |
| gn_utils.gn_label_to_target_name('') |
| with self.assertRaises(ValueError): |
| gn_utils.gn_label_to_target_name(None) |
| with self.assertRaises(ValueError): |
| gn_utils.gn_label_to_target_name('//foo/') |
| with self.assertRaises(ValueError): |
| gn_utils.gn_label_to_target_name('//foo:') |
| |
| def testFilePathToGnLabel(self): |
| self.assertEqual( |
| '//:*', |
| gn_utils.filepath_to_gn_path('chromium/src/BUILD.gn')) |
| self.assertEqual( |
| '//foo:*', |
| gn_utils.filepath_to_gn_path('chromium/src/foo/BUILD.gn')) |
| self.assertEqual( |
| '//foo/bar/baz:*', |
| gn_utils.filepath_to_gn_path('chromium/src/foo/bar/baz/BUILD.gn')) |
| |
| def testFilePathToGnLabel_RaisesNotBuildGn(self): |
| with self.assertRaises(ValueError): |
| gn_utils.filepath_to_gn_path('chromium/src/x.cc') |
| with self.assertRaises(ValueError): |
| gn_utils.filepath_to_gn_path('chromium/src/foo.gni') |
| with self.assertRaises(ValueError): |
| gn_utils.filepath_to_gn_path('chromium/src/foo/bar') |
| |
| def testFilePathToGnLabel_RaisesNotChromiumSrc(self): |
| with self.assertRaises(ValueError): |
| gn_utils.filepath_to_gn_path('src/BUILD.gn') |
| with self.assertRaises(ValueError): |
| gn_utils.filepath_to_gn_path('BUILD.gn') |
| with self.assertRaises(ValueError): |
| gn_utils.filepath_to_gn_path('chromecast/internal/BUILD.gn') |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |