about summary refs log tree commit diff
path: root/src/tools/rustdoc-js
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-05-10 07:52:15 +0000
committerbors <bors@rust-lang.org>2018-05-10 07:52:15 +0000
commitc8a3ec1ce6dc12f86de39bf5ac55fc2fa38358f8 (patch)
treec2870f831a6a7edfca099b17202cff7d66f3559d /src/tools/rustdoc-js
parent95d0b9e96795aea20ac4a1fad9251982714d3c55 (diff)
parent2c91b49fe45b71e30f3e47e185671fc75b36952f (diff)
downloadrust-c8a3ec1ce6dc12f86de39bf5ac55fc2fa38358f8.tar.gz
rust-c8a3ec1ce6dc12f86de39bf5ac55fc2fa38358f8.zip
Auto merge of #50432 - GuillaumeGomez:fix-vec-new-search, r=QuietMisdreavus
Fix rustdoc pathes search

Fixes #50086.

Depends on #50302.

r? @QuietMisdreavus
Diffstat (limited to 'src/tools/rustdoc-js')
-rw-r--r--src/tools/rustdoc-js/tester.js10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/tools/rustdoc-js/tester.js b/src/tools/rustdoc-js/tester.js
index 1c79443dedf..25f7a2d1294 100644
--- a/src/tools/rustdoc-js/tester.js
+++ b/src/tools/rustdoc-js/tester.js
@@ -88,6 +88,7 @@ function loadContent(content) {
     var m = new Module();
     m._compile(content, "tmp.js");
     m.exports.ignore_order = content.indexOf("\n// ignore-order\n") !== -1;
+    m.exports.exact_check = content.indexOf("\n// exact-check\n") !== -1;
     return m.exports;
 }
 
@@ -179,6 +180,7 @@ function main(argv) {
         const expected = loadedFile.EXPECTED;
         const query = loadedFile.QUERY;
         const ignore_order = loadedFile.ignore_order;
+        const exact_check = loadedFile.exact_check;
         var results = loaded.execSearch(loaded.getQuery(query), index);
         process.stdout.write('Checking "' + file + '" ... ');
         var error_text = [];
@@ -191,13 +193,17 @@ function main(argv) {
                 break;
             }
             var entry = expected[key];
-            var prev_pos = 0;
+            var prev_pos = -1;
             for (var i = 0; i < entry.length; ++i) {
                 var entry_pos = lookForEntry(entry[i], results[key]);
                 if (entry_pos === null) {
                     error_text.push("==> Result not found in '" + key + "': '" +
                                     JSON.stringify(entry[i]) + "'");
-                } else if (entry_pos < prev_pos && ignore_order === false) {
+                } else if (exact_check === true && prev_pos + 1 !== entry_pos) {
+                    error_text.push("==> Exact check failed at position " + (prev_pos + 1) + ": " +
+                                    "expected '" + JSON.stringify(entry[i]) + "' but found '" +
+                                    JSON.stringify(results[key][i]) + "'");
+                } else if (ignore_order === false && entry_pos < prev_pos) {
                     error_text.push("==> '" + JSON.stringify(entry[i]) + "' was supposed to be " +
                                     " before '" + JSON.stringify(results[key][entry_pos]) + "'");
                 } else {