jmockit / jmockit1

Advanced Java library for integration testing, mocking, faking, and code coverage
Other
461 stars 239 forks source link

HEAD compile error? #37

Closed gliptak closed 10 years ago

gliptak commented 10 years ago

I'm seeing these errors (related to non-Unicode chars in the source?):

    [javac] Compiling 151 source files to c:\tmp\jmockit1\main\test-classes
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:115: error: unclosed character literal
    [javac]          mock.getDouble(); result = 54321; result = 'á';
    [javac]                                                     ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:115: error: illegal character: '\u00a1'
    [javac]          mock.getDouble(); result = 54321; result = 'á';
    [javac]                                                       ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:115: error: unclosed character literal
    [javac]          mock.getDouble(); result = 54321; result = 'á';
    [javac]                                                        ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:132: error: unclosed character literal
    [javac]       assertEquals('á', mock.getDouble(), 0);
    [javac]                    ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:132: error: illegal character: '\u00a1'
    [javac]       assertEquals('á', mock.getDouble(), 0);
    [javac]                      ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:132: error: unclosed character literal
    [javac]       assertEquals('á', mock.getDouble(), 0);
    [javac]                       ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:132: error: ';' expected
    [javac]       assertEquals('á', mock.getDouble(), 0);
    [javac]                              ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:132: error: ';' expected
    [javac]       assertEquals('á', mock.getDouble(), 0);
    [javac]                                          ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:173: error: unclosed character literal
    [javac]          mock.getByteWrapper(); result = 'ç';
    [javac]                                          ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:173: error: illegal character: '\u00a7'
    [javac]          mock.getByteWrapper(); result = 'ç';
    [javac]                                            ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:173: error: unclosed character literal
    [javac]          mock.getByteWrapper(); result = 'ç';
    [javac]                                             ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:185: error: unclosed character literal
    [javac]       assertEquals((byte) 'ç', mock.getByteWrapper().byteValue());
    [javac]                           ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:185: error: illegal character: '\u00a7'
    [javac]       assertEquals((byte) 'ç', mock.getByteWrapper().byteValue());
    [javac]                             ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:185: error: unclosed character literal
    [javac]       assertEquals((byte) 'ç', mock.getByteWrapper().byteValue());
    [javac]                              ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:185: error: ';' expected
    [javac]       assertEquals((byte) 'ç', mock.getByteWrapper().byteValue());
    [javac]                                     ^
    [javac] c:\tmp\jmockit1\main\test\mockit\ExpectationsUsingReturnTypeConversionTest.java:185: error: ';' expected
    [javac]       assertEquals((byte) 'ç', mock.getByteWrapper().byteValue());
    [javac]                                                                  ^
    [javac] 16 errors

Could you please comment? Thanks

rliesenfeld commented 10 years ago

Those characters are Unicode. Like just about any other open source codebase, UTF-8 is used for all source files.

gliptak commented 10 years ago

@rliesenfeld The problem I'm facing that I see compile errors against that source file, but somehow you seem to be able to compile ...

rliesenfeld commented 10 years ago

Maven compiles it just fine too. Are you sure you're not trying to compile using some character encoding other than UTF-8?

gliptak commented 10 years ago

yes, my codepage is 437 ...

C:\>chcp
Active code page: 437

I'm submitting a pull request to make Ant use UTF-8 too.

rliesenfeld commented 10 years ago

Hm, I never cared what the Windows codepage was, but I now see that the Ant "build" target was missing the "encoding" attribute.

The pom.xml files in the project all specify "UTF-8" as the "sourceEncoding", which is all that's needed for compilation through Maven. I rarely used Ant for building, using my Java IDE (IntelliJ) or Maven instead.