tree: 45e2ce3d983d36769357549880039399caf147d2
  1. anchors/
  2. assoc/
  3. async/
  4. auto/
  5. auxiliary/
  6. codeblock/
  7. const-generics/
  8. constant/
  9. cross-crate-info/
  10. deref/
  11. doc-cfg/
  12. enum/
  13. extern/
  14. footnote/
  15. generic-associated-types/
  16. hidden/
  17. impl/
  18. inline_cross/
  19. inline_local/
  20. intra-doc/
  21. jump-to-def/
  22. macro/
  23. macro-expansion/
  24. notable-trait/
  25. primitive/
  26. private/
  27. reexport/
  28. sidebar/
  29. source-code-pages/
  30. synthetic_auto/
  31. typedef/
  32. union/
  33. all.rs
  34. anon-fn-params.rs
  35. anonymous-lifetime.rs
  36. array-links.link_box_generic.html
  37. array-links.link_box_u32.html
  38. array-links.link_slice_generic.html
  39. array-links.link_slice_u32.html
  40. array-links.rs
  41. asm-foreign.rs
  42. asm-foreign2.rs
  43. asref-for-and-of-local-82465.rs
  44. attributes-2021-edition.rs
  45. attributes.rs
  46. blank-line-in-doc-block-47197.rs
  47. bold-tag-101743.rs
  48. bounds.rs
  49. cap-lints.rs
  50. cfg-doctest.rs
  51. check-styled-link.rs
  52. check.rs
  53. const-fn-76501.rs
  54. const-fn-effects.rs
  55. const-fn.rs
  56. const-intrinsic.rs
  57. constructor-imports.rs
  58. crate-doc-hidden-109695.rs
  59. crate-version-escape.rs
  60. crate-version-extra.rs
  61. crate-version.rs
  62. cross-crate-links.rs
  63. decl-line-wrapping-empty-arg-list.decl.html
  64. decl-line-wrapping-empty-arg-list.rs
  65. decl-trailing-whitespace.declaration.html
  66. decl-trailing-whitespace.rs
  67. default-theme.rs
  68. default-trait-method-link.rs
  69. default-trait-method.rs
  70. deprecated-future-staged-api.rs
  71. deprecated-future.rs
  72. deprecated.rs
  73. deref-methods-19190-foreign-type.rs
  74. deref-methods-19190-inline.rs
  75. deref-methods-19190.rs
  76. description.rs
  77. description_default.rs
  78. doc-attr-comment-mix-42760.rs
  79. doc-attribute.rs
  80. doc-hidden-crate.rs
  81. doc-hidden-method-13698.rs
  82. doc-on-keyword.rs
  83. double-hyphen-to-dash.rs
  84. double-quote-escape.rs
  85. duplicate-flags.rs
  86. dyn-compatibility.rs
  87. early-unindent.rs
  88. elided-lifetime.rs
  89. empty-mod-public.rs
  90. empty-section.rs
  91. empty-tuple-struct-118180.rs
  92. ensure-src-link.rs
  93. extremely_long_typename.extremely_long_typename.html
  94. extremely_long_typename.rs
  95. fake-items-doc-private-items.rs
  96. feature-gate-doc_auto_cfg.rs
  97. ffi.rs
  98. file-creation-111249.rs
  99. files-creation-hidden.rs
  100. final-trait-method.rs
  101. fn-bound.rs
  102. fn-pointer-arg-name.rs
  103. fn-sidebar.rs
  104. fn-type.rs
  105. force-unstable-if-unmarked-106421-not-internal.rs
  106. force-unstable-if-unmarked-106421.rs
  107. foreigntype.rs
  108. heading-levels-89309.rs
  109. heterogeneous-concat.rs
  110. hidden-methods.rs
  111. hidden-trait-methods.rs
  112. hide-unstable-trait.rs
  113. higher-ranked-trait-bounds.rs
  114. highlight-invalid-rust-12834.rs
  115. import-remapped-paths.rs
  116. impossible-default.rs
  117. include_str_cut.rs
  118. index-page.rs
  119. infinite-redirection-16265-1.rs
  120. infinite-redirection-16265-2.rs
  121. inherent-projections.rs
  122. internal.rs
  123. invalid$crate$name.rs
  124. item-desc-list-at-start.item-table.html
  125. item-desc-list-at-start.rs
  126. item-name-grapheme-cluster-wbr.rs
  127. keyword.rs
  128. lifetime-name.rs
  129. line-breaks.rs
  130. link-title-escape.rs
  131. links-in-headings.rs
  132. markdown-table-escape-pipe-27862.rs
  133. masked.rs
  134. method-list.rs
  135. mixing-doc-comments-and-attrs.rs
  136. mixing-doc-comments-and-attrs.S1_top-doc.html
  137. mixing-doc-comments-and-attrs.S2_top-doc.html
  138. mixing-doc-comments-and-attrs.S3_top-doc.html
  139. mod-stackoverflow.rs
  140. multiple-foreigns-w-same-name-99734.rs
  141. multiple-import-levels.rs
  142. multiple-mods-w-same-name-99734.rs
  143. multiple-mods-w-same-name-doc-inline-83375.rs
  144. multiple-mods-w-same-name-doc-inline-last-item-83375.rs
  145. multiple-structs-w-same-name-99221.rs
  146. mut-params.rs
  147. nested-items-issue-111415.rs
  148. nested-modules.rs
  149. no-stack-overflow-25295.rs
  150. no-unit-struct-field.rs
  151. non_lifetime_binders.rs
  152. nul-error.rs
  153. pattern-types-implementors.rs
  154. pub-method.rs
  155. range-arg-pattern.rs
  156. raw-ident-eliminate-r-hashtag.rs
  157. read-more-unneeded.rs
  158. README.md
  159. redirect-map-empty.rs
  160. redirect-map.rs
  161. redirect-rename.rs
  162. redirect.rs
  163. remove-duplicates.rs
  164. remove-url-from-headings.rs
  165. repr.rs
  166. return-type-notation.rs
  167. safe-intrinsic.rs
  168. search-index-summaries.rs
  169. search-index.rs
  170. short-docblock.rs
  171. short-line.md
  172. sized_trait.rs
  173. smart-punct.rs
  174. smoke.rs
  175. sort-53812.rs
  176. sort-modules-by-appearance.rs
  177. splat-variadic-ellipsis.rs
  178. stability.rs
  179. staged-api-deprecated-unstable-32374.rs
  180. staged-api-feature-issue-27759.rs
  181. static-root-path.rs
  182. static.rs
  183. strip-block-doc-comments-stars.docblock.html
  184. strip-block-doc-comments-stars.rs
  185. strip-priv-imports-pass-27104.rs
  186. struct-arg-pattern.rs
  187. struct-field.rs
  188. structfields.rs
  189. summary-header-46377.rs
  190. summary-reference-link-30366.rs
  191. tab_title.rs
  192. table-in-docblock.rs
  193. target-feature.rs
  194. task-lists.rs
  195. test-lists.rs
  196. test-parens.rs
  197. test-strikethrough.rs
  198. thread-local-src.rs
  199. titles.rs
  200. toggle-item-contents.rs
  201. toggle-method.rs
  202. toggle-trait-fn.rs
  203. trait-aliases.rs
  204. trait-item-info.rs
  205. trait-read-more-161300.rs
  206. trait-self-link.rs
  207. trait-src-link.rs
  208. trait-visibility.rs
  209. traits-in-bodies.rs
  210. tuple-struct-fields-doc.rs
  211. tuple-struct-where-clause-34928.rs
  212. type-const-associated-const-no-body.rs
  213. type-const-free-in-array.rs
  214. type-const-inherent-with-body.rs
  215. type-layout-flag-required.rs
  216. type-layout.rs
  217. unicode.rs
  218. unit-return.rs
  219. unsafe-binder.rs
  220. useless_lifetime_bound.rs
  221. variadic.rs
  222. viewpath-rename.rs
  223. viewpath-self.rs
  224. visibility.rs
  225. where-clause-order.rs
  226. where-sized.rs
  227. where.alpha_trait_decl.html
  228. where.bravo_trait_decl.html
  229. where.charlie_fn_decl.html
  230. where.golf_type_alias_decl.html
  231. where.rs
  232. where.SWhere_Echo_impl.html
  233. where.SWhere_Simd_item-decl.html
  234. where.SWhere_TraitWhere_item-decl.html
  235. whitespace-after-where-clause.enum.html
  236. whitespace-after-where-clause.enum2.html
  237. whitespace-after-where-clause.rs
  238. whitespace-after-where-clause.struct.html
  239. whitespace-after-where-clause.struct2.html
  240. whitespace-after-where-clause.trait.html
  241. whitespace-after-where-clause.trait2.html
  242. whitespace-after-where-clause.union.html
  243. whitespace-after-where-clause.union2.html
  244. without-redirect.rs
  245. wrapping.rs
tests/rustdoc-html/README.md

rustdoc HTML test suite categories

This is a high-level summary of the organization of the rustdoc HTML test suite (tests/rustdoc-html). It is not intended to be prescriptive, but instead provide a quick survey of existing groupings.

For now, only immediate subdirectories under tests/rustdoc-html are described.

tests/rustdoc-html/anchors

Check for the link anchors. Rustdoc uses anchors when we want to point an element on an item page, like the method of a type.

tests/rustdoc-html/assoc

Contains tests checking how an associated item like a trait method is rendered in the docs.

tests/rustdoc-html/async

Contains tests checking the rendering of async items.

tests/rustdoc-html/auto

Contains tests related to auto traits implementations.

tests/rustdoc-html/codeblock

Contains tests to check the rendering of the code blocks (also called code examples).

tests/rustdoc-html/const-generics

Mostly the same as tests/rustdoc-html/constant except that this folder focuses on the rendering of const generics. Same problematics overall.

tests/rustdoc-html/constant

Contains tests to check constant items rendering. Constant items can sometimes have code that needs to be kept as is or inferred, making this a very tricky topic in rustdoc. :)

tests/rustdoc-html/cross-crate-info

Contains tests to check how information is used across crates. It only contains folders which all contain an auxiliary subfolder for their own dependencies (and avoid potential naming conflicts, in particular for simpler crate names).

tests/rustdoc-html/deref

Contains tests to check the display of items implementing the Deref and/or DerefMut traits.

tests/rustdoc-html/doc-cfg

Contains tests to check the rustdoc doc_cfg feature.

tests/rustdoc-html/enum

Contains tests for the rendering of enum types and in particular its variants.

tests/rustdoc-html/extern

Contains tests to check how extern items (like extern "C" functions) are rendered.

tests/rustdoc-html/footnote

Contains tests checking the markdown footnote features and how it is rendered.

tests/rustdoc-html/generic-associated-types

Contains tests checking the rendering of items when they have generic associated types, like Iterator::Item where Item would instead be Item<'a> where Self: 'a. Fun times. :)

tests/rustdoc-html/hidden

Contains tests checking both doc(hidden) and the --document-hidden-items CLI flag.

tests/rustdoc-html/impl

Contains tests checking the rendering of impl blocks. More general than tests/rustdoc-html/generic-associated-types.

tests/rustdoc-html/inline_cross

Contains tests which check inlined foreign items and how they render based on the limitless list of corner cases we have to handle with reexports.

tests/rustdoc-html/inline_local

Similar to tests/rustdoc-html/inline_cross except this time it's reexports of local items. Still a lot of “fun” and dark magic.

tests/rustdoc-html/intra-doc

Contains tests which check the intra doc links feature. This feature is very important in rustdoc as it allows to simply write the name or the path of an item to get its link generated. It comes with a lot of corner cases around scope and namespaces (illustrated by the very high number of tests in this folder).

tests/rustdoc-html/jump-to-def

This folder contains tests for the “jump to def(inition)” feature which is enabled with the --generate-link-to-definition CLI flag.

tests/rustdoc-html/macro

Contains tests checking the rendering of macro items (both derive and macro_rules!).

tests/rustdoc-html/macro-expansion

Contains tests checking the --generate-macro-expansion CLI flag.

tests/rustdoc-html/notable-trait

Contains tests checking the doc(notable_trait) attribute.

tests/rustdoc-html/primitive

Everything related to primitive types, like intra-doc links pointing to them, documenting them with the rustc_doc_primitive attribute, reexporting them, etc.

tests/rustdoc-html/private

Everything related to non-doc(hidden) items which aren‘t public. Either it’s struct/union fields, impl blocks containing only private items or the handling of the --document-private-items CLI flag.

tests/rustdoc-html/reexport

Another folder about reexports (might be worth merging the three of them?). It checks everything related to reexports like concatenated docs and attributes, inlining, transitive reexported crates, etc.

tests/rustdoc-html/sidebar

Contains tests checking the content of the sidebar like sections or links to items present on the page, etc.

tests/rustdoc-html/source-code-pages

Contains tests checking the content of the source code pages (when you click on the source links).

tests/rustdoc-html/synthetic_auto

Somewhat equivalent to the auto folder's tests. Both should likely be merged.

tests/rustdoc-html/typedef

Contains tests checking type aliases (type X = Y) rendering. In particular when the alias contains generics, meaning a specialized aliased type, allowing in some cases more auto traits implementations.

tests/rustdoc-html/union

Same as tests/rustdoc-html/enum but for union items.