...

Text file src/go.mongodb.org/mongo-driver/testdata/bson-corpus/top.json

Documentation: go.mongodb.org/mongo-driver/testdata/bson-corpus

     1{
     2    "description": "Top-level document validity",
     3    "bson_type": "0x00",
     4    "valid": [
     5        {
     6            "description": "Dollar-prefixed key in top-level document",
     7            "canonical_bson": "0F00000010246B6579002A00000000",
     8            "canonical_extjson": "{\"$key\": {\"$numberInt\": \"42\"}}"
     9        },
    10        {
    11            "description": "Dollar as key in top-level document",
    12            "canonical_bson": "0E00000002240002000000610000",
    13            "canonical_extjson": "{\"$\": \"a\"}"
    14        },
    15        {
    16            "description": "Dotted key in top-level document",
    17            "canonical_bson": "1000000002612E620002000000630000",
    18            "canonical_extjson": "{\"a.b\": \"c\"}"
    19        },
    20        {
    21            "description": "Dot as key in top-level document",
    22            "canonical_bson": "0E000000022E0002000000610000",
    23            "canonical_extjson": "{\".\": \"a\"}"
    24        }
    25    ],
    26    "decodeErrors": [
    27        {
    28            "description": "An object size that's too small to even include the object size, but is a well-formed, empty object",
    29            "bson": "0100000000"
    30        },
    31        {
    32            "description": "An object size that's only enough for the object size, but is a well-formed, empty object",
    33            "bson": "0400000000"
    34        },
    35        {
    36            "description": "One object, with length shorter than size (missing EOO)",
    37            "bson": "05000000"
    38        },
    39        {
    40            "description": "One object, sized correctly, with a spot for an EOO, but the EOO is 0x01",
    41            "bson": "0500000001"
    42        },
    43        {
    44            "description": "One object, sized correctly, with a spot for an EOO, but the EOO is 0xff",
    45            "bson": "05000000FF"
    46        },
    47        {
    48            "description": "One object, sized correctly, with a spot for an EOO, but the EOO is 0x70",
    49            "bson": "0500000070"
    50        },
    51        {
    52            "description": "Byte count is zero (with non-zero input length)",
    53            "bson": "00000000000000000000"
    54        },
    55        {
    56            "description": "Stated length exceeds byte count, with truncated document",
    57            "bson": "1200000002666F6F0004000000626172"
    58        },
    59        {
    60            "description": "Stated length less than byte count, with garbage after envelope",
    61            "bson": "1200000002666F6F00040000006261720000DEADBEEF"
    62        },
    63        {
    64            "description": "Stated length exceeds byte count, with valid envelope",
    65            "bson": "1300000002666F6F00040000006261720000"
    66        },
    67        {
    68            "description": "Stated length less than byte count, with valid envelope",
    69            "bson": "1100000002666F6F00040000006261720000"
    70        },
    71        {
    72            "description": "Invalid BSON type low range",
    73            "bson": "07000000000000"
    74        },
    75        {
    76            "description": "Invalid BSON type high range",
    77            "bson": "07000000800000"
    78        },
    79        {
    80            "description": "Document truncated mid-key",
    81            "bson": "1200000002666F"
    82        },
    83        {
    84            "description": "Null byte in document key",
    85            "bson": "0D000000107800000100000000"
    86        }
    87    ],
    88    "parseErrors": [
    89        {
    90            "description" : "Bad $regularExpression (extra field)",
    91            "string" : "{\"a\" : {\"$regularExpression\": {\"pattern\": \"abc\", \"options\": \"\", \"unrelated\": true}}}"
    92        },
    93        {
    94            "description" : "Bad $regularExpression (missing options field)",
    95            "string" : "{\"a\" : {\"$regularExpression\": {\"pattern\": \"abc\"}}}"
    96        },
    97        {
    98            "description": "Bad $regularExpression (pattern is number, not string)",
    99            "string": "{\"x\" : {\"$regularExpression\" : { \"pattern\": 42, \"options\" : \"\"}}}"
   100        },
   101        {
   102            "description": "Bad $regularExpression (options are number, not string)",
   103            "string": "{\"x\" : {\"$regularExpression\" : { \"pattern\": \"a\", \"options\" : 0}}}"
   104        },
   105        {
   106            "description" : "Bad $regularExpression (missing pattern field)",
   107            "string" : "{\"a\" : {\"$regularExpression\": {\"options\":\"ix\"}}}"
   108        },
   109        {
   110            "description": "Bad $oid (number, not string)",
   111            "string": "{\"a\" : {\"$oid\" : 42}}"
   112        },
   113        {
   114            "description": "Bad $oid (extra field)",
   115            "string": "{\"a\" : {\"$oid\" : \"56e1fc72e0c917e9c4714161\", \"unrelated\": true}}"
   116        },
   117        {
   118            "description": "Bad $numberInt (number, not string)",
   119            "string": "{\"a\" : {\"$numberInt\" : 42}}"
   120        },
   121        {
   122            "description": "Bad $numberInt (extra field)",
   123            "string": "{\"a\" : {\"$numberInt\" : \"42\", \"unrelated\": true}}"
   124        },
   125        {
   126            "description": "Bad $numberLong (number, not string)",
   127            "string": "{\"a\" : {\"$numberLong\" : 42}}"
   128        },
   129        {
   130            "description": "Bad $numberLong (extra field)",
   131            "string": "{\"a\" : {\"$numberLong\" : \"42\", \"unrelated\": true}}"
   132        },
   133        {
   134            "description": "Bad $numberDouble (number, not string)",
   135            "string": "{\"a\" : {\"$numberDouble\" : 42}}"
   136        },
   137        {
   138            "description": "Bad $numberDouble (extra field)",
   139            "string": "{\"a\" : {\"$numberDouble\" : \".1\", \"unrelated\": true}}"
   140        },
   141        {
   142            "description": "Bad $numberDecimal (number, not string)",
   143            "string": "{\"a\" : {\"$numberDecimal\" : 42}}"
   144        },
   145        {
   146            "description": "Bad $numberDecimal (extra field)",
   147            "string": "{\"a\" : {\"$numberDecimal\" : \".1\", \"unrelated\": true}}"
   148        },
   149        {
   150            "description": "Bad $binary (binary is number, not string)",
   151            "string": "{\"x\" : {\"$binary\" : {\"base64\" : 0, \"subType\" : \"00\"}}}"
   152        },
   153        {
   154            "description": "Bad $binary (type is number, not string)",
   155            "string": "{\"x\" : {\"$binary\" : {\"base64\" : \"\", \"subType\" : 0}}}"
   156        },
   157        {
   158            "description": "Bad $binary (missing $type)",
   159            "string": "{\"x\" : {\"$binary\" : {\"base64\" : \"//8=\"}}}"
   160        },
   161        {
   162            "description": "Bad $binary (missing $binary)",
   163            "string": "{\"x\" : {\"$binary\" : {\"subType\" : \"00\"}}}"
   164        },
   165        {
   166            "description": "Bad $binary (extra field)",
   167            "string": "{\"x\" : {\"$binary\" : {\"base64\" : \"//8=\", \"subType\" : 0, \"unrelated\": true}}}"
   168        },
   169        {
   170            "description": "Bad $code (type is number, not string)",
   171            "string": "{\"a\" : {\"$code\" : 42}}"
   172        },
   173        {
   174            "description": "Bad $code (type is number, not string) when $scope is also present",
   175            "string": "{\"a\" : {\"$code\" : 42, \"$scope\" : {}}}"
   176        },
   177        {
   178            "description": "Bad $code (extra field)",
   179            "string": "{\"a\" : {\"$code\" : \"\", \"unrelated\": true}}"
   180        },
   181        {
   182            "description": "Bad $code with $scope (scope is number, not doc)",
   183            "string": "{\"x\" : {\"$code\" : \"\", \"$scope\" : 42}}"
   184        },
   185        {
   186            "description": "Bad $timestamp (type is number, not doc)",
   187            "string": "{\"a\" : {\"$timestamp\" : 42} }"
   188        },
   189        {
   190            "description": "Bad $timestamp ('t' type is string, not number)",
   191            "string": "{\"a\" : {\"$timestamp\" : {\"t\" : \"123456789\", \"i\" : 42} } }"
   192        },
   193        {
   194            "description": "Bad $timestamp ('i' type is string, not number)",
   195            "string": "{\"a\" : {\"$timestamp\" : {\"t\" : 123456789, \"i\" : \"42\"} } }"
   196        },
   197        {
   198            "description": "Bad $timestamp (extra field at same level as $timestamp)",
   199            "string": "{\"a\" : {\"$timestamp\" : {\"t\" : \"123456789\", \"i\" : \"42\"}, \"unrelated\": true } }"
   200        },
   201        {
   202            "description": "Bad $timestamp (extra field at same level as t and i)",
   203            "string": "{\"a\" : {\"$timestamp\" : {\"t\" : \"123456789\", \"i\" : \"42\", \"unrelated\": true} } }"
   204        },
   205        {
   206            "description": "Bad $timestamp (missing t)",
   207            "string": "{\"a\" : {\"$timestamp\" : {\"i\" : \"42\"} } }"
   208        },
   209        {
   210            "description": "Bad $timestamp (missing i)",
   211            "string": "{\"a\" : {\"$timestamp\" : {\"t\" : \"123456789\"} } }"
   212        },
   213        {
   214            "description": "Bad $date (number, not string or hash)",
   215            "string": "{\"a\" : {\"$date\" : 42}}"
   216        },
   217        {
   218            "description": "Bad $date (extra field)",
   219            "string": "{\"a\" : {\"$date\" : {\"$numberLong\" : \"1356351330501\"}, \"unrelated\": true}}"
   220        },
   221        {
   222            "description": "Bad $minKey (boolean, not integer)",
   223            "string": "{\"a\" : {\"$minKey\" : true}}"
   224        },
   225        {
   226            "description": "Bad $minKey (wrong integer)",
   227            "string": "{\"a\" : {\"$minKey\" : 0}}"
   228        },
   229        {
   230            "description": "Bad $minKey (extra field)",
   231            "string": "{\"a\" : {\"$minKey\" : 1, \"unrelated\": true}}"
   232        },
   233        {
   234            "description": "Bad $maxKey (boolean, not integer)",
   235            "string": "{\"a\" : {\"$maxKey\" : true}}"
   236        },
   237        {
   238            "description": "Bad $maxKey (wrong integer)",
   239            "string": "{\"a\" : {\"$maxKey\" : 0}}"
   240        },
   241        {
   242            "description": "Bad $maxKey (extra field)",
   243            "string": "{\"a\" : {\"$maxKey\" : 1, \"unrelated\": true}}"
   244        },
   245        {
   246            "description": "Bad DBpointer (extra field)",
   247            "string": "{\"a\": {\"$dbPointer\": {\"a\": {\"$numberInt\": \"1\"}, \"$id\": {\"$oid\": \"56e1fc72e0c917e9c4714161\"}, \"c\": {\"$numberInt\": \"2\"}, \"$ref\": \"b\"}}}"
   248        },
   249        {
   250            "description" : "Null byte in document key",
   251            "string" : "{\"a\\u0000\": 1 }"
   252        },
   253        {
   254            "description" : "Null byte in sub-document key",
   255            "string" : "{\"a\" : {\"b\\u0000\": 1 }}"
   256        },
   257        {
   258            "description": "Null byte in $regularExpression pattern",
   259            "string": "{\"a\" : {\"$regularExpression\" : { \"pattern\": \"b\\u0000\", \"options\" : \"i\"}}}"
   260        },
   261        {
   262            "description": "Null byte in $regularExpression options",
   263            "string": "{\"a\" : {\"$regularExpression\" : { \"pattern\": \"b\", \"options\" : \"i\\u0000\"}}}"
   264        }
   265    ]
   266}

View as plain text