Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(386)

Unified Diff: sdk/lib/html/scripts/databasebuilder_test.py

Issue 11691009: Moved most of html lib generating scripts into tools. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sdk/lib/html/scripts/databasebuilder.py ('k') | sdk/lib/html/scripts/emitter.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/html/scripts/databasebuilder_test.py
diff --git a/sdk/lib/html/scripts/databasebuilder_test.py b/sdk/lib/html/scripts/databasebuilder_test.py
deleted file mode 100755
index 6a3d27356c87849587c8f766e1d021c649746d77..0000000000000000000000000000000000000000
--- a/sdk/lib/html/scripts/databasebuilder_test.py
+++ /dev/null
@@ -1,387 +0,0 @@
-#!/usr/bin/python
-# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-import database
-import idlparser
-import logging.config
-import os
-import os.path
-import shutil
-import tempfile
-import unittest
-from databasebuilder import *
-
-
-class DatabaseBuilderTestCase(unittest.TestCase):
-
- def _create_input(self, idl_file_name, content):
- file_name = os.path.join(self._input_dir, idl_file_name)
- f = open(file_name, 'w')
- f.write(content)
- f.close()
- return file_name
-
- def _assert_interface_exists(self, path):
- file_path = os.path.join(self._database_dir, path)
- self.assertTrue(os.path.exists(file_path))
-
- def _assert_content_equals(self, path, expected_content):
- def clean(content):
- return ' '.join(filter(len, map(str.strip, content.split('\n'))))
- file_path = os.path.join(self._database_dir, path)
- self.assertTrue(os.path.exists(file_path))
- f = open(file_path, 'r')
- actual_content = f.read()
- f.close()
- if clean(actual_content) != clean(expected_content):
- msg = '''
-FILE: %s
-EXPECTED:
-%s
-ACTUAL:
-%s
-''' % (file_path, expected_content, actual_content)
- self.fail(msg)
-
- def setUp(self):
- working_dir = tempfile.mkdtemp()
- self._database_dir = os.path.join(working_dir, 'database')
- self.assertFalse(os.path.exists(self._database_dir))
-
- self._input_dir = os.path.join(working_dir, 'inputdir')
- os.makedirs(self._input_dir)
-
- self._db = database.Database(self._database_dir)
- self.assertTrue(os.path.exists(self._database_dir))
-
- self._builder = DatabaseBuilder(self._db)
-
- def tearDown(self):
- shutil.rmtree(self._database_dir)
-
- def test_basic_import(self):
- file_name = self._create_input('input.idl', '''
- module M {
- interface I {
- attribute int a;
- };
- };''')
- self._builder.import_idl_file(file_name)
- self._builder.merge_imported_interfaces([])
- self._db.Save()
- self._assert_interface_exists('I.idl')
-
- def test_splitting(self):
- file_name = self._create_input('input.idl', '''
- module M {
- interface I {
- readonly attribute int a;
- int o(in int x, in optional int y);
- };
- };''')
- self._builder.import_idl_file(file_name)
- self._builder.merge_imported_interfaces([])
- self._db.Save()
- self._assert_content_equals('I.idl', '''
- interface I {
- /* Attributes */
- getter attribute int a;
-
- /* Operations */
- int o(in int x);
- int o(in int x, in int y);
- };''')
-
- def test_renames(self):
- file_name = self._create_input('input.idl', '''
- module M {
- [Constructor(in T x)] interface I {
- T op(T x);
- readonly attribute N::T attr;
- };
- };''')
- options = DatabaseBuilderOptions(type_rename_map={'I': 'i', 'T': 't'})
- self._builder.import_idl_file(file_name, options)
- self._builder.merge_imported_interfaces([])
- self._db.Save()
- self._assert_content_equals('i.idl', '''
- [Constructor(in t x)] interface i {
- /* Attributes */
- getter attribute t attr;
- /* Operations */
- t op(in t x);
- };''')
-
- def test_type_defs(self):
- file_name = self._create_input('input.idl', '''
- module M {
- typedef T S;
- interface I : S {
- S op(S x);
- readonly attribute S attr;
- };
- };''')
- options = DatabaseBuilderOptions()
- self._builder.import_idl_file(file_name, options)
- self._builder.merge_imported_interfaces([])
- self._db.Save()
- self._assert_content_equals('I.idl', '''
- interface I :
- T {
- /* Attributes */
- getter attribute T attr;
- /* Operations */
- T op(in T x);
- };''')
-
- def test_merge(self):
- file_name1 = self._create_input('input1.idl', '''
- module M {
- interface I {
- const int CONST_BOTH = 0;
- const int CONST_ONLY_FIRST = 0;
- const int CONST_BOTH_DIFFERENT_VALUE = 0;
-
- readonly attribute int attr_only_first;
- readonly attribute int attr_both;
- readonly attribute int attr_both_readonly_difference;
- readonly attribute int attr_both_int_long_difference;
-
- int op_only_first();
- int op_both(int a);
- int op_both_optionals_difference(int a,
- in optional int b);
- int op_both_arg_rename(int arg);
- };
- };''')
- self._builder.import_idl_file(file_name1,
- DatabaseBuilderOptions(source='1st',
- idl_syntax=idlparser.FREMONTCUT_SYNTAX))
- file_name2 = self._create_input('input2.idl', '''
- module M {
- interface I {
- const int CONST_BOTH = 0;
- const int CONST_ONLY_SECOND = 0;
- const int CONST_BOTH_DIFFERENT_VALUE = 1;
-
- readonly attribute int attr_only_second;
- readonly attribute int attr_both;
- readonly attribute long attr_both_int_long_difference;
- attribute int attr_both_readonly_difference;
-
- int op_only_second();
- int op_both(int a);
- int op_both_optionals_difference(int a,
- optional boolean b);
- int op_both_arg_rename(int betterName);
- };
- };''')
- self._builder.import_idl_file(file_name2,
- DatabaseBuilderOptions(source='2nd',
- idl_syntax=idlparser.FREMONTCUT_SYNTAX))
- self._builder.set_same_signatures({'int': 'long'})
- self._builder.merge_imported_interfaces([])
- self._db.Save()
- self._assert_content_equals('I.idl', '''
- @1st(module=M) @2nd(module=M) interface I {
- /* Constants */
- @1st @2nd const int CONST_BOTH = 0;
- @1st const int CONST_BOTH_DIFFERENT_VALUE = 0;
- @2nd const int CONST_BOTH_DIFFERENT_VALUE = 1;
- @1st const int CONST_ONLY_FIRST = 0;
- @2nd const int CONST_ONLY_SECOND = 0;
-
- /* Attributes */
- @1st @2nd getter attribute int attr_both;
- @1st @2nd getter attribute int attr_both_int_long_difference;
- @1st @2nd getter attribute int attr_both_readonly_difference;
- @2nd setter attribute int attr_both_readonly_difference;
- @1st getter attribute int attr_only_first;
- @2nd getter attribute int attr_only_second;
-
- /* Operations */
- @1st @2nd int op_both(in t a);
- @1st @2nd int op_both_arg_rename(in t betterName);
- @1st @2nd int op_both_optionals_difference(in t a);
- @1st int op_both_optionals_difference(in t a, in int b);
- @2nd int op_both_optionals_difference(in t a, in boolean b);
- @1st int op_only_first();
- @2nd int op_only_second();
- };''')
-
- def test_mergeDartName(self):
- file_name1 = self._create_input('input1.idl', '''
- module M {
- interface I {
- [ImplementationFunction=foo] int member(in int a);
- };
- };''')
- self._builder.import_idl_file(file_name1,
- DatabaseBuilderOptions(source='1st',
- idl_syntax=idlparser.FREMONTCUT_SYNTAX))
- file_name2 = self._create_input('input2.idl', '''
- module M {
- interface I {
- [DartName=bar] int member(in int a);
- };
- };''')
- self._builder.import_idl_file(file_name2,
- DatabaseBuilderOptions(source='2nd',
- idl_syntax=idlparser.FREMONTCUT_SYNTAX))
- self._builder.merge_imported_interfaces([])
- self._db.Save()
- self._assert_content_equals('I.idl', '''
- @1st(module=M) @2nd(module=M) interface I {
- /* Operations */
- @1st @2nd [DartName=bar, ImplementationFunction=foo] int member(in int a);
- };''')
-
- def test_supplemental(self):
- file_name = self._create_input('input1.idl', '''
- module M {
- interface I {
- readonly attribute int a;
- };
- [Supplemental] interface I {
- readonly attribute int b;
- };
- };''')
- self._builder.import_idl_file(file_name,
- DatabaseBuilderOptions(source='Src'))
- self._builder.merge_imported_interfaces([])
- self._db.Save()
- self._assert_content_equals('I.idl', '''
- @Src(module=M) [Supplemental] interface I {
- /* Attributes */
- @Src getter attribute int a;
- @Src getter attribute int b;
- };''')
-
- def test_impl_stmt(self):
- file_name = self._create_input('input.idl', '''
- module M {
- interface I {};
- I implements J;
- };''')
- self._builder.import_idl_file(file_name,
- DatabaseBuilderOptions(source='Src'))
- self._builder.merge_imported_interfaces([])
- self._db.Save()
- self._assert_content_equals('I.idl', '''
- @Src(module=M) interface I :
- @Src J {
- };''')
-
- def test_obsolete(self):
- file_name1 = self._create_input('input1.idl', '''
- module M {
- interface I {
- readonly attribute int keep;
- readonly attribute int obsolete; // Would be removed
- };
- };''')
- self._builder.import_idl_file(file_name1,
- DatabaseBuilderOptions(source='src'))
- file_name2 = self._create_input('input2.idl', '''
- module M {
- interface I {
- readonly attribute int keep;
- readonly attribute int new;
- };
- };''')
- self._builder.import_idl_file(file_name2,
- DatabaseBuilderOptions(source='src',
- obsolete_old_declarations=True))
- self._builder.merge_imported_interfaces([])
- self._db.Save()
- self._assert_content_equals('I.idl', '''
- @src(module=M) interface I {
- /* Attributes */
- @src getter attribute int keep;
- @src getter attribute int new;
- };''')
-
- def test_annotation_normalization(self):
- file_name = self._create_input('input.idl', '''
- module M {
- interface I : J{
- const int C = 0;
- readonly attribute int a;
- int op();
- };
- };''')
- self._builder.import_idl_file(file_name,
- DatabaseBuilderOptions(source='Src', source_attributes={'x': 'y'}))
- self._builder.merge_imported_interfaces([])
- interface = self._db.GetInterface('I')
- interface.parents[0].annotations['Src']['x'] = 'u'
- interface.constants[0].annotations['Src']['z'] = 'w'
- interface.attributes[0].annotations['Src']['x'] = 'u'
- self._db.Save()
-
- # Before normalization
- self._assert_content_equals('I.idl', '''
- @Src(module=M, x=y)
- interface I : @Src(x=u) J {
- /* Constants */
- @Src(x=y, z=w) const int C = 0;
- /* Attributes */
- @Src(x=u) getter attribute int a;
- /* Operations */
- @Src(x=y) int op();
- };''')
-
- # Normalize
- self._builder.normalize_annotations(['Src'])
- self._db.Save()
-
- # After normalization
- self._assert_content_equals('I.idl', '''
- @Src(module=M, x=y)
- interface I : @Src(x=u) J {
- /* Constants */
- @Src(z=w) const int C = 0;
- /* Attributes */
- @Src(x=u) getter attribute int a;
- /* Operations */
- @Src int op();
- };''')
-
- def test_fix_displacements(self):
- file_name1 = self._create_input('input1.idl', '''
- module M {
- interface I {};
- interface J : I {
- readonly attribute int attr;
- };
- };''')
- self._builder.import_idl_file(file_name1,
- DatabaseBuilderOptions(source='1st'))
- file_name2 = self._create_input('input2.idl', '''
- module M {
- interface I {
- readonly attribute int attr;
- };
- interface J : I {};
- };''')
- self._builder.import_idl_file(file_name2,
- DatabaseBuilderOptions(source='2nd'))
- self._builder.merge_imported_interfaces([])
- self._builder.fix_displacements('2nd')
- self._db.Save()
- self._assert_content_equals('J.idl', '''
- @1st(module=M) @2nd(module=M) interface J :
- @1st @2nd I {
- /* Attributes */
- @1st
- @2nd(via=I)
- getter attribute int attr;
- };''')
-
-
-if __name__ == "__main__":
- logging.config.fileConfig("logging.conf")
- if __name__ == '__main__':
- unittest.main()
« no previous file with comments | « sdk/lib/html/scripts/databasebuilder.py ('k') | sdk/lib/html/scripts/emitter.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698