Skip to content

Commit

Permalink
Auto merge of #44949 - QuietMisdreavus:rustdoctest-dirs, r=nikomatsakis
Browse files Browse the repository at this point in the history
let htmldocck.py check for directories

Since i messed this up during #44613, i wanted to codify this into the rustdoc tests to make sure that doesn't happen again.
  • Loading branch information
bors committed Oct 3, 2017
2 parents 835e3e5 + 5b59c4d commit 4502e2a
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/etc/htmldocck.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,8 @@
* `@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.
Expand Down Expand Up @@ -308,6 +310,12 @@ def get_tree(self, path):
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:
Expand Down Expand Up @@ -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')

Expand Down
3 changes: 3 additions & 0 deletions src/test/rustdoc/inline_local/glob-private.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,19 @@ pub use mod1::*;
// @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

0 comments on commit 4502e2a

Please sign in to comment.