summaryrefslogtreecommitdiff
path: root/jstests/libs/feature_compatibility_version.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/libs/feature_compatibility_version.js')
-rw-r--r--jstests/libs/feature_compatibility_version.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/jstests/libs/feature_compatibility_version.js b/jstests/libs/feature_compatibility_version.js
new file mode 100644
index 00000000000..116706eaf27
--- /dev/null
+++ b/jstests/libs/feature_compatibility_version.js
@@ -0,0 +1,33 @@
+// Contains helpers for checking the featureCompatibilityVersion.
+
+/**
+ * Checks the featureCompatibilityVersion document and server parameter. The
+ * featureCompatibilityVersion document is of the form {_id: "featureCompatibilityVersion", version:
+ * <required>, targetVersion: <optional>}. The getParameter result is of the form
+ * {featureCompatibilityVersion: {version: <required>, targetVersion: <optional>}, ok: 1}.
+ */
+function checkFCV(adminDB, version, targetVersion) {
+ let res = adminDB.runCommand({getParameter: 1, featureCompatibilityVersion: 1});
+ assert.commandWorked(res);
+ assert.eq(res.featureCompatibilityVersion.version, version, tojson(res));
+ assert.eq(res.featureCompatibilityVersion.targetVersion, targetVersion, tojson(res));
+
+ let doc = adminDB.system.version.findOne({_id: "featureCompatibilityVersion"});
+ assert.eq(doc.version, version, tojson(doc));
+ assert.eq(doc.targetVersion, targetVersion, tojson(doc));
+}
+
+/**
+ * Checks the featureCompatibilityVersion document and server parameter for a 3.4 binary. In 3.4,
+ * the featureCompatibilityVersion document is of the form {_id: "featureCompatibilityVersion",
+ * version: <value>}. The getParameter result is of the form {featureCompatibilityVersion: <value>,
+ * ok: 1}.
+ */
+function checkFCV34(adminDB, version) {
+ let res = adminDB.runCommand({getParameter: 1, featureCompatibilityVersion: 1});
+ assert.commandWorked(res);
+ assert.eq(res.featureCompatibilityVersion, version, tojson(res));
+
+ let doc = adminDB.system.version.findOne({_id: "featureCompatibilityVersion"});
+ assert.eq(doc.version, version, tojson(doc));
+} \ No newline at end of file