Bug 1635519 - Delete test_graph.py r=froydnj

This isn't useful now that the Tup backend is deleted.

Differential Revision: https://phabricator.services.mozilla.com/D73919
This commit is contained in:
Ricky Stewart 2020-05-05 18:07:19 +00:00
Родитель 58bc52365d
Коммит 9855279a32
2 изменённых файлов: 0 добавлений и 141 удалений

Просмотреть файл

@ -1,139 +0,0 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from __future__ import absolute_import, print_function
import unittest
import sqlite3 as lite
import mozunit
from mozbuild.analyze.graph import Graph
CREATE_NODE = """CREATE TABLE node
(id integer PRIMARY KEY NOT NULL,
dir integer NOT NULL,
type integer NOT NULL,
mtime integer NOT NULL,
name varchar(4096) NOT NULL,
unique(dir, name));"""
CREATE_NORMAL_LINK = """CREATE TABLE normal_link
(from_id integer,
to_id integer, unique(from_id, to_id));"""
NODE_DATA = [(1, 0, 2, -1, '.'),
(2, 100, 0, 1, 'Base64.cpp'),
(3, 200, 0, 1, 'nsArray.cpp'),
(4, 100, 0, 1, 'nsWildCard.h'),
(5, -1, 1, 9426, 'CDD Unified_cpp_xpcom_io0.cpp'),
(6, -1, 1, 5921, 'CXX Unified_cpp_xpcom_ds0.cpp'),
(7, -1, 1, 11077, 'CXX /builds/worker/workspace/build/src/dom/\
plugins/base/snNPAPIPlugin.cpp'),
(8, -1, 1, 7677, 'CXX Unified_cpp_xpcom_io1.cpp'),
(9, -1, 1, 8672, 'CXX Unified_cpp_modules_libjar0.cpp'),
(10, -1, 4, 1, 'Unified_cpp_xpcom_io0.o'),
(11, -1, 4, 1, 'Unified_cpp_xpcom_dso.o'),
(12, -1, 4, 1, 'nsNPAPIPlugin.o'),
(13, -1, 4, 1, 'Unified_cpp_xpcom_io1.o'),
(14, -1, 4, 1, 'Unified_cpp_modules_libjar0.o'),
(15, -1, 1, 52975, 'LINK libxul.so'),
(16, -1, 4, 1, 'libxul.so'),
(17, -1, 1, 180, 'LINK libtestcrasher.so'),
(18, -1, 1, 944, 'python /builds/worker/workspace/build/src/toolkit/\
library/dependentlibs.py:gen_list -> [dependentlibs.list, \
dependentlibs.list.gtest, dependentlibs.list.pp]'),
(19, -1, 1, 348, 'LINK ../../dist/bin/plugin-container'),
(20, -1, 1, 342, 'LINK ../../../dist/bin/xpcshell'),
(21, -1, 4, 1, 'libtestcrasher.so'),
(22, -1, 4, 1, 'dependentlibs.list'),
(23, -1, 4, 1, 'dependentlibs.list.gtest'),
(24, -1, 4, 1, 'dependentlibs.list.pp'),
(25, -1, 4, 1, 'plugin-container'),
(26, -1, 4, 1, 'xpcshell'),
(27, -1, 6, 1, '<shlibs>'),
(28, 1, 0, 1, 'dummy node'),
(100, 300, 2, -1, 'io'),
(200, 300, 2, -1, 'ds'),
(300, 1, 2, -1, 'xpcom')]
NORMAL_LINK_DATA = [(2, 5), (3, 6), (4, 7), (4, 8), (4, 9), (5, 10), (6, 11),
(7, 12), (8, 13), (9, 14), (10, 15), (11, 15), (12, 15),
(13, 15), (14, 15), (15, 16), (15, 27), (16, 17), (16, 18),
(16, 19), (16, 20), (17, 21), (17, 27), (18, 22), (18, 23),
(18, 24), (19, 25), (20, 26), (21, 27)]
PATH_TO_TEST_DB = ':memory:'
class TestGraph(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.connect = lite.connect(PATH_TO_TEST_DB)
cls.connect.text_factory = str
cls.cursor = cls.connect.cursor()
# create tables in memory
cls.cursor.execute(CREATE_NODE)
cls.cursor.execute(CREATE_NORMAL_LINK)
# insert data to tables
for d in NODE_DATA:
cls.cursor.execute("""INSERT INTO node \
(id, dir, type, mtime, name) values(?, ?, ?, ?, ?)""", d)
for d in NORMAL_LINK_DATA:
cls.cursor.execute("""INSERT INTO normal_link \
(from_id, to_id) values(?, ?)""", d)
cls.connect.commit()
@classmethod
def tearDownClass(cls):
cls.connect.close()
def test_graph_cmds(self):
g = Graph(connect=self.connect)
libxul = [15, 17, 18, 19, 20]
# no commands
self.assertEqual(len(g.get_node(27).cmds), 0)
self.assertEqual(len(g.get_node(21).cmds), 0)
self.assertEqual(len(g.get_node(28).cmds), 0)
# one immediate command child
self.assertItemsEqual(g.get_node(2).get_cmd_ids(), [5] + libxul)
self.assertItemsEqual(g.get_node(3).get_cmd_ids(), [6] + libxul)
# multiple immediate command children
self.assertItemsEqual(g.get_node(4).get_cmd_ids(), [7, 8, 9] + libxul)
# node is not a file or command
self.assertItemsEqual(g.get_node(16).get_cmd_ids(), libxul[1:])
self.assertItemsEqual(g.get_node(11).get_cmd_ids(), libxul)
# node is the command
self.assertItemsEqual(g.get_node(19).get_cmd_ids(), [19])
self.assertItemsEqual(g.get_node(7).get_cmd_ids(), [7] + libxul)
self.assertItemsEqual(g.get_node(15).get_cmd_ids(), libxul)
def test_mtime_calc(self):
g = Graph(connect=self.connect)
# one immediate child
self.assertEqual(g.get_node(2).cost, 64215)
self.assertEqual(g.get_node(3).cost, 60710)
# multiple immediate children
self.assertEqual(g.get_node(4).cost, 82215)
# no children
self.assertEqual(g.get_node(23).cost, None)
# not a file
self.assertEqual(g.get_node(15).cost, None)
# file with no commands
self.assertEqual(g.get_node(28).cost, 0)
def test_path(self):
g = Graph(connect=self.connect)
# node is not a file
self.assertEqual(g.get_node(15).path, '')
self.assertEqual(g.get_node(16).path, '')
self.assertEqual(g.get_node(27).path, '')
# node is a file
self.assertEqual(g.get_node(2).path, 'xpcom/io/Base64.cpp')
self.assertEqual(g.get_node(3).path, 'xpcom/ds/nsArray.cpp')
self.assertEqual(g.get_node(4).path, 'xpcom/io/nsWildCard.h')
self.assertEqual(g.get_node(28).path, 'dummy node')
if __name__ == '__main__':
mozunit.main()

Просмотреть файл

@ -2,6 +2,4 @@
subsuite = mozbuild
skip-if = python == 3
[analyze/test_graph.py]
skip-if = os == "win"
[compilation/test_warnings.py]