Re: RFR: 8263320: [test] Add Object Stream Formatter to work with test utility HexPrinter
On Tue, 9 Mar 2021 21:37:16 GMT, Roger Riggs wrote: > ObjectStreamPrinter is a Formatter plugin to the test library HexPrinter. > > A binary stream of serialized java objects is converted into a textual form > by parsing the header, typecodes, and interpreting the stream contents. The > formatter can be used standalone or with the HexPrinter to align the > formatted stream with the corresponding hexadecimal bytes. > > StreamDump is a test utility to pass the contents of a file to the HexPrinter > utility. The format of the file is guessed from the encoding and initial > bytes. ASN.1 and serialized object streams are supported. Marked as reviewed by chegar (Reviewer). - PR: https://git.openjdk.java.net/jdk/pull/2900
RFR: 8263320: [test] Add Object Stream Formatter to work with test utility HexPrinter
ObjectStreamPrinter is a Formatter plugin to the test library HexPrinter. A binary stream of serialized java objects is converted into a textual form by parsing the header, typecodes, and interpreting the stream contents. The formatter can be used standalone or with the HexPrinter to align the formatted stream with the corresponding hexadecimal bytes. StreamDump is a test utility to pass the contents of a file to the HexPrinter utility. The format of the file is guessed from the encoding and initial bytes. ASN.1 and serialized object streams are supported. - Commit messages: - 8263320: [test] Add Object Stream Formatter to work with test utility HexPrinter Changes: https://git.openjdk.java.net/jdk/pull/2900/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2900&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8263320 Stats: 1684 lines in 4 files changed: 1684 ins; 0 del; 0 mod Patch: https://git.openjdk.java.net/jdk/pull/2900.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/2900/head:pull/2900 PR: https://git.openjdk.java.net/jdk/pull/2900
Re: RFR: 8263320: [test] Add Object Stream Formatter to work with test utility HexPrinter
On Tue, 9 Mar 2021 21:37:16 GMT, Roger Riggs wrote: > ObjectStreamPrinter is a Formatter plugin to the test library HexPrinter. > > A binary stream of serialized java objects is converted into a textual form > by parsing the header, typecodes, and interpreting the stream contents. The > formatter can be used standalone or with the HexPrinter to align the > formatted stream with the corresponding hexadecimal bytes. > > StreamDump is a test utility to pass the contents of a file to the HexPrinter > utility. The format of the file is guessed from the encoding and initial > bytes. ASN.1 and serialized object streams are supported. The idea is to provide a fairly literal interpretation of the stream contents with annotations to make it easy to read and understand the nesting, object handle assignments, internal references, class descriptors, and block data usage. A Hashmap with three key/value pairs is formatted: Map map = new HashMap<>(); map.put("1", "One"); map.put("2", "Two"); map.put("2.2", "Two"); : ac ed 00 05 // ObjectStream Version: 5 0004: 73 72 00 11 6a 61 76 61 2e 75 74 69 // READ CLASSDESC #0 java.util.HashMap 0010: 6c 2e 48 61 73 68 4d 61 70 // 0019:05 07 da c1 c3 16 60 // svid: 362498820763181265L 0020: d1 // 0021:03// flags: WRITE_OBJECT, SERIALIZABLE 0022: 00 02 // 2 field(s) { 0024: 46 00 0a 6c 6f 61 64 46 61 63 74 6f // F loadFactor float; 0030: 72 // 0031:49 00 09 74 68 72 65 73 68 6f 6c 64 // I threshold int; 003d:78// } ENDBLOCK; 003e: 70 // Super: NULL; 003f: // OBJ #1 java.util.HashMap 003f: 3f // loadFactor:0.75 0040: 40 00 00 // 0043: 00 00 00 0c // threshold:12 0047: // CustomData: 0047: 77 08 00 00 00 10 00 00 00 // BLOCKDATA 8[ ]; 0050: 03 // 0051:74 00 01 31 // STRING #2 "1" 0055:74 00 03 4f 6e 65 // STRING #3 "One" 005b: 74 00 01 32 // STRING #4 "2" 005f: 74 // STRING #5 "Two" 0060: 00 03 54 77 6f // 0065:74 00 03 32 2e 32 // STRING #6 "2.2" 006b: 71 00 7e 00 05 // REF #5 Two 0070: 78 // ENDBLOCK; The tests include a number of other examples. - PR: https://git.openjdk.java.net/jdk/pull/2900