test/jdk/javax/management/remote/rest/JsonParserTest.java
branchjmx-rest-api
changeset 56026 bd531f08d7c7
parent 56004 da55d1429860
equal deleted inserted replaced
56007:d6cbabcaf518 56026:bd531f08d7c7
     1 
     1 
     2 /* @test
     2 /* @test
     3  * @summary Test JSON parser for a random json node tree
     3  * @summary Test JSON parser for a random json node tree
     4  * @modules java.management.rest/com.oracle.jmx.remote.rest.json
     4  * @library /test/lib
     5  *          java.management.rest/com.oracle.jmx.remote.rest.json.parser
     5  * @modules jdk.management.rest/jdk.internal.management.remote.rest.json
       
     6  *          jdk.management.rest/jdk.internal.management.remote.rest.json.parser
     6  * @build JsonParserTest
     7  * @build JsonParserTest
     7  * @run main JsonParserTest
     8  * @run main JsonParserTest
     8  */
     9  */
     9 
    10 
    10 import com.oracle.jmx.remote.rest.json.parser.JSONParser;
    11 import jdk.internal.management.remote.rest.json.JSONElement;
    11 import com.oracle.jmx.remote.rest.json.parser.ParseException;
    12 import jdk.internal.management.remote.rest.json.parser.JSONParser;
       
    13 import jdk.internal.management.remote.rest.json.parser.ParseException;
    12 
    14 
    13 import java.util.*;
    15 import java.util.*;
    14 
    16 
    15 /**
    17 /**
    16  * Below class tests JSON parser for a randomly generated JSON string.
    18  * Thisclass tests the JSON parser for a randomly generated JSON string.
    17  * The Json string is generated by converting a randomly generated tree into a string
    19  * Json strings are generated by walking a randomly generated tree of JSON Nodes.
    18  * Each node in the tree is either a json Object, array or a primitive.
    20  * Each node in the tree is either a json Object, an array or a primitive.
    19  * Primitive node generates string, number, boolean or null as a string.
    21  * Primitive node generates string, number, boolean or null as a string.
    20  * Json Number is generated according to the syntax graph as in json.org
    22  * Json Number is generated according to the syntax graph as specified in json.org
    21  * Json string is generated along with all the control characters, and by escaping
    23  * Json string is generated inclusive of all the control characters.
    22  * only backslash and double quote characters.
    24  * Only backslash and double quote characters are escaped via backslash.
    23  */
    25  */
    24 public class JsonParserTest {
    26 public class JsonParserTest {
    25 
    27 
    26     static final Random RANDOM = new Random(System.currentTimeMillis());
    28     static final Random RANDOM = jdk.test.lib.Utils.getRandomInstance();
    27     static int maxChildrenPerNode;
    29     static int maxChildrenPerNode;
    28 
    30 
    29     public static void main(String[] args) throws ParseException {
    31     public static void main(String[] args) throws ParseException {
    30 
    32 
    31         for(int i=0; i<100; i++) {
    33         for(int i=0; i<100; i++) {
    38             } else {
    40             } else {
    39                 node = JsonNodeGenerator.ObjectGenerator.generate(totalNodes);
    41                 node = JsonNodeGenerator.ObjectGenerator.generate(totalNodes);
    40             }
    42             }
    41             String str = node.toJsonString();
    43             String str = node.toJsonString();
    42             JSONParser parser = new JSONParser(str);
    44             JSONParser parser = new JSONParser(str);
    43             com.oracle.jmx.remote.rest.json.JSONElement parse = parser.parse();
    45             JSONElement parse = parser.parse();
    44             parse.toJsonString();
    46             parse.toJsonString();
    45             System.out.println("Finished iteration : " + i + ", Node count :" + totalNodes);
    47             System.out.println("Finished iteration : " + i + ", Node count :" + totalNodes);
    46         }
    48         }
    47     }
    49     }
    48 }
    50 }