blob: c30a89842f524831f3a3d75773f7e145865cec1e [file] [log] [blame]
#!/usr/bin/env python3
import os
import unittest
from sourcedr.map import (
link_build_dep_and_review_data, load_build_dep_file_from_path,
load_build_dep_ninja, load_review_data)
TESTDATA_DIR = os.path.join(os.path.dirname(__file__), 'testdata')
class MapTest(unittest.TestCase):
MAP_TESTDATA_DIR = os.path.join(TESTDATA_DIR, 'map')
DEP_PATH = os.path.join(MAP_TESTDATA_DIR, 'build_dep.json')
REVIEW_DB_PATH = os.path.join(MAP_TESTDATA_DIR, 'data.json')
NINJA_PATH = os.path.join(MAP_TESTDATA_DIR, 'build.ninja')
NINJA_DEP_PATH = os.path.join(MAP_TESTDATA_DIR, 'ninja_deps')
def test_load_build_dep_file(self):
dep = load_build_dep_file_from_path(self.DEP_PATH)
self.assertIn('liba.so', dep)
self.assertIn('libb.so', dep)
self.assertIn('libc.so', dep)
self.assertSetEqual({'a.h', 'a1.c', 'a1.o', 'a2.c', 'a2.o'},
dep['liba.so'])
self.assertSetEqual({'a.h', 'b.c', 'b.o'}, dep['libb.so'])
self.assertSetEqual({'c.c', 'c.o'}, dep['libc.so'])
def test_load_build_dep_ninja(self):
dep = load_build_dep_ninja(self.NINJA_PATH, self.MAP_TESTDATA_DIR,
self.NINJA_DEP_PATH)
self.assertIn('liba.so', dep)
self.assertIn('libb.so', dep)
self.assertIn('libc.so', dep)
self.assertSetEqual({'a.h', 'a1.c', 'a1.o', 'a2.c', 'a2.o'},
dep['liba.so'])
self.assertSetEqual({'a.h', 'b.c', 'b.o'}, dep['libb.so'])
self.assertSetEqual({'c.c', 'c.o'}, dep['libc.so'])
def test_load_review_data(self):
data = load_review_data(self.REVIEW_DB_PATH)
self.assertIn('a.h', data)
self.assertEqual(['libx.so'], data['a.h'])
def test_link_build_dep_and_review_data(self):
dep = load_build_dep_file_from_path(self.DEP_PATH)
data = load_review_data(self.REVIEW_DB_PATH)
result = link_build_dep_and_review_data(dep, data)
self.assertIn('liba.so', result)
self.assertIn('libb.so', result)
self.assertIn('libc.so', result)
self.assertEqual(['libx.so'], result['liba.so'])
self.assertEqual(['libx.so'], result['libb.so'])
if __name__ == '__main__':
unittest.main()