Skip to content

Commit 473ad34

Browse files
committed
wip split w:0 server-side validation test and skip for OP_MSG
1 parent 798a71a commit 473ad34

File tree

3 files changed

+138
-0
lines changed

3 files changed

+138
-0
lines changed

src/libmongoc/tests/json/crud/unified/insertOne-dots_and_dollars.json

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,63 @@
601601
"documents": []
602602
}
603603
]
604+
},
605+
{
606+
"description": "Unacknowledged write using dollar-prefixed or dotted keys may be silently rejected on pre-3.6 server",
607+
"runOnRequirements": [
608+
{
609+
"maxServerVersion": "3.4.99"
610+
}
611+
],
612+
"operations": [
613+
{
614+
"name": "insertOne",
615+
"object": "collection1",
616+
"arguments": {
617+
"document": {
618+
"_id": {
619+
"$a": 1
620+
}
621+
}
622+
},
623+
"expectResult": {
624+
"acknowledged": {
625+
"$$unsetOrMatches": false
626+
}
627+
}
628+
}
629+
],
630+
"expectEvents": [
631+
{
632+
"client": "client0",
633+
"events": [
634+
{
635+
"commandStartedEvent": {
636+
"command": {
637+
"insert": "coll1",
638+
"documents": [
639+
{
640+
"_id": {
641+
"$a": 1
642+
}
643+
}
644+
],
645+
"writeConcern": {
646+
"w": 0
647+
}
648+
}
649+
}
650+
}
651+
]
652+
}
653+
],
654+
"outcome": [
655+
{
656+
"collectionName": "coll0",
657+
"databaseName": "crud-tests",
658+
"documents": []
659+
}
660+
]
604661
}
605662
]
606663
}

src/libmongoc/tests/json/crud/unified/replaceOne-dots_and_dollars.json

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,83 @@
562562
]
563563
}
564564
]
565+
},
566+
{
567+
"description": "Unacknowledged write using dollar-prefixed or dotted keys may be silently rejected on pre-3.6 server",
568+
"runOnRequirements": [
569+
{
570+
"maxServerVersion": "3.4.99"
571+
}
572+
],
573+
"operations": [
574+
{
575+
"name": "replaceOne",
576+
"object": "collection1",
577+
"arguments": {
578+
"filter": {
579+
"_id": 1
580+
},
581+
"replacement": {
582+
"_id": 1,
583+
"a": {
584+
"$b": 1
585+
}
586+
}
587+
},
588+
"expectResult": {
589+
"acknowledged": {
590+
"$$unsetOrMatches": false
591+
}
592+
}
593+
}
594+
],
595+
"expectEvents": [
596+
{
597+
"client": "client0",
598+
"events": [
599+
{
600+
"commandStartedEvent": {
601+
"command": {
602+
"update": "coll1",
603+
"updates": [
604+
{
605+
"q": {
606+
"_id": 1
607+
},
608+
"u": {
609+
"_id": 1,
610+
"a": {
611+
"$b": 1
612+
}
613+
},
614+
"multi": {
615+
"$$unsetOrMatches": false
616+
},
617+
"upsert": {
618+
"$$unsetOrMatches": false
619+
}
620+
}
621+
],
622+
"writeConcern": {
623+
"w": 0
624+
}
625+
}
626+
}
627+
}
628+
]
629+
}
630+
],
631+
"outcome": [
632+
{
633+
"collectionName": "coll0",
634+
"databaseName": "crud-tests",
635+
"documents": [
636+
{
637+
"_id": 1
638+
}
639+
]
640+
}
641+
]
565642
}
566643
]
567644
}

src/libmongoc/tests/unified/runner.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ skipped_unified_test_t SKIPPED_TESTS[] = {
5858
{"unacknowledged-updateMany-hint-clientError", "Unacknowledged updateMany with hint document fails with client-side error"},
5959
{"unacknowledged-updateOne-hint-clientError", "Unacknowledged updateOne with hint string fails with client-side error"},
6060
{"unacknowledged-updateOne-hint-clientError", "Unacknowledged updateOne with hint document fails with client-side error"},
61+
/* libmongoc uses OP_MSG for unacknowledged writes, which will report the
62+
* server-side validation failure */
63+
{"insertOne-dots_and_dollars", "Unacknowledged write using dollar-prefixed or dotted keys may be silently rejected on pre-5.0 server"},
64+
{"replaceOne-dots_and_dollars", "Unacknowledged write using dollar-prefixed or dotted keys may be silently rejected on pre-5.0 server"},
6165
/* CDRIVER-4001, DRIVERS-1781, and DRIVERS-1448: 5.0 cursor behavior */
6266
{"poc-command-monitoring", "A successful find event with a getmore and the server kills the cursor"},
6367
/* CDRIVER-3886: serverless testing (schema version 1.4) */

0 commit comments

Comments
 (0)