summaryrefslogtreecommitdiff
path: root/jstests/libs
diff options
context:
space:
mode:
authorTess Avitabile <tess.avitabile@mongodb.com>2017-10-24 14:48:16 -0400
committerTess Avitabile <tess.avitabile@mongodb.com>2017-10-25 12:18:07 -0400
commit23e886eebf9794190d198da98cd96e4127bb3dc8 (patch)
treeae150142ceed1cf3c7385cd4688caf19b2192b69 /jstests/libs
parentde2a67178e3365b829d57afde92cb6123dd24357 (diff)
downloadmongo-23e886eebf9794190d198da98cd96e4127bb3dc8.tar.gz
SERVER-31630 getParameter for featureCompatibilityVersion must expose targetVersion
Diffstat (limited to 'jstests/libs')
-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