blob: d0a0ed7c42c2b8f94d0b35e154affd7582024054 [file] [log] [blame] [edit]
"""Tests for make_utils."""
from __future__ import absolute_import
import os
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 make_utils
class MakeUtilsTest(unittest.TestCase):
def testSingleError(self):
"""Test the comments generated for a signle error."""
make_output = ('path/to/warn.c:000:0: warning: This is just a warning.\n'
'path/to/file.c:123:4: error: This is an error\n'
' extra information for the erorr.\n'
'some more lines that come later.\n')
directory = 'path/to'
expected_comments = {
'file.c': [{
'line': 123,
'message': 'path/to/file.c:123:4: error: This is an error'
}]
}
self.assertDictEqual(
expected_comments,
make_utils.make_error_to_comments(make_output, directory))
def testMultipleErrors(self):
"""Test the comments generated from multiple different errors."""
make_output = ('path/to/warn.c:000:0: warning: This is just a warning.\n'
'path/to/file1.c:123:4: error: This is error 1\n'
' extra information for the erorr.\n'
'path/to/file1.c:456:7: error: This is error 2\n'
'path/to/other/file3.c:1:1: error: This is error 3\n'
'some more lines that come later.\n')
directory = 'path/to'
expected_comments = {
'file1.c': [{
'line': 123,
'message': 'path/to/file1.c:123:4: error: This is error 1'
}, {
'line': 456,
'message': 'path/to/file1.c:456:7: error: This is error 2'
}],
'other/file3.c': [{
'line': 1,
'message': 'path/to/other/file3.c:1:1: error: This is error 3'
}]
}
self.assertDictEqual(
expected_comments,
make_utils.make_error_to_comments(make_output, directory))
def testNoErrors(self):
"""Test that no comments are generated if there are no errors."""
make_output = ('path/to/warn.c:000:0: warning: This is just a warning.\n'
'path/to/file.c:123:4: warning: This is another warning.\n'
' extra information for the warning.\n'
'Some more lines with something that is not an error\n')
directory = 'path/to'
expected_comments = {}
self.assertDictEqual(
expected_comments,
make_utils.make_error_to_comments(make_output, directory))
if __name__ == '__main__':
unittest.main()