diff options
author | Rob Boehne <robb@dlogics.com> | 2020-02-24 20:06:21 (GMT) |
---|---|---|
committer | Rob Boehne <robb@dlogics.com> | 2020-02-24 20:06:21 (GMT) |
commit | b4454c3f49ff814806b49bbf245f0a5262638d0c (patch) | |
tree | 9906f976db41ebbb4260c1074496aced34e98c3b | |
parent | 33e203b5dcf9bc8dc32f78f25d66890358efd1a3 (diff) | |
download | SCons-b4454c3f49ff814806b49bbf245f0a5262638d0c.zip SCons-b4454c3f49ff814806b49bbf245f0a5262638d0c.tar.gz SCons-b4454c3f49ff814806b49bbf245f0a5262638d0c.tar.bz2 |
Specifiy encoding for Java files, as the default varies across platforms.
-rw-r--r-- | src/engine/SCons/Tool/JavaCommon.py | 2 | ||||
-rw-r--r-- | src/engine/SCons/Tool/JavaCommonTests.py | 24 |
2 files changed, 25 insertions, 1 deletions
diff --git a/src/engine/SCons/Tool/JavaCommon.py b/src/engine/SCons/Tool/JavaCommon.py index 1711de1..c6c19ae 100644 --- a/src/engine/SCons/Tool/JavaCommon.py +++ b/src/engine/SCons/Tool/JavaCommon.py @@ -404,7 +404,7 @@ if java_parsing: def parse_java_file(fn, version=default_java_version): - with open(fn, 'r') as f: + with open(fn, 'r', encoding='utf-8') as f: data = f.read() return parse_java(data, version) diff --git a/src/engine/SCons/Tool/JavaCommonTests.py b/src/engine/SCons/Tool/JavaCommonTests.py index 9242624..b0a788e 100644 --- a/src/engine/SCons/Tool/JavaCommonTests.py +++ b/src/engine/SCons/Tool/JavaCommonTests.py @@ -68,6 +68,30 @@ public class Foo assert classes == ['Foo'], classes + def test_file_parser(self): + """Test the file parser""" + input = """\ +package com.sub.bar; + +public class Foo +{ + public static void main(String[] args) + { + /* This tests that unicde is handled . */ + String hello1 = new String("ఎత్తువెడల్పు"); + } +} +""" + file_name = 'test_file_parser.java' + with open(file_name, 'w', encoding='UTF-8') as jf: + print(input, file=jf) + + pkg_dir, classes = SCons.Tool.JavaCommon.parse_java_file(file_name) + if os.path.exists(file_name): + os.remove(file_name) + assert pkg_dir == os.path.join('com', 'sub', 'bar'), pkg_dir + assert classes == ['Foo'], classes + def test_dollar_sign(self): """Test class names with $ in them""" |