]> git.lizzy.rs Git - rust.git/commitdiff
let htmldocck.py check for directories
authorQuietMisdreavus <grey@quietmisdreavus.net>
Mon, 25 Sep 2017 17:50:27 +0000 (12:50 -0500)
committerQuietMisdreavus <grey@quietmisdreavus.net>
Sat, 30 Sep 2017 18:28:09 +0000 (13:28 -0500)
src/etc/htmldocck.py
src/test/rustdoc/inline_local/glob-private.rs

index 7e8fde2034640d4b033e8746590fb9d04a3ace11..8a11c6f7cfc4c9d27950537feb79ab27572dc4ca 100644 (file)
@@ -99,6 +99,8 @@ There are a number of supported commands:
 * `@count PATH XPATH COUNT' checks for the occurrence of given XPath
   in the given file. The number of occurrences must match the given count.
 
+* `@has-dir PATH` checks for the existence of the given directory.
+
 All conditions can be negated with `!`. `@!has foo/type.NoSuch.html`
 checks if the given file does not exist, for example.
 
@@ -308,6 +310,12 @@ class CachedFiles(object):
             self.trees[path] = tree
             return self.trees[path]
 
+    def get_dir(self, path):
+        path = self.resolve_path(path)
+        abspath = os.path.join(self.root, path)
+        if not(os.path.exists(abspath) and os.path.isdir(abspath)):
+            raise FailedCheck('Directory does not exist {!r}'.format(path))
+
 
 def check_string(data, pat, regexp):
     if not pat:
@@ -407,6 +415,16 @@ def check_command(c, cache):
                 ret = expected == found
             else:
                 raise InvalidCheck('Invalid number of @{} arguments'.format(c.cmd))
+        elif c.cmd == 'has-dir': # has-dir test
+            if len(c.args) == 1: # @has-dir <path> = has-dir test
+                try:
+                    cache.get_dir(c.args[0])
+                    ret = True
+                except FailedCheck as err:
+                    cerr = str(err)
+                    ret = False
+            else:
+                raise InvalidCheck('Invalid number of @{} arguments'.format(c.cmd))
         elif c.cmd == 'valid-html':
             raise InvalidCheck('Unimplemented @valid-html')
 
index b5e256dfdce9495f19f41cad797bc0fcfc8a5d30..ecc754f012ed10937014e027fb10eb012199a473 100644 (file)
@@ -34,16 +34,19 @@ mod mod2 {
 // @has foo/struct.Mod2Public.html
 // @!has foo/struct.Mod2Private.html
 
+// @has-dir foo/mod1
 // @!has foo/mod1/index.html
 // @has foo/mod1/struct.Mod1Public.html
 // @!has foo/mod1/struct.Mod1Private.html
 // @!has foo/mod1/struct.Mod2Public.html
 // @!has foo/mod1/struct.Mod2Private.html
 
+// @has-dir foo/mod1/mod2
 // @!has foo/mod1/mod2/index.html
 // @has foo/mod1/mod2/struct.Mod2Public.html
 // @!has foo/mod1/mod2/struct.Mod2Private.html
 
+// @!has-dir foo/mod2
 // @!has foo/mod2/index.html
 // @!has foo/mod2/struct.Mod2Public.html
 // @!has foo/mod2/struct.Mod2Private.html