]> xenbits.xensource.com Git - xenclient/toolstack.git/commitdiff
[json] add parsing test suite from JSON_checker project.
authorPrashanth Mundkur <prashanth.mundkur@citrix.com>
Fri, 20 Mar 2009 22:09:45 +0000 (15:09 -0700)
committerPrashanth Mundkur <prashanth.mundkur@citrix.com>
Fri, 20 Mar 2009 22:09:45 +0000 (15:09 -0700)
39 files changed:
libs/json/tests/LICENSE.txt [new file with mode: 0644]
libs/json/tests/README [new file with mode: 0644]
libs/json/tests/fail1.json [new file with mode: 0644]
libs/json/tests/fail10.json [new file with mode: 0644]
libs/json/tests/fail11.json [new file with mode: 0644]
libs/json/tests/fail12.json [new file with mode: 0644]
libs/json/tests/fail13.json [new file with mode: 0644]
libs/json/tests/fail14.json [new file with mode: 0644]
libs/json/tests/fail15.json [new file with mode: 0644]
libs/json/tests/fail16.json [new file with mode: 0644]
libs/json/tests/fail17.json [new file with mode: 0644]
libs/json/tests/fail18.json [new file with mode: 0644]
libs/json/tests/fail19.json [new file with mode: 0644]
libs/json/tests/fail2.json [new file with mode: 0644]
libs/json/tests/fail20.json [new file with mode: 0644]
libs/json/tests/fail21.json [new file with mode: 0644]
libs/json/tests/fail22.json [new file with mode: 0644]
libs/json/tests/fail23.json [new file with mode: 0644]
libs/json/tests/fail24.json [new file with mode: 0644]
libs/json/tests/fail25.json [new file with mode: 0644]
libs/json/tests/fail26.json [new file with mode: 0644]
libs/json/tests/fail27.json [new file with mode: 0644]
libs/json/tests/fail28.json [new file with mode: 0644]
libs/json/tests/fail29.json [new file with mode: 0644]
libs/json/tests/fail3.json [new file with mode: 0644]
libs/json/tests/fail30.json [new file with mode: 0644]
libs/json/tests/fail31.json [new file with mode: 0644]
libs/json/tests/fail32.json [new file with mode: 0644]
libs/json/tests/fail33.json [new file with mode: 0644]
libs/json/tests/fail4.json [new file with mode: 0644]
libs/json/tests/fail5.json [new file with mode: 0644]
libs/json/tests/fail6.json [new file with mode: 0644]
libs/json/tests/fail7.json [new file with mode: 0644]
libs/json/tests/fail8.json [new file with mode: 0644]
libs/json/tests/fail9.json [new file with mode: 0644]
libs/json/tests/pass1.json [new file with mode: 0644]
libs/json/tests/pass2.json [new file with mode: 0644]
libs/json/tests/pass3.json [new file with mode: 0644]
libs/json/tests/run_tests.sh [new file with mode: 0755]

diff --git a/libs/json/tests/LICENSE.txt b/libs/json/tests/LICENSE.txt
new file mode 100644 (file)
index 0000000..7d41935
--- /dev/null
@@ -0,0 +1,23 @@
+/*                                                                                               
+Copyright (c) 2005 JSON.org                                                                      
+                                                                                                 
+Permission is hereby granted, free of charge, to any person obtaining a copy                     
+of this software and associated documentation files (the "Software"), to deal                    
+in the Software without restriction, including without limitation the rights                     
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell                        
+copies of the Software, and to permit persons to whom the Software is                            
+furnished to do so, subject to the following conditions:                                         
+                                                                                                 
+The above copyright notice and this permission notice shall be included in all                   
+copies or substantial portions of the Software.                                                  
+                                                                                                 
+The Software shall be used for Good, not Evil.                                                   
+                                                                                                 
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR                       
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,                         
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE                      
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER                           
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,                    
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE                    
+SOFTWARE.                                                                                        
+*/
diff --git a/libs/json/tests/README b/libs/json/tests/README
new file mode 100644 (file)
index 0000000..a4892e1
--- /dev/null
@@ -0,0 +1,4 @@
+The .json files in this directory are taken from the JSON_checker
+project [1], and are covered by the license in LICENSE.txt.
+
+[1] http://www.json.org/JSON_checker/
diff --git a/libs/json/tests/fail1.json b/libs/json/tests/fail1.json
new file mode 100644 (file)
index 0000000..6216b86
--- /dev/null
@@ -0,0 +1 @@
+"A JSON payload should be an object or array, not a string."
\ No newline at end of file
diff --git a/libs/json/tests/fail10.json b/libs/json/tests/fail10.json
new file mode 100644 (file)
index 0000000..5d8c004
--- /dev/null
@@ -0,0 +1 @@
+{"Extra value after close": true} "misplaced quoted value"
\ No newline at end of file
diff --git a/libs/json/tests/fail11.json b/libs/json/tests/fail11.json
new file mode 100644 (file)
index 0000000..76eb95b
--- /dev/null
@@ -0,0 +1 @@
+{"Illegal expression": 1 + 2}
\ No newline at end of file
diff --git a/libs/json/tests/fail12.json b/libs/json/tests/fail12.json
new file mode 100644 (file)
index 0000000..77580a4
--- /dev/null
@@ -0,0 +1 @@
+{"Illegal invocation": alert()}
\ No newline at end of file
diff --git a/libs/json/tests/fail13.json b/libs/json/tests/fail13.json
new file mode 100644 (file)
index 0000000..379406b
--- /dev/null
@@ -0,0 +1 @@
+{"Numbers cannot have leading zeroes": 013}
\ No newline at end of file
diff --git a/libs/json/tests/fail14.json b/libs/json/tests/fail14.json
new file mode 100644 (file)
index 0000000..0ed366b
--- /dev/null
@@ -0,0 +1 @@
+{"Numbers cannot be hex": 0x14}
\ No newline at end of file
diff --git a/libs/json/tests/fail15.json b/libs/json/tests/fail15.json
new file mode 100644 (file)
index 0000000..fc8376b
--- /dev/null
@@ -0,0 +1 @@
+["Illegal backslash escape: \x15"]
\ No newline at end of file
diff --git a/libs/json/tests/fail16.json b/libs/json/tests/fail16.json
new file mode 100644 (file)
index 0000000..3fe21d4
--- /dev/null
@@ -0,0 +1 @@
+[\naked]
\ No newline at end of file
diff --git a/libs/json/tests/fail17.json b/libs/json/tests/fail17.json
new file mode 100644 (file)
index 0000000..62b9214
--- /dev/null
@@ -0,0 +1 @@
+["Illegal backslash escape: \017"]
\ No newline at end of file
diff --git a/libs/json/tests/fail18.json b/libs/json/tests/fail18.json
new file mode 100644 (file)
index 0000000..edac927
--- /dev/null
@@ -0,0 +1 @@
+[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]
\ No newline at end of file
diff --git a/libs/json/tests/fail19.json b/libs/json/tests/fail19.json
new file mode 100644 (file)
index 0000000..3b9c46f
--- /dev/null
@@ -0,0 +1 @@
+{"Missing colon" null}
\ No newline at end of file
diff --git a/libs/json/tests/fail2.json b/libs/json/tests/fail2.json
new file mode 100644 (file)
index 0000000..6b7c11e
--- /dev/null
@@ -0,0 +1 @@
+["Unclosed array"
\ No newline at end of file
diff --git a/libs/json/tests/fail20.json b/libs/json/tests/fail20.json
new file mode 100644 (file)
index 0000000..27c1af3
--- /dev/null
@@ -0,0 +1 @@
+{"Double colon":: null}
\ No newline at end of file
diff --git a/libs/json/tests/fail21.json b/libs/json/tests/fail21.json
new file mode 100644 (file)
index 0000000..6247457
--- /dev/null
@@ -0,0 +1 @@
+{"Comma instead of colon", null}
\ No newline at end of file
diff --git a/libs/json/tests/fail22.json b/libs/json/tests/fail22.json
new file mode 100644 (file)
index 0000000..a775258
--- /dev/null
@@ -0,0 +1 @@
+["Colon instead of comma": false]
\ No newline at end of file
diff --git a/libs/json/tests/fail23.json b/libs/json/tests/fail23.json
new file mode 100644 (file)
index 0000000..494add1
--- /dev/null
@@ -0,0 +1 @@
+["Bad value", truth]
\ No newline at end of file
diff --git a/libs/json/tests/fail24.json b/libs/json/tests/fail24.json
new file mode 100644 (file)
index 0000000..caff239
--- /dev/null
@@ -0,0 +1 @@
+['single quote']
\ No newline at end of file
diff --git a/libs/json/tests/fail25.json b/libs/json/tests/fail25.json
new file mode 100644 (file)
index 0000000..8b7ad23
--- /dev/null
@@ -0,0 +1 @@
+["     tab     character       in      string  "]
\ No newline at end of file
diff --git a/libs/json/tests/fail26.json b/libs/json/tests/fail26.json
new file mode 100644 (file)
index 0000000..845d26a
--- /dev/null
@@ -0,0 +1 @@
+["tab\   character\   in\  string\  "]
\ No newline at end of file
diff --git a/libs/json/tests/fail27.json b/libs/json/tests/fail27.json
new file mode 100644 (file)
index 0000000..6b01a2c
--- /dev/null
@@ -0,0 +1,2 @@
+["line
+break"]
\ No newline at end of file
diff --git a/libs/json/tests/fail28.json b/libs/json/tests/fail28.json
new file mode 100644 (file)
index 0000000..621a010
--- /dev/null
@@ -0,0 +1,2 @@
+["line\
+break"]
\ No newline at end of file
diff --git a/libs/json/tests/fail29.json b/libs/json/tests/fail29.json
new file mode 100644 (file)
index 0000000..47ec421
--- /dev/null
@@ -0,0 +1 @@
+[0e]
\ No newline at end of file
diff --git a/libs/json/tests/fail3.json b/libs/json/tests/fail3.json
new file mode 100644 (file)
index 0000000..168c81e
--- /dev/null
@@ -0,0 +1 @@
+{unquoted_key: "keys must be quoted"}
\ No newline at end of file
diff --git a/libs/json/tests/fail30.json b/libs/json/tests/fail30.json
new file mode 100644 (file)
index 0000000..8ab0bc4
--- /dev/null
@@ -0,0 +1 @@
+[0e+]
\ No newline at end of file
diff --git a/libs/json/tests/fail31.json b/libs/json/tests/fail31.json
new file mode 100644 (file)
index 0000000..1cce602
--- /dev/null
@@ -0,0 +1 @@
+[0e+-1]
\ No newline at end of file
diff --git a/libs/json/tests/fail32.json b/libs/json/tests/fail32.json
new file mode 100644 (file)
index 0000000..45cba73
--- /dev/null
@@ -0,0 +1 @@
+{"Comma instead if closing brace": true,
\ No newline at end of file
diff --git a/libs/json/tests/fail33.json b/libs/json/tests/fail33.json
new file mode 100644 (file)
index 0000000..ca5eb19
--- /dev/null
@@ -0,0 +1 @@
+["mismatch"}
\ No newline at end of file
diff --git a/libs/json/tests/fail4.json b/libs/json/tests/fail4.json
new file mode 100644 (file)
index 0000000..9de168b
--- /dev/null
@@ -0,0 +1 @@
+["extra comma",]
\ No newline at end of file
diff --git a/libs/json/tests/fail5.json b/libs/json/tests/fail5.json
new file mode 100644 (file)
index 0000000..ddf3ce3
--- /dev/null
@@ -0,0 +1 @@
+["double extra comma",,]
\ No newline at end of file
diff --git a/libs/json/tests/fail6.json b/libs/json/tests/fail6.json
new file mode 100644 (file)
index 0000000..ed91580
--- /dev/null
@@ -0,0 +1 @@
+[   , "<-- missing value"]
\ No newline at end of file
diff --git a/libs/json/tests/fail7.json b/libs/json/tests/fail7.json
new file mode 100644 (file)
index 0000000..8a96af3
--- /dev/null
@@ -0,0 +1 @@
+["Comma after the close"],
\ No newline at end of file
diff --git a/libs/json/tests/fail8.json b/libs/json/tests/fail8.json
new file mode 100644 (file)
index 0000000..b28479c
--- /dev/null
@@ -0,0 +1 @@
+["Extra close"]]
\ No newline at end of file
diff --git a/libs/json/tests/fail9.json b/libs/json/tests/fail9.json
new file mode 100644 (file)
index 0000000..5815574
--- /dev/null
@@ -0,0 +1 @@
+{"Extra comma": true,}
\ No newline at end of file
diff --git a/libs/json/tests/pass1.json b/libs/json/tests/pass1.json
new file mode 100644 (file)
index 0000000..70e2685
--- /dev/null
@@ -0,0 +1,58 @@
+[
+    "JSON Test Pattern pass1",
+    {"object with 1 member":["array with 1 element"]},
+    {},
+    [],
+    -42,
+    true,
+    false,
+    null,
+    {
+        "integer": 1234567890,
+        "real": -9876.543210,
+        "e": 0.123456789e-12,
+        "E": 1.234567890E+34,
+        "":  23456789012E66,
+        "zero": 0,
+        "one": 1,
+        "space": " ",
+        "quote": "\"",
+        "backslash": "\\",
+        "controls": "\b\f\n\r\t",
+        "slash": "/ & \/",
+        "alpha": "abcdefghijklmnopqrstuvwyz",
+        "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
+        "digit": "0123456789",
+        "0123456789": "digit",
+        "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
+        "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
+        "true": true,
+        "false": false,
+        "null": null,
+        "array":[  ],
+        "object":{  },
+        "address": "50 St. James Street",
+        "url": "http://www.JSON.org/",
+        "comment": "// /* <!-- --",
+        "# -- --> */": " ",
+        " s p a c e d " :[1,2 , 3
+
+,
+
+4 , 5        ,          6           ,7        ],"compact":[1,2,3,4,5,6,7],
+        "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
+        "quotes": "&#34; \u0022 %22 0x22 034 &#x22;",
+        "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
+: "A key can be any string"
+    },
+    0.5 ,98.6
+,
+99.44
+,
+
+1066,
+1e1,
+0.1e1,
+1e-1,
+1e00,2e+00,2e-00
+,"rosebud"]
\ No newline at end of file
diff --git a/libs/json/tests/pass2.json b/libs/json/tests/pass2.json
new file mode 100644 (file)
index 0000000..d3c63c7
--- /dev/null
@@ -0,0 +1 @@
+[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]
\ No newline at end of file
diff --git a/libs/json/tests/pass3.json b/libs/json/tests/pass3.json
new file mode 100644 (file)
index 0000000..4528d51
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "JSON Test Pattern pass3": {
+        "The outermost value": "must be an object or array.",
+        "In this test": "It is an object."
+    }
+}
diff --git a/libs/json/tests/run_tests.sh b/libs/json/tests/run_tests.sh
new file mode 100755 (executable)
index 0000000..ba1712e
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+PROG=../json_test
+
+for f in `ls *pass*.json`; do
+       $PROG $f > /dev/null 2>&1
+       if [ $? -ne 0 ] ; then
+               echo Test case $f should pass, but failed.
+       fi
+done
+for f in `ls *fail*.json`; do
+       $PROG $f > /dev/null 2>&1
+       if [ $? -eq 0 ] ; then
+               echo Test case $f should fail, but passed.
+       fi
+done