harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vera Petrashkova (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-4443) [buildtest][func] There are issues in vm/verifier/field[local][stack]/Test09 tests
Date Thu, 12 Jul 2007 14:10:04 GMT
[buildtest][func] There are issues in  vm/verifier/field[local][stack]/Test09 tests
-----------------------------------------------------------------------------------

                 Key: HARMONY-4443
                 URL: https://issues.apache.org/jira/browse/HARMONY-4443
             Project: Harmony
          Issue Type: Bug
          Components: build - test - ci
            Reporter: Vera Petrashkova


1) The following tests
    functional/org/apache/harmony/test/func/vm/verifier/field/Test09/Test0901/fieldTest0901.xml
    functional/org/apache/harmony/test/func/vm/verifier/local/Test09/Test0901/localTest0901.xml
    functional/org/apache/harmony/test/func/vm/verifier/stack/Test09/Test0901/stackTest0901.xml

    are incorrect.

    The changes of J2SE VM specification (see [1] after Verification by Type Interface) says:

     To merge two operand stacks, the number of values on each stack must be identical. 
     The types of values on the stacks must also be identical, except that differently typed
reference values may appear at corresponding places on 
     the two stacks. 
     In this case, the merged operand stack contains a reference to an instance of the first
common superclass of the two types. 
     Such a reference type always exists because the type Object is a superclass of all class
and interface types. 
     If the operand stacks cannot be merged, verification of the method fails. 

     But all listed tests incorrectly put the values of the different types (int, float, Object)
to stack
     before putfield, aload and new instructions with different elements.
     Then they put the values of the different types (int, float, Object) to stack once more.

     These tests expect that VM will not throw VerifyError.
     But according to specification verifier rejects these incorrect classes and these 3 
tests fail on RI and on Harmony.

     These tests should be redesigned.
    
     

2) There are additional issues in the tests
      functional/org/apache/harmony/test/func/vm/verifier/field/Test09/Test0901/fieldTest0901.xml
      functional/org/apache/harmony/test/func/vm/verifier/local/Test09/Test0901/localTest0901.xml
      functional/org/apache/harmony/test/func/vm/verifier/stack/Test09/Test0901/stackTest0901.xml
      functional/org/apache/harmony/test/func/vm/verifier/field/Test09/Test0902/fieldTest0902.xml
      functional/org/apache/harmony/test/func/vm/verifier/local/Test09/Test0902/localTest0902.xml
      functional/org/apache/harmony/test/func/vm/verifier/stack/Test09/Test0902/stackTest0902.xml


      Source code for Test0901B classes in all tests does not contain  should be fixed.
      Stack and locals size should be added to the method test
----------------    
;
; test method
.method public test()V 
.limit stack 1        <<<<<          should be added
.limit locals 1       <<<<<          should be added
--------------
      It is needed because when these  class files are created  with jasmin tool 2.2 release
then Code attributes are absent in
      method test() and all listed tests fail with ClassFormatError:
                         java.lang.ClassFormatError: Test0902B : Method test()V should have
Code attribute present
3) The descriptions of all following tests
     functional/org/apache/harmony/test/func/vm/verifier/field/Test09/Test0901/fieldTest0901.xml
     functional/org/apache/harmony/test/func/vm/verifier/local/Test09/Test0901/localTest0901.xml
     functional/org/apache/harmony/test/func/vm/verifier/stack/Test09/Test0901/stackTest0901.xml
     functional/org/apache/harmony/test/func/vm/verifier/field/Test09/Test0902/fieldTest0902.xml
     functional/org/apache/harmony/test/func/vm/verifier/local/Test09/Test0902/localTest0902.xml
     functional/org/apache/harmony/test/func/vm/verifier/stack/Test09/Test0902/stackTest0902.xml

      refer to ../control_flow_graph_0.gif files
      But these gif files are incorrect and it is not possible to show them and know what
these tests do in fact.

      Attached control_flow_graph_0.gif files should be placed to the following directories:
      functional/org/apache/harmony/test/func/vm/verifier/field/Test09
      functional/org/apache/harmony/test/func/vm/verifier/local/Test09
      functional/org/apache/harmony/test/func/vm/verifier/stack/Test09



[1] http://java.sun.com/docs/books/vmspec/2nd-edition/UpdatedClassFileFormat.pdf



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message