diff options
Diffstat (limited to 'src/engine/SCons/Tool/JavaCommonTests.py')
| -rw-r--r-- | src/engine/SCons/Tool/JavaCommonTests.py | 56 | 
1 files changed, 46 insertions, 10 deletions
diff --git a/src/engine/SCons/Tool/JavaCommonTests.py b/src/engine/SCons/Tool/JavaCommonTests.py index da405f0..c70e445 100644 --- a/src/engine/SCons/Tool/JavaCommonTests.py +++ b/src/engine/SCons/Tool/JavaCommonTests.py @@ -1,5 +1,5 @@  # -# Copyright (c) 2001 - 2017 The SCons Foundation +# Copyright (c) 2001 - 2019 The SCons Foundation  #  # Permission is hereby granted, free of charge, to any person obtaining  # a copy of this software and associated documentation files (the @@ -21,14 +21,12 @@  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  # -__revision__ = "src/engine/SCons/Tool/JavaCommonTests.py rel_3.0.0:4395:8972f6a2f699 2017/09/18 12:59:24 bdbaddog" +__revision__ = "src/engine/SCons/Tool/JavaCommonTests.py 103260fce95bf5db1c35fb2371983087d85dd611 2019-07-13 18:25:30 bdbaddog"  import os.path  import sys  import unittest -import TestUnit -  import SCons.Scanner.IDL  import SCons.Tool.JavaCommon @@ -566,14 +564,52 @@ public class Foo          assert expect == classes, (expect, classes) +    def test_in_function_class_declaration(self): +        """ +        Test that implementing a class in a function call doesn't confuse SCons. +        """ + +        input = """ +package com.Matthew; + +public class AnonDemo { + +    public static void main(String[] args) { +        new AnonDemo().execute(); +    } + +    public void execute() { +        Foo bar = new Foo(new Foo() { +            @Override +            public int getX() { return this.x; } +        }) { +            @Override +            public int getX() { return this.x; } +        }; +    } + +    public abstract class Foo { +        public int x; +        public abstract int getX(); + +        public Foo(Foo f) { +            this.x = f.x; +        } + +        public Foo() {} +    } +} +""" +        expect = ['AnonDemo$1', +                  'AnonDemo$2', +                  'AnonDemo$Foo', +                  'AnonDemo'] +        pkg_dir, classes = SCons.Tool.JavaCommon.parse_java(input, '1.8') +        assert expect == classes, (expect, classes) +  if __name__ == "__main__": -    suite = unittest.TestSuite() -    tclasses = [ parse_javaTestCase ] -    for tclass in tclasses: -        names = unittest.getTestCaseNames(tclass, 'test_') -        suite.addTests(list(map(tclass, names))) -    TestUnit.run(suite) +    unittest.main()  # Local Variables:  # tab-width:4  | 
