redsnow 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (583) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +67 -0
  3. data/Rakefile +1 -1
  4. data/doc/RedSnow.html +321 -0
  5. data/doc/RedSnow/Action.html +702 -0
  6. data/doc/RedSnow/Binding.html +135 -0
  7. data/doc/RedSnow/Blueprint.html +657 -0
  8. data/doc/RedSnow/BlueprintNode.html +139 -0
  9. data/doc/RedSnow/ErrorCodes.html +165 -0
  10. data/doc/RedSnow/Headers.html +456 -0
  11. data/doc/RedSnow/KeyValueCollection.html +343 -0
  12. data/doc/RedSnow/Location.html +391 -0
  13. data/doc/RedSnow/Metadata.html +343 -0
  14. data/doc/RedSnow/NamedBlueprintNode.html +444 -0
  15. data/doc/RedSnow/Object.html +295 -0
  16. data/doc/RedSnow/Parameter.html +881 -0
  17. data/doc/RedSnow/Parameters.html +349 -0
  18. data/doc/RedSnow/ParseResult.html +570 -0
  19. data/doc/RedSnow/Payload.html +775 -0
  20. data/doc/RedSnow/Resource.html +790 -0
  21. data/doc/RedSnow/ResourceGroup.html +521 -0
  22. data/doc/RedSnow/TransactionExample.html +700 -0
  23. data/doc/RedSnow/WarningCodes.html +210 -0
  24. data/doc/_index.html +342 -0
  25. data/doc/class_list.html +54 -0
  26. data/doc/css/common.css +1 -0
  27. data/doc/css/full_list.css +57 -0
  28. data/doc/css/style.css +339 -0
  29. data/doc/file.README.html +136 -0
  30. data/doc/file_list.html +56 -0
  31. data/doc/frames.html +26 -0
  32. data/doc/index.html +136 -0
  33. data/doc/js/app.js +219 -0
  34. data/doc/js/full_list.js +178 -0
  35. data/doc/js/jquery.js +4 -0
  36. data/doc/method_list.html +347 -0
  37. data/doc/top-level-namespace.html +112 -0
  38. data/ext/snowcrash/Gemfile +8 -0
  39. data/ext/snowcrash/Gemfile.lock +40 -0
  40. data/ext/snowcrash/LICENSE +22 -0
  41. data/ext/snowcrash/README.md +118 -0
  42. data/ext/snowcrash/bin/snowcrash +0 -0
  43. data/ext/snowcrash/bin/test-libsnowcrash +0 -0
  44. data/ext/snowcrash/build/Makefile +375 -0
  45. data/ext/snowcrash/build/gyp-mac-tool +511 -0
  46. data/ext/snowcrash/build/libmarkdownparser.target.mk +137 -0
  47. data/ext/snowcrash/build/libsnowcrash.target.mk +165 -0
  48. data/ext/snowcrash/build/libsundown.target.mk +143 -0
  49. data/ext/snowcrash/build/out/Release/libmarkdownparser.a +0 -0
  50. data/ext/snowcrash/build/out/Release/libsnowcrash.dylib +0 -0
  51. data/ext/snowcrash/build/out/Release/libsundown.a +0 -0
  52. data/ext/snowcrash/build/out/Release/linker.lock +0 -0
  53. data/ext/snowcrash/build/out/Release/obj.target/libmarkdownparser/ext/markdown-parser/src/ByteBuffer.o +0 -0
  54. data/ext/snowcrash/build/out/Release/obj.target/libmarkdownparser/ext/markdown-parser/src/MarkdownNode.o +0 -0
  55. data/ext/snowcrash/build/out/Release/obj.target/libmarkdownparser/ext/markdown-parser/src/MarkdownParser.o +0 -0
  56. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/CBlueprint.o +0 -0
  57. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/CBlueprintSourcemap.o +0 -0
  58. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/CSourceAnnotation.o +0 -0
  59. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/HTTP.o +0 -0
  60. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/MarkdownBlock.o +0 -0
  61. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/MarkdownParser.o +0 -0
  62. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Parser.o +0 -0
  63. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/ParserCore.o +0 -0
  64. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Section.o +0 -0
  65. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Serialize.o +0 -0
  66. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/SerializeJSON.o +0 -0
  67. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/SerializeYAML.o +0 -0
  68. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/Signature.o +0 -0
  69. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/UriTemplateParser.o +0 -0
  70. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/csnowcrash.o +0 -0
  71. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/posix/RegexMatch.o +0 -0
  72. data/ext/snowcrash/build/out/Release/obj.target/libsnowcrash/src/snowcrash.o +0 -0
  73. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/html/houdini_href_e.o +0 -0
  74. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/html/houdini_html_e.o +0 -0
  75. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/html/html.o +0 -0
  76. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/html/html_smartypants.o +0 -0
  77. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/src/autolink.o +0 -0
  78. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/src/buffer.o +0 -0
  79. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/src/markdown.o +0 -0
  80. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/src/src_map.o +0 -0
  81. data/ext/snowcrash/build/out/Release/obj.target/libsundown/ext/markdown-parser/ext/sundown/src/stack.o +0 -0
  82. data/ext/snowcrash/build/out/Release/obj.target/snowcrash/src/snowcrash/snowcrash.o +0 -0
  83. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/html/houdini_href_e.o +0 -0
  84. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/html/houdini_html_e.o +0 -0
  85. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/html/html.o +0 -0
  86. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/html/html_smartypants.o +0 -0
  87. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/src/autolink.o +0 -0
  88. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/src/buffer.o +0 -0
  89. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/src/markdown.o +0 -0
  90. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/src/src_map.o +0 -0
  91. data/ext/snowcrash/build/out/Release/obj.target/sundown/sundown/src/stack.o +0 -0
  92. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ActionParser.o +0 -0
  93. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-AssetParser.o +0 -0
  94. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-Blueprint.o +0 -0
  95. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-BlueprintParser.o +0 -0
  96. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-HeaderParser.o +0 -0
  97. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-HeadersParser.o +0 -0
  98. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-Indentation.o +0 -0
  99. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ListUtility.o +0 -0
  100. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-MarkdownBlock.o +0 -0
  101. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-MarkdownParser.o +0 -0
  102. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ParameterDefinitonParser.o +0 -0
  103. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ParameterParser.o +0 -0
  104. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ParametersParser.o +0 -0
  105. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-Parser.o +0 -0
  106. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-PayloadParser.o +0 -0
  107. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-RegexMatch.o +0 -0
  108. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ResouceGroupParser.o +0 -0
  109. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ResourceGroupParser.o +0 -0
  110. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ResourceParser.o +0 -0
  111. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-SectionParser.o +0 -0
  112. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-SymbolIdentifier.o +0 -0
  113. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-SymbolTable.o +0 -0
  114. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-UriTemplateParser.o +0 -0
  115. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-ValuesParser.o +0 -0
  116. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-Warnings.o +0 -0
  117. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-csnowcrash.o +0 -0
  118. data/ext/snowcrash/build/out/Release/obj.target/test-libsnowcrash/test/test-snowcrash.o +0 -0
  119. data/ext/snowcrash/build/out/Release/snowcrash +0 -0
  120. data/ext/snowcrash/build/out/Release/test-libsnowcrash +0 -0
  121. data/ext/snowcrash/build/perf-libsnowcrash.target.mk +151 -0
  122. data/ext/snowcrash/build/snowcrash.Makefile +6 -0
  123. data/ext/snowcrash/build/snowcrash.target.mk +149 -0
  124. data/ext/snowcrash/build/sundown.target.mk +143 -0
  125. data/ext/snowcrash/build/test-libsnowcrash.target.mk +170 -0
  126. data/ext/snowcrash/ext/cmdline/LICENSE +30 -0
  127. data/ext/snowcrash/ext/cmdline/README.rst +191 -0
  128. data/ext/snowcrash/ext/cmdline/cmdline.h +817 -0
  129. data/ext/snowcrash/ext/cmdline/test.cpp +50 -0
  130. data/ext/snowcrash/ext/cmdline/test2.cpp +61 -0
  131. data/ext/snowcrash/ext/markdown-parser/LICENSE +22 -0
  132. data/ext/snowcrash/ext/markdown-parser/README.md +11 -0
  133. data/ext/snowcrash/ext/markdown-parser/ext/sundown/README.markdown +141 -0
  134. data/ext/snowcrash/ext/markdown-parser/markdownparser.xcodeproj/project.pbxproj +448 -0
  135. data/ext/snowcrash/ext/markdown-parser/msvc/test-markdown/test-markdown.vcproj +195 -0
  136. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/LICENSE_1_0.txt +23 -0
  137. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/README.md +24 -0
  138. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/catch-logo-small.png +0 -0
  139. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/assertions.md +64 -0
  140. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/build-systems.md +36 -0
  141. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/command-line.md +155 -0
  142. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/contributing.md +19 -0
  143. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/logging.md +52 -0
  144. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/own-main.md +68 -0
  145. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/reference-index.md +14 -0
  146. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/test-cases-and-sections.md +60 -0
  147. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/test-fixtures.md +32 -0
  148. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/tutorial.md +228 -0
  149. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/whats-changed.md +24 -0
  150. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/docs/why-catch.md +42 -0
  151. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/catch.hpp +202 -0
  152. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/catch_runner.hpp +224 -0
  153. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/catch_with_main.hpp +15 -0
  154. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/external/clara.h +868 -0
  155. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/external/tbc_text_format.h +153 -0
  156. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_approx.hpp +91 -0
  157. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_assertionresult.h +71 -0
  158. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_assertionresult.hpp +91 -0
  159. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_capture.hpp +179 -0
  160. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_clara.h +32 -0
  161. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_commandline.hpp +145 -0
  162. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_common.h +119 -0
  163. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_common.hpp +86 -0
  164. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_compiler_capabilities.h +123 -0
  165. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_config.hpp +178 -0
  166. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_console_colour.hpp +66 -0
  167. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_console_colour_impl.hpp +166 -0
  168. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_context.h +53 -0
  169. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_context_impl.hpp +112 -0
  170. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_debugger.h +49 -0
  171. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_debugger.hpp +100 -0
  172. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_default_main.hpp +38 -0
  173. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_evaluate.hpp +178 -0
  174. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_exception_translator_registry.hpp +75 -0
  175. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_expression_decomposer.hpp +31 -0
  176. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_expression_lhs.hpp +105 -0
  177. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_expressionresult_builder.h +63 -0
  178. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_expressionresult_builder.hpp +98 -0
  179. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_generators.hpp +190 -0
  180. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_generators_impl.hpp +86 -0
  181. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_impl.hpp +92 -0
  182. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_capture.h +46 -0
  183. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_config.h +54 -0
  184. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_exception.h +66 -0
  185. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_generators.h +32 -0
  186. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_registry_hub.h +44 -0
  187. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_reporter.h +265 -0
  188. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_runner.h +19 -0
  189. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_interfaces_testcase.h +37 -0
  190. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_legacy_reporter_adapter.h +59 -0
  191. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_legacy_reporter_adapter.hpp +82 -0
  192. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_list.hpp +150 -0
  193. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_matchers.hpp +233 -0
  194. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_message.h +65 -0
  195. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_message.hpp +43 -0
  196. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_notimplemented_exception.h +35 -0
  197. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_notimplemented_exception.hpp +30 -0
  198. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_objc.hpp +203 -0
  199. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_objc_arc.hpp +51 -0
  200. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_option.hpp +75 -0
  201. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_platform.h +20 -0
  202. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_ptr.hpp +94 -0
  203. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_registry_hub.hpp +83 -0
  204. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_reporter_registrars.hpp +74 -0
  205. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_reporter_registry.hpp +45 -0
  206. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_result_type.h +66 -0
  207. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_runner_impl.hpp +319 -0
  208. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_section.h +55 -0
  209. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_section.hpp +40 -0
  210. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_section_info.h +31 -0
  211. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_section_info.hpp +113 -0
  212. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_sfinae.hpp +44 -0
  213. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_stream.h +33 -0
  214. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_stream.hpp +83 -0
  215. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_streambuf.h +23 -0
  216. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_tags.h +109 -0
  217. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_tags.hpp +137 -0
  218. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_case_info.h +84 -0
  219. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_case_info.hpp +166 -0
  220. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_case_registry_impl.hpp +146 -0
  221. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_case_tracker.hpp +148 -0
  222. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_registry.hpp +120 -0
  223. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_spec.h +65 -0
  224. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_test_spec.hpp +133 -0
  225. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_text.h +24 -0
  226. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_timer.h +35 -0
  227. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_timer.hpp +63 -0
  228. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_tostring.hpp +276 -0
  229. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_totals.hpp +67 -0
  230. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_version.h +37 -0
  231. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_version.hpp +19 -0
  232. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/internal/catch_xmlwriter.hpp +218 -0
  233. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/reporters/catch_reporter_bases.hpp +203 -0
  234. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/reporters/catch_reporter_console.hpp +411 -0
  235. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/reporters/catch_reporter_junit.hpp +226 -0
  236. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/include/reporters/catch_reporter_xml.hpp +151 -0
  237. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/CMake/CMakeLists.txt +38 -0
  238. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/ApproxTests.cpp +112 -0
  239. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/BDDTests.cpp +68 -0
  240. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/console.std.approved.txt +778 -0
  241. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/console.sw.approved.txt +6995 -0
  242. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/console.swa4.approved.txt +322 -0
  243. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/junit.sw.approved.txt +562 -0
  244. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/Baselines/xml.sw.approved.txt +7251 -0
  245. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/ClassTests.cpp +57 -0
  246. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/ConditionTests.cpp +334 -0
  247. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/ExceptionTests.cpp +153 -0
  248. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/GeneratorTests.cpp +42 -0
  249. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/MessageTests.cpp +121 -0
  250. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/MiscTests.cpp +341 -0
  251. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SectionTrackerTests.cpp +164 -0
  252. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_common.cpp +2 -0
  253. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp +2 -0
  254. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_debugger.cpp +2 -0
  255. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_capture.cpp +2 -0
  256. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_config.cpp +1 -0
  257. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_exception.cpp +1 -0
  258. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_generators.cpp +1 -0
  259. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_registry_hub.cpp +2 -0
  260. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp +1 -0
  261. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_runner.cpp +1 -0
  262. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_testcase.cpp +1 -0
  263. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_message.cpp +2 -0
  264. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_option.cpp +2 -0
  265. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_ptr.cpp +2 -0
  266. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_stream.cpp +2 -0
  267. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_streambuf.cpp +2 -0
  268. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_tags.cpp +2 -0
  269. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp +2 -0
  270. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/TestMain.cpp +541 -0
  271. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/TrickyTests.cpp +396 -0
  272. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/VariadicMacrosTests.cpp +31 -0
  273. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/SelfTest/makefile +21 -0
  274. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2008/TestCatch/TestCatch.sln +20 -0
  275. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.cpp +8 -0
  276. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj +394 -0
  277. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2010/TestCatch/TestCatch.sln +20 -0
  278. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj +148 -0
  279. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest.xcodeproj/project.pbxproj +685 -0
  280. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  281. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest.xcodeproj/project.xcworkspace/xcshareddata/CatchSelfTest.xccheckout +41 -0
  282. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest/CatchSelfTest.1 +79 -0
  283. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTest/catch_text.cpp +2 -0
  284. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.pbxproj +258 -0
  285. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  286. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.xcworkspace/xcshareddata/CatchSelfTestSingle.xccheckout +41 -0
  287. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/CatchSelfTest/CatchSelfTestSingle/dummy.txt +0 -0
  288. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.pbxproj +265 -0
  289. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  290. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/xcshareddata/OCTest.xccheckout +41 -0
  291. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.h +25 -0
  292. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/CatchOCTestCase.mm +83 -0
  293. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/Main.mm +2 -0
  294. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/OCTest.1 +79 -0
  295. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/OCTest.mm +28 -0
  296. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/TestObj.h +28 -0
  297. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/OCTest/OCTest/TestObj.m +25 -0
  298. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest.xcodeproj/project.pbxproj +299 -0
  299. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  300. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/OCTest.mm +27 -0
  301. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/TestObj.h +25 -0
  302. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/TestObj.m +18 -0
  303. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/en.lproj/InfoPlist.strings +2 -0
  304. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/iOSTest-Info.plist +47 -0
  305. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/XCode/iOSTest/iOSTest/iOSTest-Prefix.pch +14 -0
  306. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/internal/iTchRunnerAppDelegate.h +114 -0
  307. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/internal/iTchRunnerMainView.h +189 -0
  308. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/internal/iTchRunnerReporter.h +115 -0
  309. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/itChRunnerMain.mm +27 -0
  310. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/projects/runners/iTchRunner/readme +6 -0
  311. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/scripts/approvalTests.py +99 -0
  312. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/scripts/approve.py +29 -0
  313. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/scripts/generateSingleHeader.py +152 -0
  314. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/scripts/scriptCommon.py +4 -0
  315. data/ext/snowcrash/ext/markdown-parser/test/ext/Catch/single_include/catch.hpp +8544 -0
  316. data/ext/snowcrash/ext/markdown-parser/test/test-ByteBuffer.cc +83 -0
  317. data/ext/snowcrash/ext/markdown-parser/test/test-MarkdownParser.cc +628 -0
  318. data/ext/snowcrash/ext/markdown-parser/test/test-libmarkdownparser.cc +10 -0
  319. data/ext/snowcrash/features/fixtures/ast.json +154 -0
  320. data/ext/snowcrash/features/fixtures/ast.yaml +87 -0
  321. data/ext/snowcrash/features/fixtures/blueprint.apib +84 -0
  322. data/ext/snowcrash/features/fixtures/invalid_blueprint.apib +4 -0
  323. data/ext/snowcrash/features/parse.feature +23 -0
  324. data/ext/snowcrash/features/step_definitions/file_content_step.rb +8 -0
  325. data/ext/snowcrash/features/support/env.rb +7 -0
  326. data/ext/snowcrash/features/support/setup.rb +1 -0
  327. data/ext/snowcrash/features/validate.feature +37 -0
  328. data/ext/snowcrash/features/version.feature +10 -0
  329. data/ext/snowcrash/snowcrash.xcodeproj/project.pbxproj +798 -0
  330. data/ext/snowcrash/test/README.md +7 -0
  331. data/ext/snowcrash/test/performance/fixtures/fixture-1.apib +174 -0
  332. data/ext/snowcrash/test/performance/fixtures/fixture-2.apib +2455 -0
  333. data/ext/snowcrash/test/performance/fixtures/fixture-3.apib +10363 -0
  334. data/ext/snowcrash/test/performance/fixtures/fixture-4.apib +8390 -0
  335. data/ext/snowcrash/test/performance/perf-snowcrash.cc +162 -0
  336. data/ext/snowcrash/test/snowcrashtest.h +88 -0
  337. data/ext/snowcrash/test/test-ActionParser.cc +491 -0
  338. data/ext/snowcrash/test/test-AssetParser.cc +224 -0
  339. data/ext/snowcrash/test/test-Blueprint.cc +32 -0
  340. data/ext/snowcrash/test/test-BlueprintParser.cc +462 -0
  341. data/ext/snowcrash/test/test-HeadersParser.cc +256 -0
  342. data/ext/snowcrash/test/test-Indentation.cc +336 -0
  343. data/ext/snowcrash/test/test-ParameterParser.cc +499 -0
  344. data/ext/snowcrash/test/test-ParametersParser.cc +355 -0
  345. data/ext/snowcrash/test/test-PayloadParser.cc +657 -0
  346. data/ext/snowcrash/test/test-RegexMatch.cc +35 -0
  347. data/ext/snowcrash/test/test-ResourceGroupParser.cc +457 -0
  348. data/ext/snowcrash/test/test-ResourceParser.cc +947 -0
  349. data/ext/snowcrash/test/test-SectionParser.cc +81 -0
  350. data/ext/snowcrash/test/test-StringUtility.cc +65 -0
  351. data/ext/snowcrash/test/test-SymbolIdentifier.cc +53 -0
  352. data/ext/snowcrash/test/test-SymbolTable.cc +31 -0
  353. data/ext/snowcrash/test/test-UriTemplateParser.cc +333 -0
  354. data/ext/snowcrash/test/test-ValuesParser.cc +106 -0
  355. data/ext/snowcrash/test/test-Warnings.cc +94 -0
  356. data/ext/snowcrash/test/test-csnowcrash.cc +404 -0
  357. data/ext/snowcrash/test/test-snowcrash.cc +664 -0
  358. data/ext/snowcrash/test/vendor/Catch/LICENSE_1_0.txt +23 -0
  359. data/ext/snowcrash/test/vendor/Catch/README.md +24 -0
  360. data/ext/snowcrash/test/vendor/Catch/catch-logo-small.png +0 -0
  361. data/ext/snowcrash/test/vendor/Catch/docs/assertions.md +59 -0
  362. data/ext/snowcrash/test/vendor/Catch/docs/command-line.md +137 -0
  363. data/ext/snowcrash/test/vendor/Catch/docs/logging.md +52 -0
  364. data/ext/snowcrash/test/vendor/Catch/docs/own-main.md +68 -0
  365. data/ext/snowcrash/test/vendor/Catch/docs/reference-index.md +13 -0
  366. data/ext/snowcrash/test/vendor/Catch/docs/test-fixtures.md +32 -0
  367. data/ext/snowcrash/test/vendor/Catch/docs/tutorial.md +100 -0
  368. data/ext/snowcrash/test/vendor/Catch/docs/whats-changed.md +24 -0
  369. data/ext/snowcrash/test/vendor/Catch/docs/why-catch.md +42 -0
  370. data/ext/snowcrash/test/vendor/Catch/include/catch.hpp +182 -0
  371. data/ext/snowcrash/test/vendor/Catch/include/catch_runner.hpp +236 -0
  372. data/ext/snowcrash/test/vendor/Catch/include/catch_with_main.hpp +15 -0
  373. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_approx.hpp +91 -0
  374. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_assertionresult.h +65 -0
  375. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_assertionresult.hpp +91 -0
  376. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_capture.hpp +175 -0
  377. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_commandline.hpp +129 -0
  378. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_common.h +148 -0
  379. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_compiler_capabilities.h +85 -0
  380. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_config.hpp +182 -0
  381. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_console_colour.hpp +66 -0
  382. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_console_colour_impl.hpp +153 -0
  383. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_context.h +53 -0
  384. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_context_impl.hpp +112 -0
  385. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_debugger.hpp +116 -0
  386. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_default_main.hpp +38 -0
  387. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_evaluate.hpp +178 -0
  388. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_exception_translator_registry.hpp +74 -0
  389. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_expression_decomposer.hpp +31 -0
  390. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_expression_lhs.hpp +97 -0
  391. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_expressionresult_builder.h +63 -0
  392. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_expressionresult_builder.hpp +98 -0
  393. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_generators.hpp +190 -0
  394. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_generators_impl.hpp +86 -0
  395. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_impl.hpp +97 -0
  396. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_capture.h +46 -0
  397. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_config.h +32 -0
  398. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_exception.h +66 -0
  399. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_generators.h +32 -0
  400. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_registry_hub.h +45 -0
  401. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_reporter.h +339 -0
  402. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_runner.h +23 -0
  403. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_interfaces_testcase.h +34 -0
  404. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_legacy_reporter_adapter.h +39 -0
  405. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_legacy_reporter_adapter.hpp +84 -0
  406. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_list.hpp +198 -0
  407. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_matchers.hpp +233 -0
  408. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_message.h +65 -0
  409. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_message.hpp +43 -0
  410. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_notimplemented_exception.h +35 -0
  411. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_notimplemented_exception.hpp +30 -0
  412. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_objc.hpp +202 -0
  413. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_objc_arc.hpp +51 -0
  414. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_option.hpp +67 -0
  415. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_ptr.hpp +94 -0
  416. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_registry_hub.hpp +83 -0
  417. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_reporter_registrars.hpp +75 -0
  418. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_reporter_registry.hpp +45 -0
  419. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_result_type.h +66 -0
  420. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_runner_impl.hpp +326 -0
  421. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_running_test.hpp +117 -0
  422. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_section.hpp +56 -0
  423. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_section_info.hpp +113 -0
  424. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_sfinae.hpp +44 -0
  425. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_stream.hpp +90 -0
  426. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_streambuf.h +21 -0
  427. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_tags.hpp +193 -0
  428. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_case_info.h +82 -0
  429. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_case_info.hpp +127 -0
  430. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_case_registry_impl.hpp +151 -0
  431. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_registry.hpp +120 -0
  432. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_test_spec.h +166 -0
  433. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_text.h +61 -0
  434. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_text.hpp +92 -0
  435. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_tostring.hpp +224 -0
  436. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_totals.hpp +67 -0
  437. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_version.h +37 -0
  438. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_version.hpp +19 -0
  439. data/ext/snowcrash/test/vendor/Catch/include/internal/catch_xmlwriter.hpp +211 -0
  440. data/ext/snowcrash/test/vendor/Catch/include/internal/clara.h +553 -0
  441. data/ext/snowcrash/test/vendor/Catch/include/reporters/catch_reporter_basic.hpp +353 -0
  442. data/ext/snowcrash/test/vendor/Catch/include/reporters/catch_reporter_console.hpp +397 -0
  443. data/ext/snowcrash/test/vendor/Catch/include/reporters/catch_reporter_junit.hpp +252 -0
  444. data/ext/snowcrash/test/vendor/Catch/include/reporters/catch_reporter_xml.hpp +145 -0
  445. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/ApproxTests.cpp +112 -0
  446. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/BDDTests.cpp +68 -0
  447. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/Baselines/approvedResults.txt +14686 -0
  448. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/ClassTests.cpp +57 -0
  449. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/CmdLineTests.cpp +191 -0
  450. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/ConditionTests.cpp +348 -0
  451. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/ExceptionTests.cpp +143 -0
  452. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/GeneratorTests.cpp +42 -0
  453. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/MessageTests.cpp +102 -0
  454. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/MiscTests.cpp +343 -0
  455. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_common.cpp +2 -0
  456. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp +2 -0
  457. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_debugger.cpp +2 -0
  458. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_capture.cpp +2 -0
  459. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_config.cpp +1 -0
  460. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_exception.cpp +1 -0
  461. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_generators.cpp +1 -0
  462. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_registry_hub.cpp +2 -0
  463. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp +1 -0
  464. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_runner.cpp +1 -0
  465. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_testcase.cpp +1 -0
  466. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_message.cpp +2 -0
  467. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_option.cpp +2 -0
  468. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_ptr.cpp +2 -0
  469. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_stream.cpp +2 -0
  470. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_streambuf.cpp +2 -0
  471. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_tags.cpp +2 -0
  472. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp +2 -0
  473. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/TestMain.cpp +561 -0
  474. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/TrickyTests.cpp +382 -0
  475. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/VariadicMacrosTests.cpp +31 -0
  476. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/catch_self_test.cpp +31 -0
  477. data/ext/snowcrash/test/vendor/Catch/projects/SelfTest/catch_self_test.hpp +177 -0
  478. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/TestCatch.sln +20 -0
  479. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/TestCatch/ReadMe.txt +33 -0
  480. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.cpp +8 -0
  481. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/TestCatch/TestCatch.vcproj +398 -0
  482. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/UpgradeLog.XML +12 -0
  483. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.css +207 -0
  484. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport.xslt +232 -0
  485. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport_Minus.gif +0 -0
  486. data/ext/snowcrash/test/vendor/Catch/projects/VS2008/TestCatch/_UpgradeReport_Files/UpgradeReport_Plus.gif +0 -0
  487. data/ext/snowcrash/test/vendor/Catch/projects/VS2010/TestCatch/TestCatch.sln +20 -0
  488. data/ext/snowcrash/test/vendor/Catch/projects/VS2010/TestCatch/TestCatch/ReadMe.txt +33 -0
  489. data/ext/snowcrash/test/vendor/Catch/projects/VS2010/TestCatch/TestCatch/TestCatch.cpp +8 -0
  490. data/ext/snowcrash/test/vendor/Catch/projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj +149 -0
  491. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/project.pbxproj +440 -0
  492. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  493. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/xcuserdata/phil.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist +81 -0
  494. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/xcuserdata/phil.xcuserdatad/xcschemes/Test.xcscheme +154 -0
  495. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTest.xcodeproj/xcuserdata/phil.xcuserdatad/xcschemes/xcschememanagement.plist +22 -0
  496. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTestSingle/CatchSelfTestSingle.1 +79 -0
  497. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/CatchSelfTestSingle/CatchSelfTestSingle.xcodeproj/project.pbxproj +246 -0
  498. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/CatchOCTestCase.h +25 -0
  499. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/CatchOCTestCase.mm +45 -0
  500. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/Main.mm +1 -0
  501. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/OCTest.1 +79 -0
  502. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/OCTest.mm +28 -0
  503. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/OCTest.xcodeproj/project.pbxproj +259 -0
  504. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/OCTest_Prefix.pch +7 -0
  505. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/TestObj.h +25 -0
  506. data/ext/snowcrash/test/vendor/Catch/projects/XCode3/OCTest/TestObj.m +18 -0
  507. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest.xcodeproj/project.pbxproj +667 -0
  508. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  509. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest.xcodeproj/xcuserdata/Phil.xcuserdatad/xcschemes/xcschememanagement.plist +22 -0
  510. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/CatchSelfTest.1 +79 -0
  511. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTest/catch_text.cpp +2 -0
  512. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.pbxproj +264 -0
  513. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTestSingle.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  514. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/CatchSelfTest/CatchSelfTestSingle/dummy.txt +0 -0
  515. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest.xcodeproj/project.pbxproj +249 -0
  516. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  517. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/CatchOCTestCase.h +25 -0
  518. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/CatchOCTestCase.mm +82 -0
  519. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/Main.mm +2 -0
  520. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/OCTest.1 +79 -0
  521. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/OCTest.mm +28 -0
  522. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/TestObj.h +28 -0
  523. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/OCTest/OCTest/TestObj.m +25 -0
  524. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest.xcodeproj/project.pbxproj +299 -0
  525. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  526. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/OCTest.mm +27 -0
  527. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/TestObj.h +25 -0
  528. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/TestObj.m +18 -0
  529. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/en.lproj/InfoPlist.strings +2 -0
  530. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/iOSTest-Info.plist +47 -0
  531. data/ext/snowcrash/test/vendor/Catch/projects/XCode4/iOSTest/iOSTest/iOSTest-Prefix.pch +14 -0
  532. data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/internal/iTchRunnerAppDelegate.h +114 -0
  533. data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/internal/iTchRunnerMainView.h +189 -0
  534. data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/internal/iTchRunnerReporter.h +115 -0
  535. data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/itChRunnerMain.mm +27 -0
  536. data/ext/snowcrash/test/vendor/Catch/projects/runners/iTchRunner/readme +6 -0
  537. data/ext/snowcrash/test/vendor/Catch/scripts/approvalTests.py +63 -0
  538. data/ext/snowcrash/test/vendor/Catch/scripts/approve.py +14 -0
  539. data/ext/snowcrash/test/vendor/Catch/scripts/generateSingleHeader.py +117 -0
  540. data/ext/snowcrash/test/vendor/Catch/scripts/scriptCommon.py +4 -0
  541. data/ext/snowcrash/test/vendor/Catch/single_include/catch.hpp +8046 -0
  542. data/ext/snowcrash/tools/README.md +27 -0
  543. data/ext/snowcrash/tools/gyp/LICENSE +27 -0
  544. data/ext/snowcrash/tools/gyp/gyptest.py +274 -0
  545. data/ext/snowcrash/tools/gyp/pylib/gyp/MSVSSettings_test.py +1483 -0
  546. data/ext/snowcrash/tools/gyp/pylib/gyp/__init__.pyc +0 -0
  547. data/ext/snowcrash/tools/gyp/pylib/gyp/common.pyc +0 -0
  548. data/ext/snowcrash/tools/gyp/pylib/gyp/common_test.py +72 -0
  549. data/ext/snowcrash/tools/gyp/pylib/gyp/easy_xml_test.py +103 -0
  550. data/ext/snowcrash/tools/gyp/pylib/gyp/generator/__init__.pyc +0 -0
  551. data/ext/snowcrash/tools/gyp/pylib/gyp/generator/make.pyc +0 -0
  552. data/ext/snowcrash/tools/gyp/pylib/gyp/generator/msvs_test.py +37 -0
  553. data/ext/snowcrash/tools/gyp/pylib/gyp/generator/ninja_test.py +44 -0
  554. data/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode.pyc +0 -0
  555. data/ext/snowcrash/tools/gyp/pylib/gyp/generator/xcode_test.py +23 -0
  556. data/ext/snowcrash/tools/gyp/pylib/gyp/input.pyc +0 -0
  557. data/ext/snowcrash/tools/gyp/pylib/gyp/input_test.py +90 -0
  558. data/ext/snowcrash/tools/gyp/pylib/gyp/xcode_emulation.pyc +0 -0
  559. data/ext/snowcrash/tools/gyp/pylib/gyp/xcodeproj_file.pyc +0 -0
  560. data/ext/snowcrash/tools/gyp/tools/README +15 -0
  561. data/ext/snowcrash/tools/gyp/tools/Xcode/README +5 -0
  562. data/ext/snowcrash/tools/gyp/tools/emacs/README +12 -0
  563. data/ext/snowcrash/tools/gyp/tools/emacs/gyp-tests.el +63 -0
  564. data/ext/snowcrash/tools/gyp/tools/emacs/run-unit-tests.sh +7 -0
  565. data/ext/snowcrash/tools/gyp/tools/emacs/testdata/media.gyp +1105 -0
  566. data/ext/snowcrash/tools/gyp/tools/emacs/testdata/media.gyp.fontified +1107 -0
  567. data/lib/redsnow.rb +2 -2
  568. data/lib/redsnow/blueprint.rb +2 -1
  569. data/lib/redsnow/version.rb +1 -1
  570. data/pkg/redsnow-0.1.3.gem +0 -0
  571. data/pkg/redsnow-0.1.4.gem +0 -0
  572. data/pkg/redsnow-0.1.5.gem +0 -0
  573. data/pkg/redsnow-0.1.6.gem +0 -0
  574. data/pkg/redsnow-0.2.0.gem +0 -0
  575. data/pkg/redsnow-0.2.1.gem +0 -0
  576. data/pkg/redsnow-0.3.1.gem +0 -0
  577. data/redsnow.gemspec +2 -1
  578. data/test/redsnow_binding_test.rb +1 -1
  579. data/test/redsnow_options_test.rb +4 -4
  580. metadata +540 -6
  581. data/.gitignore +0 -34
  582. data/.gitmodules +0 -3
  583. data/.travis.yml +0 -21
@@ -0,0 +1,162 @@
1
+ //
2
+ // perf-snowcrash.cc
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 10/8/13.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+ #include <iostream>
9
+ #include <sstream>
10
+ #include <fstream>
11
+ #include <cmath>
12
+ #include "cmdline.h"
13
+ #include "snowcrash.h"
14
+
15
+ #if defined (_MSC_VER)
16
+ #include <windows.h>
17
+ #else
18
+ #include <sys/time.h>
19
+ #endif
20
+
21
+ using snowcrash::SourceAnnotation;
22
+ using snowcrash::Error;
23
+
24
+ static const int TestRunCount = 1000;
25
+
26
+ #if defined (_MSC_VER)
27
+ const __int64 DELTA_EPOCH_IN_MICROSECS = 11644473600000000;
28
+
29
+ struct timezone
30
+ {
31
+ int tz_minuteswest; /* minutes west of Greenwich */
32
+ int tz_dsttime; /* type of DST correction */
33
+ };
34
+
35
+ int gettimeofday(struct timeval* tv, struct timezone* tz)
36
+ {
37
+ FILETIME ft;
38
+ TIME_ZONE_INFORMATION tz_winapi;
39
+ __int64 tmpres = 0;
40
+ int rez = 0;
41
+
42
+ ZeroMemory(&ft, sizeof(ft));
43
+ ZeroMemory(&tz_winapi, sizeof(tz_winapi));
44
+
45
+ GetSystemTimeAsFileTime(&ft);
46
+
47
+ tmpres = ft.dwHighDateTime;
48
+ tmpres <<= 32;
49
+ tmpres |= ft.dwLowDateTime;
50
+
51
+ tmpres /= 10;
52
+ tmpres -= DELTA_EPOCH_IN_MICROSECS;
53
+
54
+ if (tv) {
55
+ tv->tv_sec = (__int32)( tmpres * 0.000001 );
56
+ tv->tv_usec = ( tmpres % 1000000 );
57
+ }
58
+
59
+ if (tz) {
60
+ rez = GetTimeZoneInformation(&tz_winapi);
61
+ tz->tz_dsttime = (rez == 2) ? true:false;
62
+ tz->tz_minuteswest = tz_winapi.Bias + ((rez == 2) ? tz_winapi.DaylightBias:0);
63
+ }
64
+
65
+ return 0;
66
+ }
67
+ #endif
68
+
69
+
70
+ /**
71
+ * \brief Parse input @TestRunCount -times
72
+ * \param input A blueprint source data.
73
+ * \param total Total time spent parsing (s).
74
+ * \param mean Mean time spent parsing (s).
75
+ * \param stddev Standard deviation.
76
+ * \return Result code of snowcrash::parse operation.
77
+ */
78
+ static int testfunc(const std::string& input, double& total, double& mean, double& stddev)
79
+ {
80
+ struct timeval stime, etime;
81
+ double t = 0, sum = 0, sum2 = 0;
82
+ int resultCode = snowcrash::Error::OK;
83
+
84
+ for (int i = 0; i < TestRunCount; ++i) {
85
+ snowcrash::BlueprintParserOptions options = 0;
86
+ snowcrash::ParseResult<snowcrash::Blueprint> blueprint;
87
+
88
+ // Do the test.
89
+ if (::gettimeofday(&stime, NULL)) {
90
+ std::cerr << "fatal: gettimeofday failed";
91
+ exit(EXIT_FAILURE);
92
+ }
93
+
94
+ snowcrash::parse(input, options, blueprint);
95
+
96
+ if (::gettimeofday(&etime, NULL)) {
97
+ std::cerr << "fatal: gettimeofday failed";
98
+ exit(EXIT_FAILURE);
99
+ }
100
+
101
+ resultCode = blueprint.report.error.code;
102
+
103
+ // Compute the time taken and add it to the sums.
104
+ t = (etime.tv_sec - stime.tv_sec) + (etime.tv_usec - stime.tv_usec) / 1000000.0;
105
+ sum += t;
106
+ sum2 += t * t;
107
+ }
108
+
109
+ // Compute statistics and return result
110
+ total = sum;
111
+ mean = sum / TestRunCount;
112
+ stddev = std::sqrt((sum2 / TestRunCount) - (mean * mean));
113
+ return resultCode;
114
+ }
115
+
116
+ int main(int argc, const char *argv[])
117
+ {
118
+ // FIXME: Intstrumetns helper
119
+ //::sleep(20);
120
+
121
+ // Setup commandline Argument Parser
122
+ cmdline::parser argumentParser;
123
+ argumentParser.set_program_name("perf-snowcrash");
124
+ std::stringstream ss;
125
+ ss << "<input file>\n\n";
126
+ ss << "API Blueprint Parser Performance Test Tool\n";
127
+
128
+ argumentParser.footer(ss.str());
129
+ argumentParser.add("help", 'h', "display this help message");
130
+
131
+ argumentParser.parse_check(argc, argv);
132
+ if (argumentParser.rest().size() != 1) {
133
+ std::cerr << "one input file expected\n";
134
+ exit(EXIT_FAILURE);
135
+ }
136
+
137
+ // Read fixture file
138
+ std::ifstream inputFileStream;
139
+ std::string inputFileName = argumentParser.rest().front();
140
+ inputFileStream.open(inputFileName.c_str());
141
+ if (!inputFileStream.is_open()) {
142
+ std::cerr << "fatal: unable to open input file '" << inputFileName << "'\n";
143
+ exit(EXIT_FAILURE);
144
+ }
145
+
146
+ std::stringstream inputStream;
147
+ inputStream << inputFileStream.rdbuf();
148
+ inputFileStream.close();
149
+
150
+ std::cout << "running snowcrash performance test...\n";
151
+
152
+ double mean = 0, total = 0, stddev = 0;
153
+ int result = testfunc(inputStream.str(), total, mean, stddev);
154
+
155
+ std::cout << "parsing '" << inputFileName << "' " << TestRunCount << "-times (" << result << "):\n";
156
+ std::cout << "total: " << total << "s mean: " << mean << " +/- " << stddev << "s\n";
157
+
158
+ // FIXME: Intstrumetns helper
159
+ //::sleep(20);
160
+ }
161
+
162
+
@@ -0,0 +1,88 @@
1
+ //
2
+ // snowcrashtest.h
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 5/21/14.
6
+ // Copyright (c) 2014 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #ifndef SNOWCRASH_SNOWCRASHTEST_H
10
+ #define SNOWCRASH_SNOWCRASHTEST_H
11
+
12
+ #include "catch.hpp"
13
+ #include "MarkdownParser.h"
14
+ #include "SectionParser.h"
15
+
16
+ namespace snowcrashtest {
17
+
18
+ struct Symbols {
19
+
20
+ std::vector<snowcrash::ResourceModelSymbol> models;
21
+ std::vector<snowcrash::ResourceModelSymbolSourceMap> modelsSM;
22
+
23
+ };
24
+
25
+ template <typename T, typename PARSER>
26
+ struct SectionParserHelper {
27
+
28
+ static void parse(const mdp::ByteBuffer& source,
29
+ snowcrash::SectionType type,
30
+ const snowcrash::ParseResultRef<T>& out,
31
+ const snowcrash::BlueprintParserOptions& opts = 0,
32
+ const Symbols& symbols = Symbols(),
33
+ snowcrash::ParseResult<snowcrash::Blueprint>* bp = NULL) {
34
+
35
+ mdp::MarkdownParser markdownParser;
36
+ mdp::MarkdownNode markdownAST;
37
+
38
+ snowcrash::ParseResult<snowcrash::Blueprint> blueprint;
39
+ snowcrash::ParseResult<snowcrash::Blueprint>* bppointer;
40
+
41
+ markdownParser.parse(source, markdownAST);
42
+
43
+ REQUIRE(!markdownAST.children().empty());
44
+
45
+ if (bp == NULL) {
46
+ bppointer = &blueprint;
47
+ } else {
48
+ bppointer = bp;
49
+ }
50
+
51
+ snowcrash::SectionParserData pd(opts, source, bppointer->node);
52
+
53
+ pd.sectionsContext.push_back(type);
54
+
55
+ pd.symbolTable.resourceModels.insert(symbols.models.begin(), symbols.models.end());
56
+ pd.symbolSourceMapTable.resourceModels.insert(symbols.modelsSM.begin(), symbols.modelsSM.end());
57
+
58
+ PARSER::parse(markdownAST.children().begin(),
59
+ markdownAST.children(),
60
+ pd,
61
+ out);
62
+ }
63
+ };
64
+
65
+ struct SymbolHelper {
66
+
67
+ /** Builds a Symbols entry for testing purposes */
68
+ static void buildSymbol(mdp::ByteBuffer name,
69
+ Symbols& symbols) {
70
+
71
+ snowcrash::ResourceModel model;
72
+ snowcrash::SourceMap<snowcrash::ResourceModel> modelSM;
73
+ mdp::BytesRangeSet sourcemap;
74
+
75
+ sourcemap.push_back(mdp::BytesRange(0, 1));
76
+
77
+ model.description = "Foo";
78
+ model.body = "Bar";
79
+ symbols.models.push_back(snowcrash::ResourceModelSymbol(name, model));
80
+
81
+ modelSM.description.sourceMap = sourcemap;
82
+ modelSM.body.sourceMap = sourcemap;
83
+ symbols.modelsSM.push_back(snowcrash::ResourceModelSymbolSourceMap(name, modelSM));
84
+ }
85
+ };
86
+ }
87
+
88
+ #endif
@@ -0,0 +1,491 @@
1
+ //
2
+ // test-ActionParser.cc
3
+ // snowcrash
4
+ //
5
+ // Created by Zdenek Nemec on 5/6/13.
6
+ // Copyright (c) 2013 Apiary Inc. All rights reserved.
7
+ //
8
+
9
+ #include "snowcrashtest.h"
10
+ #include "ActionParser.h"
11
+
12
+ using namespace snowcrash;
13
+ using namespace snowcrashtest;
14
+
15
+ const mdp::ByteBuffer ActionFixture = \
16
+ "# My Method [GET]\n\n"\
17
+ "Method Description\n\n"\
18
+ "+ Response 200 (text/plain)\n\n"\
19
+ " OK.";
20
+
21
+ TEST_CASE("Method block classifier", "[action]")
22
+ {
23
+ mdp::MarkdownParser markdownParser;
24
+ mdp::MarkdownNode markdownAST;
25
+ SectionType sectionType;
26
+ markdownParser.parse(ActionFixture, markdownAST);
27
+
28
+ REQUIRE(!markdownAST.children().empty());
29
+ sectionType = SectionProcessor<Action>::sectionType(markdownAST.children().begin());
30
+ REQUIRE(sectionType == ActionSectionType);
31
+
32
+ // Nameless method
33
+ markdownAST.children().front().text = "GET";
34
+ REQUIRE(!markdownAST.children().empty());
35
+ sectionType = SectionProcessor<Action>::sectionType(markdownAST.children().begin());
36
+ REQUIRE(sectionType == ActionSectionType);
37
+ }
38
+
39
+ TEST_CASE("Parsing action", "[action]")
40
+ {
41
+ ParseResult<Action> action;
42
+ SectionParserHelper<Action, ActionParser>::parse(ActionFixture, ActionSectionType, action, ExportSourcemapOption);
43
+
44
+ REQUIRE(action.report.error.code == Error::OK);
45
+ CHECK(action.report.warnings.empty());
46
+
47
+ REQUIRE(action.node.name == "My Method");
48
+ REQUIRE(action.node.method == "GET");
49
+ REQUIRE(action.node.description == "Method Description\n\n");
50
+
51
+ REQUIRE(action.node.examples.size() == 1);
52
+ REQUIRE(action.node.examples.front().requests.size() == 0);
53
+ REQUIRE(action.node.examples.front().responses.size() == 1);
54
+
55
+ REQUIRE(action.node.examples.front().responses[0].name == "200");
56
+ REQUIRE(action.node.examples.front().responses[0].body == "OK.\n");
57
+ REQUIRE(action.node.examples.front().responses[0].headers.size() == 1);
58
+ REQUIRE(action.node.examples.front().responses[0].headers[0].first == "Content-Type");
59
+ REQUIRE(action.node.examples.front().responses[0].headers[0].second == "text/plain");
60
+
61
+ REQUIRE(action.sourceMap.name.sourceMap.size() == 1);
62
+ REQUIRE(action.sourceMap.name.sourceMap[0].location == 0);
63
+ REQUIRE(action.sourceMap.name.sourceMap[0].length == 19);
64
+ REQUIRE(action.sourceMap.method.sourceMap.size() == 1);
65
+ REQUIRE(action.sourceMap.method.sourceMap[0].location == 0);
66
+ REQUIRE(action.sourceMap.method.sourceMap[0].length == 19);
67
+ REQUIRE(action.sourceMap.description.sourceMap.size() == 1);
68
+ REQUIRE(action.sourceMap.description.sourceMap[0].location == 19);
69
+ REQUIRE(action.sourceMap.description.sourceMap[0].length == 20);
70
+ REQUIRE(action.sourceMap.examples.collection.size() == 1);
71
+ REQUIRE(action.sourceMap.examples.collection[0].requests.collection.size() == 0);
72
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection.size() == 1);
73
+
74
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection[0].body.sourceMap.size() == 1);
75
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection[0].body.sourceMap[0].location == 72);
76
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection[0].body.sourceMap[0].length == 7);
77
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection[0].name.sourceMap.size() == 1);
78
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection[0].name.sourceMap[0].location == 41);
79
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection[0].name.sourceMap[0].length == 27);
80
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection[0].headers.collection.size() == 1);
81
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection[0].headers.collection[0].sourceMap.size() == 1);
82
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection[0].headers.collection[0].sourceMap[0].location == 41);
83
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection[0].headers.collection[0].sourceMap[0].length == 27);
84
+ }
85
+
86
+ TEST_CASE("Parse Action description with list", "[action]")
87
+ {
88
+ mdp::ByteBuffer source = \
89
+ "# GET\n"\
90
+ "Small Description\n"\
91
+ "+ A\n"\
92
+ "+ B\n"\
93
+ "+ Response 204\n";
94
+
95
+ ParseResult<Action> action;
96
+ SectionParserHelper<Action, ActionParser>::parse(source, ActionSectionType, action, ExportSourcemapOption);
97
+
98
+ REQUIRE(action.report.error.code == Error::OK);
99
+ CHECK(action.report.warnings.empty());
100
+
101
+ REQUIRE(action.node.method == "GET");
102
+ REQUIRE(action.node.description == "Small Description\n\n+ A\n\n+ B\n");
103
+
104
+ REQUIRE(action.node.examples.size() == 1);
105
+ REQUIRE(action.node.examples.front().responses.size() == 1);
106
+ REQUIRE(action.node.examples.front().requests.empty());
107
+
108
+ REQUIRE(action.sourceMap.name.sourceMap.empty());
109
+ REQUIRE(action.sourceMap.method.sourceMap.size() == 1);
110
+ REQUIRE(action.sourceMap.method.sourceMap[0].location == 0);
111
+ REQUIRE(action.sourceMap.method.sourceMap[0].length == 6);
112
+ REQUIRE(action.sourceMap.description.sourceMap.size() == 1);
113
+ REQUIRE(action.sourceMap.description.sourceMap[0].location == 6);
114
+ REQUIRE(action.sourceMap.description.sourceMap[0].length == 26);
115
+ REQUIRE(action.sourceMap.examples.collection.size() == 1);
116
+ REQUIRE(action.sourceMap.examples.collection[0].requests.collection.size() == 0);
117
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection.size() == 1);
118
+ }
119
+
120
+ TEST_CASE("Parse method with multiple requests and responses", "[action]")
121
+ {
122
+ mdp::ByteBuffer source = \
123
+ "# PUT\n"\
124
+ "+ Request A\n"\
125
+ " B\n"\
126
+ " + Body\n\n"\
127
+ " C\n\n"\
128
+ "+ Request D\n"\
129
+ " E\n"\
130
+ " + Body\n\n"\
131
+ " F\n\n"\
132
+ "+ Response 200\n"\
133
+ " G\n"\
134
+ " + Body\n\n"\
135
+ " H\n\n"\
136
+ "+ Response 200\n"\
137
+ " I\n"\
138
+ " + Body\n\n"\
139
+ " J\n\n";
140
+
141
+ ParseResult<Action> action;
142
+ SectionParserHelper<Action, ActionParser>::parse(source, ActionSectionType, action, ExportSourcemapOption);
143
+
144
+ REQUIRE(action.report.error.code == Error::OK);
145
+ REQUIRE(action.report.warnings.size() == 1); // warn responses with the same name
146
+
147
+ REQUIRE(action.node.name.empty());
148
+ REQUIRE(action.node.method == "PUT");
149
+ REQUIRE(action.node.description.empty());
150
+ REQUIRE(action.node.parameters.empty());
151
+
152
+ REQUIRE(action.node.examples.size() == 1);
153
+ REQUIRE(action.node.examples.front().requests.size() == 2);
154
+
155
+ REQUIRE(action.node.examples.front().requests[0].name == "A");
156
+ REQUIRE(action.node.examples.front().requests[0].description == "B");
157
+ REQUIRE(action.node.examples.front().requests[0].body == "C\n");
158
+ REQUIRE(action.node.examples.front().requests[0].schema.empty());
159
+ REQUIRE(action.node.examples.front().requests[0].parameters.empty());
160
+ REQUIRE(action.node.examples.front().requests[0].headers.empty());
161
+
162
+ REQUIRE(action.node.examples.front().requests[1].name == "D");
163
+ REQUIRE(action.node.examples.front().requests[1].description == "E");
164
+ REQUIRE(action.node.examples.front().requests[1].body == "F\n");
165
+ REQUIRE(action.node.examples.front().requests[1].schema.empty());
166
+ REQUIRE(action.node.examples.front().requests[1].parameters.empty());
167
+ REQUIRE(action.node.examples.front().requests[1].headers.empty());
168
+
169
+ REQUIRE(action.node.examples.front().responses.size() == 2);
170
+
171
+ REQUIRE(action.node.examples.front().responses[0].name == "200");
172
+ REQUIRE(action.node.examples.front().responses[0].description == "G");
173
+ REQUIRE(action.node.examples.front().responses[0].body == "H\n");
174
+ REQUIRE(action.node.examples.front().responses[0].schema.empty());
175
+ REQUIRE(action.node.examples.front().responses[0].parameters.empty());
176
+ REQUIRE(action.node.examples.front().responses[0].headers.empty());
177
+
178
+ REQUIRE(action.node.examples.front().responses[1].name == "200");
179
+ REQUIRE(action.node.examples.front().responses[1].description == "I");
180
+ REQUIRE(action.node.examples.front().responses[1].body == "J\n");
181
+ REQUIRE(action.node.examples.front().responses[1].schema.empty());
182
+ REQUIRE(action.node.examples.front().responses[1].parameters.empty());
183
+ REQUIRE(action.node.examples.front().responses[1].headers.empty());
184
+
185
+ REQUIRE(action.sourceMap.name.sourceMap.empty());
186
+ REQUIRE(action.sourceMap.method.sourceMap.size() == 1);
187
+ REQUIRE(action.sourceMap.method.sourceMap[0].location == 0);
188
+ REQUIRE(action.sourceMap.method.sourceMap[0].length == 6);
189
+ REQUIRE(action.sourceMap.description.sourceMap.empty());
190
+ REQUIRE(action.sourceMap.examples.collection.size() == 1);
191
+ REQUIRE(action.sourceMap.examples.collection[0].requests.collection.size() == 2);
192
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection.size() == 2);
193
+ }
194
+
195
+ TEST_CASE("Parse method with multiple incomplete requests", "[action][blocks]")
196
+ {
197
+ mdp::ByteBuffer source = \
198
+ "# GET /1\n"\
199
+ "+ Request A\n"\
200
+ "+ Request B\n"\
201
+ " C\n"\
202
+ "+ Response 200\n";
203
+
204
+ ParseResult<Action> action;
205
+ SectionParserHelper<Action, ActionParser>::parse(source, ActionSectionType, action, ExportSourcemapOption);
206
+
207
+ REQUIRE(action.report.error.code == Error::OK);
208
+ REQUIRE(action.report.warnings.size() == 2); // empty asset & preformatted asset
209
+ REQUIRE(action.report.warnings[0].code == EmptyDefinitionWarning);
210
+ REQUIRE(action.report.warnings[1].code == IndentationWarning);
211
+
212
+ REQUIRE(action.node.name.empty());
213
+ REQUIRE(action.node.method == "GET");
214
+ REQUIRE(action.node.description.empty());
215
+ REQUIRE(action.node.parameters.empty());
216
+
217
+ REQUIRE(action.node.examples.front().requests.size() == 2);
218
+ REQUIRE(action.node.examples.front().requests[0].name == "A");
219
+ REQUIRE(action.node.examples.front().requests[0].body.empty());
220
+ REQUIRE(action.node.examples.front().requests[0].schema.empty());
221
+ REQUIRE(action.node.examples.front().requests[0].parameters.empty());
222
+ REQUIRE(action.node.examples.front().requests[0].headers.empty());
223
+
224
+ REQUIRE(action.node.examples.front().requests[1].name == "B");
225
+ REQUIRE(action.node.examples.front().requests[1].description.empty());
226
+ REQUIRE(action.node.examples.front().requests[1].body == "C\n\n");
227
+ REQUIRE(action.node.examples.front().requests[1].schema.empty());
228
+ REQUIRE(action.node.examples.front().requests[1].parameters.empty());
229
+ REQUIRE(action.node.examples.front().requests[1].headers.empty());
230
+
231
+ REQUIRE(action.node.examples.front().responses.size() == 1);
232
+
233
+ REQUIRE(action.sourceMap.name.sourceMap.empty());
234
+ REQUIRE(action.sourceMap.method.sourceMap.size() == 1);
235
+ REQUIRE(action.sourceMap.method.sourceMap[0].location == 0);
236
+ REQUIRE(action.sourceMap.method.sourceMap[0].length == 9);
237
+ REQUIRE(action.sourceMap.description.sourceMap.empty());
238
+ REQUIRE(action.sourceMap.examples.collection.size() == 1);
239
+ REQUIRE(action.sourceMap.examples.collection[0].requests.collection.size() == 2);
240
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection.size() == 1);
241
+ }
242
+
243
+ TEST_CASE("Parse method with foreign item", "[action]")
244
+ {
245
+ mdp::ByteBuffer source = \
246
+ "# MKCOL\n"\
247
+ "+ Request\n"\
248
+ " + Body\n\n"\
249
+ " Foo\n\n"\
250
+ "+ Bar\n"\
251
+ "+ Response 200\n";
252
+
253
+ ParseResult<Action> action;
254
+ SectionParserHelper<Action, ActionParser>::parse(source, ActionSectionType, action, ExportSourcemapOption);
255
+
256
+ REQUIRE(action.report.error.code == Error::OK);
257
+ REQUIRE(action.report.warnings.size() == 1);
258
+ REQUIRE(action.report.warnings[0].code == IgnoringWarning);
259
+
260
+ REQUIRE(action.node.name.empty());
261
+ REQUIRE(action.node.method == "MKCOL");
262
+ REQUIRE(action.node.description.empty());
263
+ REQUIRE(action.node.parameters.empty());
264
+
265
+ REQUIRE(action.node.examples.size() == 1);
266
+ REQUIRE(action.node.examples.front().requests.size() == 1);
267
+ REQUIRE(action.node.examples.front().requests[0].name.empty());
268
+ REQUIRE(action.node.examples.front().requests[0].body == "Foo\n");
269
+ REQUIRE(action.node.examples.front().requests[0].schema.empty());
270
+ REQUIRE(action.node.examples.front().requests[0].parameters.empty());
271
+ REQUIRE(action.node.examples.front().requests[0].headers.empty());
272
+ REQUIRE(action.node.examples.front().responses.size() == 1);
273
+
274
+ REQUIRE(action.sourceMap.name.sourceMap.empty());
275
+ REQUIRE(action.sourceMap.method.sourceMap.size() == 1);
276
+ REQUIRE(action.sourceMap.method.sourceMap[0].location == 0);
277
+ REQUIRE(action.sourceMap.method.sourceMap[0].length == 8);
278
+ REQUIRE(action.sourceMap.description.sourceMap.empty());
279
+ REQUIRE(action.sourceMap.examples.collection.size() == 1);
280
+ REQUIRE(action.sourceMap.examples.collection[0].requests.collection.size() == 1);
281
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection.size() == 1);
282
+ }
283
+
284
+ TEST_CASE("Parse method with a HR", "[action]")
285
+ {
286
+ mdp::ByteBuffer source = \
287
+ "# PATCH /1\n\n"\
288
+ "A\n"\
289
+ "---\n"\
290
+ "B\n";
291
+
292
+ ParseResult<Action> action;
293
+ SectionParserHelper<Action, ActionParser>::parse(source, ActionSectionType, action, ExportSourcemapOption);
294
+
295
+ REQUIRE(action.report.error.code == Error::OK);
296
+ REQUIRE(action.report.warnings.size() == 1); // no response
297
+
298
+ REQUIRE(action.node.name.empty());
299
+ REQUIRE(action.node.method == "PATCH");
300
+ REQUIRE(action.node.description == "A\n---\n\nB\n");
301
+ REQUIRE(action.node.examples.empty());
302
+
303
+ REQUIRE(action.sourceMap.name.sourceMap.empty());
304
+ REQUIRE(action.sourceMap.method.sourceMap.size() == 1);
305
+ REQUIRE(action.sourceMap.method.sourceMap[0].location == 0);
306
+ REQUIRE(action.sourceMap.method.sourceMap[0].length == 12);
307
+ REQUIRE(action.sourceMap.description.sourceMap.size() == 1);
308
+ REQUIRE(action.sourceMap.description.sourceMap[0].location == 12);
309
+ REQUIRE(action.sourceMap.description.sourceMap[0].length == 8);
310
+ REQUIRE(action.sourceMap.examples.collection.size() == 0);
311
+ }
312
+
313
+ TEST_CASE("Parse method without name", "[action]")
314
+ {
315
+ mdp::ByteBuffer source = "# GET";
316
+
317
+ ParseResult<Action> action;
318
+ SectionParserHelper<Action, ActionParser>::parse(source, ActionSectionType, action, ExportSourcemapOption);
319
+
320
+ REQUIRE(action.report.error.code == Error::OK);
321
+ REQUIRE(action.report.warnings.size() == 1); // no response
322
+
323
+ REQUIRE(action.node.name.empty());
324
+ REQUIRE(action.node.method == "GET");
325
+ REQUIRE(action.node.description.empty());
326
+
327
+ REQUIRE(action.sourceMap.name.sourceMap.empty());
328
+ REQUIRE(action.sourceMap.method.sourceMap.size() == 1);
329
+ REQUIRE(action.sourceMap.method.sourceMap[0].location == 0);
330
+ REQUIRE(action.sourceMap.method.sourceMap[0].length == 5);
331
+ REQUIRE(action.sourceMap.description.sourceMap.empty());
332
+ REQUIRE(action.sourceMap.examples.collection.size() == 0);
333
+ }
334
+
335
+ TEST_CASE("Parse action with parameters", "[action]")
336
+ {
337
+ mdp::ByteBuffer source = \
338
+ "# GET /resrouce/{id}\n"\
339
+ "+ Parameters\n"\
340
+ " + id (required, number, `42`) ... Resource Id\n"\
341
+ "\n"\
342
+ "+ Response 204\n"\
343
+ "\n";
344
+
345
+ ParseResult<Action> action;
346
+ SectionParserHelper<Action, ActionParser>::parse(source, ActionSectionType, action, ExportSourcemapOption);
347
+
348
+ REQUIRE(action.report.error.code == Error::OK);
349
+ REQUIRE(action.report.warnings.empty());
350
+
351
+ REQUIRE(action.node.parameters.size() == 1);
352
+ REQUIRE(action.node.parameters[0].name == "id");
353
+ REQUIRE(action.node.parameters[0].description == "Resource Id");
354
+ REQUIRE(action.node.parameters[0].type == "number");
355
+ REQUIRE(action.node.parameters[0].defaultValue.empty());
356
+ REQUIRE(action.node.parameters[0].exampleValue == "42");
357
+ REQUIRE(action.node.parameters[0].values.empty());
358
+
359
+ REQUIRE(action.sourceMap.name.sourceMap.empty());
360
+ REQUIRE(action.sourceMap.method.sourceMap.size() == 1);
361
+ REQUIRE(action.sourceMap.method.sourceMap[0].location == 0);
362
+ REQUIRE(action.sourceMap.method.sourceMap[0].length == 21);
363
+ REQUIRE(action.sourceMap.description.sourceMap.empty());
364
+ REQUIRE(action.sourceMap.parameters.collection.size() == 1);
365
+ REQUIRE(action.sourceMap.parameters.collection[0].name.sourceMap.size() == 1);
366
+ REQUIRE(action.sourceMap.parameters.collection[0].name.sourceMap[0].location == 40);
367
+ REQUIRE(action.sourceMap.parameters.collection[0].name.sourceMap[0].length == 44);
368
+ REQUIRE(action.sourceMap.examples.collection.size() == 1);
369
+ REQUIRE(action.sourceMap.examples.collection[0].requests.collection.size() == 0);
370
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection.size() == 1);
371
+ }
372
+
373
+ TEST_CASE("Give a warning when 2xx CONNECT has a body", "[action]")
374
+ {
375
+ mdp::ByteBuffer source = \
376
+ "# CONNECT /1\n"\
377
+ "+ Response 201\n\n"\
378
+ " {}\n\n";
379
+
380
+ ParseResult<Action> action;
381
+ SectionParserHelper<Action, ActionParser>::parse(source, ActionSectionType, action, ExportSourcemapOption);
382
+
383
+ REQUIRE(action.report.error.code == Error::OK);
384
+ REQUIRE(action.report.warnings.size() == 1);
385
+
386
+ REQUIRE(action.node.method == "CONNECT");
387
+ REQUIRE(action.node.examples.size() == 1);
388
+ REQUIRE(action.node.examples[0].responses.size() == 1);
389
+ REQUIRE(action.node.examples[0].responses[0].body == "{}\n");
390
+
391
+ REQUIRE(action.sourceMap.name.sourceMap.empty());
392
+ REQUIRE(action.sourceMap.method.sourceMap.size() == 1);
393
+ REQUIRE(action.sourceMap.method.sourceMap[0].location == 0);
394
+ REQUIRE(action.sourceMap.method.sourceMap[0].length == 13);
395
+ REQUIRE(action.sourceMap.description.sourceMap.empty());
396
+ REQUIRE(action.sourceMap.examples.collection.size() == 1);
397
+ REQUIRE(action.sourceMap.examples.collection[0].requests.collection.size() == 0);
398
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection.size() == 1);
399
+ }
400
+
401
+ TEST_CASE("Give a warning when response to HEAD has a body", "[action]")
402
+ {
403
+ mdp::ByteBuffer source = \
404
+ "# HEAD /1\n"\
405
+ "+ Response 200\n\n"\
406
+ " {}\n\n";
407
+
408
+ ParseResult<Action> action;
409
+ SectionParserHelper<Action, ActionParser>::parse(source, ActionSectionType, action, ExportSourcemapOption);
410
+
411
+ REQUIRE(action.report.error.code == Error::OK);
412
+ REQUIRE(action.report.warnings.size() == 1);
413
+ REQUIRE(action.report.warnings[0].code == EmptyDefinitionWarning);
414
+
415
+ REQUIRE(action.node.method == "HEAD");
416
+ REQUIRE(action.node.examples.size() == 1);
417
+ REQUIRE(action.node.examples[0].responses.size() == 1);
418
+ REQUIRE(action.node.examples[0].responses[0].body == "{}\n");
419
+
420
+ REQUIRE(action.sourceMap.name.sourceMap.empty());
421
+ REQUIRE(action.sourceMap.method.sourceMap.size() == 1);
422
+ REQUIRE(action.sourceMap.method.sourceMap[0].location == 0);
423
+ REQUIRE(action.sourceMap.method.sourceMap[0].length == 10);
424
+ REQUIRE(action.sourceMap.description.sourceMap.empty());
425
+ REQUIRE(action.sourceMap.examples.collection.size() == 1);
426
+ REQUIRE(action.sourceMap.examples.collection[0].requests.collection.size() == 0);
427
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection.size() == 1);
428
+ }
429
+
430
+ TEST_CASE("Missing 'LINK' HTTP request method", "[action]")
431
+ {
432
+ mdp::ByteBuffer source = \
433
+ "# LINK /1\n"\
434
+ "+ Response 204\n\n";
435
+
436
+ ParseResult<Action> action;
437
+ SectionParserHelper<Action, ActionParser>::parse(source, ActionSectionType, action, ExportSourcemapOption);
438
+
439
+ REQUIRE(action.report.error.code == Error::OK);
440
+ REQUIRE(action.report.warnings.empty());
441
+
442
+ REQUIRE(action.node.examples.size() == 1);
443
+ REQUIRE(action.node.examples[0].requests.empty());
444
+ REQUIRE(action.node.examples[0].responses.size() == 1);
445
+
446
+ REQUIRE(action.sourceMap.name.sourceMap.empty());
447
+ REQUIRE(action.sourceMap.method.sourceMap.size() == 1);
448
+ REQUIRE(action.sourceMap.method.sourceMap[0].location == 0);
449
+ REQUIRE(action.sourceMap.method.sourceMap[0].length == 10);
450
+ REQUIRE(action.sourceMap.description.sourceMap.empty());
451
+ REQUIRE(action.sourceMap.examples.collection.size() == 1);
452
+ REQUIRE(action.sourceMap.examples.collection[0].requests.collection.size() == 0);
453
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection.size() == 1);
454
+ }
455
+
456
+ TEST_CASE("Warn when request is not followed by a response", "[action]")
457
+ {
458
+ mdp::ByteBuffer source = \
459
+ "# GET /1\n"\
460
+ "+ response 200 \n"\
461
+ "\n"\
462
+ " 200\n"\
463
+ "\n"\
464
+ "+ request A\n"\
465
+ "\n"\
466
+ " A\n";
467
+
468
+ ParseResult<Action> action;
469
+ SectionParserHelper<Action, ActionParser>::parse(source, ActionSectionType, action, ExportSourcemapOption);
470
+
471
+ REQUIRE(action.report.error.code == Error::OK);
472
+ REQUIRE(action.report.warnings.size() == 1);
473
+ REQUIRE(action.report.warnings[0].code == EmptyDefinitionWarning);
474
+
475
+ REQUIRE(action.node.examples.size() == 2);
476
+ REQUIRE(action.node.examples[0].requests.size() == 0);
477
+ REQUIRE(action.node.examples[0].responses.size() == 1);
478
+ REQUIRE(action.node.examples[1].requests.size() == 1);
479
+ REQUIRE(action.node.examples[1].responses.size() == 0);
480
+
481
+ REQUIRE(action.sourceMap.name.sourceMap.empty());
482
+ REQUIRE(action.sourceMap.method.sourceMap.size() == 1);
483
+ REQUIRE(action.sourceMap.method.sourceMap[0].location == 0);
484
+ REQUIRE(action.sourceMap.method.sourceMap[0].length == 9);
485
+ REQUIRE(action.sourceMap.description.sourceMap.empty());
486
+ REQUIRE(action.sourceMap.examples.collection.size() == 2);
487
+ REQUIRE(action.sourceMap.examples.collection[0].requests.collection.size() == 0);
488
+ REQUIRE(action.sourceMap.examples.collection[0].responses.collection.size() == 1);
489
+ REQUIRE(action.sourceMap.examples.collection[1].requests.collection.size() == 1);
490
+ REQUIRE(action.sourceMap.examples.collection[1].responses.collection.size() == 0);
491
+ }