Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-7191322

add test for 7064927 to java.lang.instrument

XMLWordPrintable

    • b55
    • generic
    • generic
    • Not verified

      The fix for the following bug:

          7064927 4/4 retransformClasses() does not pass in LocalVariableTable
                      of a method

      was integrated in JDK8-B19/HSX-23-B09 in the hotspot repo:

      http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/c01e115b095e


      The tests for java.lang.instrument live in the jdk repo.
      This bug is being used to integrate the following test:

          java/lang/instrument/VerifyLocalVariableTableOnRetransformTest.sh
      Here is what a passing run with JDK8-B51 looks like:

      #section:shell
      ----------messages:(3/148)----------
      command: shell MakeJAR.sh [retransformAgent]
      reason: User specified action: run shell MakeJAR.sh retransformAgent
      elapsed time (seconds): 4.739
      ----------System.out:(4/254)----------
      TESTSRC=C:/work/shared/bug_hunt/jdk8/exp_7064927_test/test/java/lang/instrument
      TESTJAVA=c:/work/shared/mirrors/jdks-win32/jdk/1.8.0/latest/binaries/windows-i586
      added manifest
      adding: InstrumentationHandoff.class(in = 1158) (out= 605)(deflated 47%)
      ----------System.err:(0/0)----------
      result: Passed. Execution successful

      #section:shell
      ----------messages:(3/183)----------
      command: shell VerifyLocalVariableTableOnRetransformTest.sh []
      reason: User specified action: run shell VerifyLocalVariableTableOnRetransformTest.sh
      elapsed time (seconds): 1.576
      ----------System.out:(18/1238)*----------
      InstrumentationHandoff JPLIS agent initialized
      java version "1.8.0-ea"
      Java(TM) SE Runtime Environment (build 1.8.0-ea-b51)
      Java HotSpot(TM) Client VM (build 24.0-b19, mixed mode)

      Reading test class from C:\\work\\shared\\bug_hunt\\jdk8\\exp_7064927_test\\sdk-jli.windows-i586\\JTwork\\classes\\java\\lang\\instrument\\DummyClassWithLVT.class
      Read 1448 bytes.
      Debugging message: Added transformer VerifyLocalVariableTableOnRetransformTest$MyObserver with canRetransform=true
      VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'DummyClassWithLVT' of 1448 bytes.
      Info: DummyClassWithLVT lengths match.
      Info: verified 'DummyClassWithLVT.class' matches 'classfileBuffer'.
      VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'DummyClassWithLVT' of 1448 bytes.
      Info: DummyClassWithLVT lengths match.
      Info: verified 'DummyClassWithLVT.class' matches 'classfileBuffer'.
      Debugging message: tearDown beginning
      VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/lang/Shutdown' of 2956 bytes.
      VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/lang/Shutdown$Lock' of 377 bytes.
      PASS: did NOT find 'did not match .class file' in the test output
      ----------System.err:(0/0)----------
      result: Passed. Execution successful


      test result: Passed. Execution successful
      Here is what a failing run with JDK7-B147 looks like:

      #section:shell
      ----------messages:(3/183)----------
      command: shell VerifyLocalVariableTableOnRetransformTest.sh []
      reason: User specified action: run shell VerifyLocalVariableTableOnRetransformTest.sh
      elapsed time (seconds): 3.869
      ----------System.out:(54/3613)*----------
      InstrumentationHandoff JPLIS agent initialized
      java version "1.7.0"
      Java(TM) SE Runtime Environment (build 1.7.0-b147)
      Java HotSpot(TM) Client VM (build 21.0-b17, mixed mode)

      Reading test class from C:\\work\\shared\\bug_hunt\\jdk8\\exp_7064927_test\\sdk-jli.windows-i586\\JTwork\\classes\\java\\lang\\instrument\\DummyClassWithLVT.class
      Read 1448 bytes.
      Debugging message: Added transformer VerifyLocalVariableTableOnRetransformTest$MyObserver with canRetransform=true
      VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'DummyClassWithLVT' of 1448 bytes.
      Info: DummyClassWithLVT lengths match.
      Info: verified 'DummyClassWithLVT.class' matches 'classfileBuffer'.
      VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'DummyClassWithLVT' of 1332 bytes.
      Warning: DummyClassWithLVT lengths do not match.
      Debugging message: tearDown beginning
      Exception in thread "main" VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/lang/Throwable$WrappedPrintStream' of 699 bytes.
      VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/lang/Throwable$PrintStreamOrWriter' of 492 bytes.
      VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/util/IdentityHashMap' of 9031 bytes.
      VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/util/IdentityHashMap$KeySet' of 1793 bytes.
      ATestCaseScaffold$TestCaseScaffoldException: DummyClassWithLVT did not match .class file
              at ATestCaseScaffold.fail(ATestCaseScaffold.java:116)
              at ATestCaseScaffold.assertTrue(ATestCaseScaffold.java:129)
              at VerifyLocalVariableTableOnRetransformTest.verifyClassFileBuffer(VerifyLocalVariableTableOnRetransformTest.java:123)
              at VerifyLocalVariableTableOnRetransformTest.doRunTest(VerifyLocalVariableTableOnRetransformTest.java:72)
              at ATestCaseScaffold.runTest(ATestCaseScaffold.java:60)
              at VerifyLocalVariableTableOnRetransformTest.main(VerifyLocalVariableTableOnRetransformTest.java:66)
      VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/lang/Shutdown' of 2956 bytes.
      VerifyLocalVariableTableOnRetransformTest$MyObserver.transform() sees 'java/lang/Shutdown$Lock' of 377 bytes.
      ATestCaseScaffold$TestCaseScaffoldException: DummyClassWithLVT did not match .class file
      FAIL: found 'did not match .class file' in the test output
      INFO: 'javap -v' comparison between the .class files:
      1,3c1,3
      < Classfile /C:/work/shared/bug_hunt/jdk8/exp_7064927_test/sdk-jli.windows-i586/JTwork/classes/java/lang/instrument/DummyClassWithLVT.class
      < Last modified Aug 13, 2012; size 1448 bytes
      < MD5 checksum add938cbf65c704016583270092d8258
      ---
      > Classfile /C:/work/shared/bug_hunt/jdk8/exp_7064927_test/sdk-jli.windows-i586/JTwork/java/lang/instrument/VerifyLocalVariableTableOnRetransformTest/DummyClassWithLVT.class
      > Last modified Aug 13, 2012; size 1332 bytes
      > MD5 checksum 65f4b7ecfaf38db537034ecd5723e85a
      116,118d115
      < LocalVariableTable:
      < Start Length Slot Name Signature
      < 0 5 0 this LDummyClassWithLVT;
      239,249d235
      < LocalVariableTable:
      < Start Length Slot Name Signature
      < 0 236 0 args [Ljava/lang/String;
      < 2 234 1 b Z
      < 5 231 2 by B
      < 8 228 3 c C
      < 13 223 4 d D
      < 17 219 6 f F
      < 21 215 7 i I
      < 26 210 8 l J
      < 30 206 10 s S
      ----------System.err:(0/0)----------
      result: Failed. Execution failed: exit code 1


      test result: Failed. Execution failed: exit code 1

            dcubed Daniel Daugherty
            dcubed Daniel Daugherty
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: