1
|
|
|
import os |
2
|
|
|
import unittest |
3
|
|
|
from unittest.case import SkipTest |
4
|
|
|
|
5
|
|
|
from coalib.misc import Constants |
6
|
|
|
|
7
|
|
|
try: |
8
|
|
|
from coalib.output.dbus.DbusDocument import DbusDocument |
9
|
|
|
except ImportError as err: |
10
|
|
|
raise SkipTest('python-dbus is not installed') |
11
|
|
|
|
12
|
|
|
|
13
|
|
|
class DbusDocumentTest(unittest.TestCase): |
14
|
|
|
|
15
|
|
|
def setUp(self): |
16
|
|
|
self.config_path = os.path.abspath( |
17
|
|
|
os.path.join(os.path.dirname(__file__), |
18
|
|
|
"dbus_test_files", |
19
|
|
|
".coafile")) |
20
|
|
|
self.testcode_c_path = os.path.abspath( |
21
|
|
|
os.path.join(os.path.dirname(__file__), |
22
|
|
|
"dbus_test_files", |
23
|
|
|
"testcode.c")) |
24
|
|
|
|
25
|
|
|
def test_path(self): |
26
|
|
|
test_file = "a" |
27
|
|
|
uut = DbusDocument(doc_id=1) |
28
|
|
|
self.assertEqual(uut.path, "") |
29
|
|
|
|
30
|
|
|
uut = DbusDocument(doc_id=1, path=test_file) |
31
|
|
|
self.assertEqual(uut.path, os.path.abspath(test_file)) |
32
|
|
|
|
33
|
|
|
def test_config(self): |
34
|
|
|
uut = DbusDocument(doc_id=1) |
35
|
|
|
self.assertEqual(uut.FindConfigFile(), "") |
36
|
|
|
|
37
|
|
|
uut.path = self.testcode_c_path |
38
|
|
|
self.assertEqual(uut.FindConfigFile(), self.config_path) |
39
|
|
|
|
40
|
|
|
uut.SetConfigFile("config_file") |
41
|
|
|
self.assertEqual(uut.config_file, "config_file") |
42
|
|
|
|
43
|
|
|
self.assertEqual(uut.GetConfigFile(), "config_file") |
44
|
|
|
|
45
|
|
|
def test_analyze(self): |
46
|
|
|
uut = DbusDocument(doc_id=1) |
47
|
|
|
self.assertEqual(uut.Analyze(), []) |
48
|
|
|
|
49
|
|
|
uut.path = self.testcode_c_path |
50
|
|
|
self.assertEqual(uut.Analyze(), []) |
51
|
|
|
|
52
|
|
|
self.maxDiff = None |
53
|
|
|
uut.SetConfigFile(self.config_path) |
54
|
|
|
output = uut.Analyze() |
55
|
|
|
self.assertEqual(output, |
56
|
|
|
(1, |
57
|
|
|
[], |
58
|
|
|
[['default', |
59
|
|
|
True, |
60
|
|
|
[{'debug_msg': '', |
61
|
|
|
'additional_info': '', |
62
|
|
|
'file': '', |
63
|
|
|
'id': output[2][0][2][0]['id'], |
64
|
|
|
'line_nr': '', |
65
|
|
|
'message': 'test msg', |
66
|
|
|
'origin': 'LocalTestBear', |
67
|
|
|
'severity': 'NORMAL', |
68
|
|
|
'confidence': '100'}, |
69
|
|
|
{'debug_msg': '', |
70
|
|
|
'additional_info': '', |
71
|
|
|
'file': self.testcode_c_path, |
72
|
|
|
'id': output[2][0][2][1]['id'], |
73
|
|
|
'line_nr': '', |
74
|
|
|
'message': 'test msg', |
75
|
|
|
'origin': 'GlobalTestBear', |
76
|
|
|
'severity': 'NORMAL', |
77
|
|
|
'confidence': '100'}]]])) |
78
|
|
|
|
79
|
|
|
uut.path = "test.unknown_extension" |
80
|
|
|
output = uut.Analyze() |
81
|
|
|
self.assertEqual(output, (0, [], [])) |
82
|
|
|
|
83
|
|
|
uut.SetConfigFile(self.config_path + "2") |
84
|
|
|
output = uut.Analyze() |
85
|
|
|
self.assertEqual(output[0], 255) |
86
|
|
|
self.assertEqual(output[1][1]["log_level"], "ERROR") |
87
|
|
|
self.assertEqual(output[1][1]["message"], Constants.CRASH_MESSAGE) |
88
|
|
|
|