uttk 0.3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. data/AUTHORS +36 -0
  2. data/COPYING +18 -0
  3. data/ChangeLog +7673 -0
  4. data/GUIDELINES +86 -0
  5. data/LGPL +504 -0
  6. data/NEWS +158 -0
  7. data/NORM +137 -0
  8. data/README +180 -0
  9. data/Rakefile +8 -0
  10. data/SPEC.gemspec +15 -0
  11. data/SPEC.yml +60 -0
  12. data/TODO +23 -0
  13. data/TODO.old +31 -0
  14. data/VERSION +5 -0
  15. data/bin/getopts/uttk.rb +390 -0
  16. data/bin/uttk +188 -0
  17. data/bin/uttk-unit +125 -0
  18. data/lib/uttk.rb +288 -0
  19. data/lib/uttk/dumpers/Basic.rb +23 -0
  20. data/lib/uttk/dumpers/BasicColor.rb +35 -0
  21. data/lib/uttk/dumpers/Dumper.rb +77 -0
  22. data/lib/uttk/dumpers/Html.rb +271 -0
  23. data/lib/uttk/dumpers/Path.rb +24 -0
  24. data/lib/uttk/dumpers/Xml.rb +88 -0
  25. data/lib/uttk/dumpers/Yaml.rb +138 -0
  26. data/lib/uttk/filters.rb +128 -0
  27. data/lib/uttk/filters/Buffer.rb +119 -0
  28. data/lib/uttk/filters/Compact.rb +75 -0
  29. data/lib/uttk/filters/Default.rb +27 -0
  30. data/lib/uttk/filters/DefaultColor.rb +27 -0
  31. data/lib/uttk/filters/Filter.rb +53 -0
  32. data/lib/uttk/filters/Id.rb +30 -0
  33. data/lib/uttk/filters/JustStatus.rb +25 -0
  34. data/lib/uttk/filters/KeepSkipBased.rb +38 -0
  35. data/lib/uttk/filters/NodeCut.rb +97 -0
  36. data/lib/uttk/filters/RPathFilter.rb +134 -0
  37. data/lib/uttk/filters/Saver.rb +53 -0
  38. data/lib/uttk/filters/TextFilter.rb +69 -0
  39. data/lib/uttk/generators/dumper_generator.rb +28 -0
  40. data/lib/uttk/generators/filter_generator.rb +28 -0
  41. data/lib/uttk/generators/generator.rb +86 -0
  42. data/lib/uttk/generators/generator_generator.rb +26 -0
  43. data/lib/uttk/generators/loader_generator.rb +28 -0
  44. data/lib/uttk/generators/path_filter_generator.rb +28 -0
  45. data/lib/uttk/generators/strategy_generator.rb +28 -0
  46. data/lib/uttk/generators/templates/dumper.rb +50 -0
  47. data/lib/uttk/generators/templates/filter.rb +50 -0
  48. data/lib/uttk/generators/templates/generator.rb +28 -0
  49. data/lib/uttk/generators/templates/loader.rb +26 -0
  50. data/lib/uttk/generators/templates/path_filter.rb +28 -0
  51. data/lib/uttk/generators/templates/strategy.rb +59 -0
  52. data/lib/uttk/generators/templates/strategy.yml +28 -0
  53. data/lib/uttk/generators/templates/unit_test.rb +46 -0
  54. data/lib/uttk/loaders/Loader.rb +180 -0
  55. data/lib/uttk/loaders/Ruby.rb +28 -0
  56. data/lib/uttk/loaders/Yaml.rb +98 -0
  57. data/lib/uttk/logger.rb +306 -0
  58. data/lib/uttk/logger/backend.rb +170 -0
  59. data/lib/uttk/logger/path.rb +202 -0
  60. data/lib/uttk/logger/section_node.rb +214 -0
  61. data/lib/uttk/logger/severity.rb +63 -0
  62. data/lib/uttk/logger/to_uttk_log.rb +127 -0
  63. data/lib/uttk/logger/verbosity.rb +61 -0
  64. data/lib/uttk/logger_factory.rb +55 -0
  65. data/lib/uttk/path_filters/ColorStatus.rb +57 -0
  66. data/lib/uttk/path_filters/PathFilter.rb +27 -0
  67. data/lib/uttk/path_filters/RemoveTypes.rb +25 -0
  68. data/lib/uttk/status.rb +146 -0
  69. data/lib/uttk/strategies/Abort.rb +24 -0
  70. data/lib/uttk/strategies/Assert.rb +44 -0
  71. data/lib/uttk/strategies/Authors.rb +45 -0
  72. data/lib/uttk/strategies/Block.rb +113 -0
  73. data/lib/uttk/strategies/Bootstrap.rb +55 -0
  74. data/lib/uttk/strategies/Checkout.rb +64 -0
  75. data/lib/uttk/strategies/Clean.rb +29 -0
  76. data/lib/uttk/strategies/Cmd.rb +60 -0
  77. data/lib/uttk/strategies/CmdBase.rb +130 -0
  78. data/lib/uttk/strategies/Collection.rb +158 -0
  79. data/lib/uttk/strategies/Compile.rb +59 -0
  80. data/lib/uttk/strategies/Composite.rb +201 -0
  81. data/lib/uttk/strategies/Composite/contents_eval.rb +40 -0
  82. data/lib/uttk/strategies/Configure.rb +66 -0
  83. data/lib/uttk/strategies/Error.rb +23 -0
  84. data/lib/uttk/strategies/Fail.rb +26 -0
  85. data/lib/uttk/strategies/IOBased.rb +159 -0
  86. data/lib/uttk/strategies/Import.rb +60 -0
  87. data/lib/uttk/strategies/Iterate.rb +139 -0
  88. data/lib/uttk/strategies/JUnit.rb +205 -0
  89. data/lib/uttk/strategies/KillAll.rb +62 -0
  90. data/lib/uttk/strategies/Make.rb +94 -0
  91. data/lib/uttk/strategies/Package.rb +129 -0
  92. data/lib/uttk/strategies/PackageCollection.rb +78 -0
  93. data/lib/uttk/strategies/Pass.rb +24 -0
  94. data/lib/uttk/strategies/Pool.rb +104 -0
  95. data/lib/uttk/strategies/ProbabilityThreshold.rb +46 -0
  96. data/lib/uttk/strategies/Proxy.rb +42 -0
  97. data/lib/uttk/strategies/RMatch.rb +92 -0
  98. data/lib/uttk/strategies/RUnit.rb +132 -0
  99. data/lib/uttk/strategies/SignalCmd.rb +85 -0
  100. data/lib/uttk/strategies/Sleep.rb +36 -0
  101. data/lib/uttk/strategies/SqlQuery.rb +120 -0
  102. data/lib/uttk/strategies/Strategy.rb +683 -0
  103. data/lib/uttk/strategies/Stub.rb +37 -0
  104. data/lib/uttk/strategies/SubCmd.rb +77 -0
  105. data/lib/uttk/strategies/Suite.rb +71 -0
  106. data/lib/uttk/strategies/Test.rb +89 -0
  107. data/lib/uttk/streams.rb +69 -0
  108. data/lib/uttk/streams/Diff.rb +60 -0
  109. data/lib/uttk/streams/HexaDiff.rb +35 -0
  110. data/lib/uttk/streams/Stream.rb +76 -0
  111. data/lib/uttk/weights.rb +17 -0
  112. data/lib/uttk/weights/WExpr.rb +68 -0
  113. data/lib/uttk/weights/WFloat.rb +23 -0
  114. data/lib/uttk/weights/WMin.rb +22 -0
  115. data/lib/uttk/weights/Weight.rb +105 -0
  116. data/lib/www/javascripts/uttk.js +185 -0
  117. data/misc/expandtab.rb +29 -0
  118. data/misc/header.rb +44 -0
  119. data/misc/renaming +57 -0
  120. data/misc/textile_compiler +194 -0
  121. data/misc/uttk-grep.sh +8 -0
  122. data/misc/uttk-line-count.rb +143 -0
  123. data/test/examples-suite.yml +8 -0
  124. data/test/examples/README +68 -0
  125. data/test/examples/basic.rb +10 -0
  126. data/test/examples/basic.yml +9 -0
  127. data/test/examples/cache/cache_and_fatal.yml +5 -0
  128. data/test/examples/cache/simple.yml +30 -0
  129. data/test/examples/sql/basic.yml +24 -0
  130. data/test/examples/students-suite.yml +9 -0
  131. data/test/examples/students/ball.yml +11 -0
  132. data/test/examples/students/glob_stud.yml +20 -0
  133. data/test/examples/students/mini-lib.yml +61 -0
  134. data/test/examples/students/pool_stud.yml +31 -0
  135. data/test/examples/students/stud.yml +21 -0
  136. data/test/fixtures/ball/20040804-exam_a1-zapngo-tessar_m.tar.gz +0 -0
  137. data/test/fixtures/ball/Makefile +24 -0
  138. data/test/fixtures/ball/bar_p-mini-lib.tar.bz2 +0 -0
  139. data/test/fixtures/ball/bar_p-mini-lib/Makefile +20 -0
  140. data/test/fixtures/ball/bar_p-mini-lib/my_strlen.c +13 -0
  141. data/test/fixtures/ball/foo_s-mini-lib.tar.bz2 +0 -0
  142. data/test/fixtures/ball/foo_s-mini-lib/Makefile +20 -0
  143. data/test/fixtures/ball/foo_s-mini-lib/configure +2 -0
  144. data/test/fixtures/ball/foo_s-mini-lib/my_strlen.c +10 -0
  145. data/test/fixtures/ball/hello.tar.bz2 +0 -0
  146. data/test/fixtures/ball/hello.tar.gz +0 -0
  147. data/test/fixtures/ball/hello/Makefile +14 -0
  148. data/test/fixtures/ball/hello/hello.c +7 -0
  149. data/test/fixtures/ball/jack-exit.tar.bz2 +0 -0
  150. data/test/fixtures/ball/jack-exit/Makefile +14 -0
  151. data/test/fixtures/ball/jack-exit/exit.c +16 -0
  152. data/test/fixtures/ball/joe-exit.tar.bz2 +0 -0
  153. data/test/fixtures/ball/joe-exit/Makefile +14 -0
  154. data/test/fixtures/ball/joe-exit/exit.c +8 -0
  155. data/test/fixtures/ball/joe_i-mini-lib.tar.bz2 +0 -0
  156. data/test/fixtures/ball/joe_i-mini-lib/Makefile +20 -0
  157. data/test/fixtures/ball/joe_i-mini-lib/configure +2 -0
  158. data/test/fixtures/ball/joe_i-mini-lib/my_strlen.c +10 -0
  159. data/test/fixtures/ball/john-exit.tar.bz2 +0 -0
  160. data/test/fixtures/ball/john-exit/Makefile +14 -0
  161. data/test/fixtures/ball/john-exit/exit.c +6 -0
  162. data/test/fixtures/ball/qux_j-mini-lib.tar.bz2 +0 -0
  163. data/test/fixtures/ball/qux_j-mini-lib/Makefile +20 -0
  164. data/test/fixtures/ball/qux_j-mini-lib/my_strlen.c +12 -0
  165. data/test/fixtures/binaries/segv +0 -0
  166. data/test/fixtures/binaries/segv.c +10 -0
  167. data/test/fixtures/binaries/segv.rb +2 -0
  168. data/test/fixtures/demo/command-tutorial/steps/1/check.yml +5 -0
  169. data/test/fixtures/demo/command-tutorial/steps/1/pluralizer.rb +10 -0
  170. data/test/fixtures/demo/command-tutorial/steps/2/bad_check.yml +7 -0
  171. data/test/fixtures/demo/command-tutorial/steps/2/check.yml +7 -0
  172. data/test/fixtures/demo/command-tutorial/steps/2/pluralizer.rb +10 -0
  173. data/test/fixtures/demo/command-tutorial/steps/3.1/check.yml +12 -0
  174. data/test/fixtures/demo/command-tutorial/steps/3/check.yml +14 -0
  175. data/test/fixtures/demo/command-tutorial/steps/4.1/bird.txt +1 -0
  176. data/test/fixtures/demo/command-tutorial/steps/4.1/check.yml +12 -0
  177. data/test/fixtures/demo/command-tutorial/steps/4/check.yml +12 -0
  178. data/test/fixtures/demo/command-tutorial/steps/4/pluralizer.rb +12 -0
  179. data/test/fixtures/demo/command-tutorial/steps/5.1/bird.txt +1 -0
  180. data/test/fixtures/demo/command-tutorial/steps/5.1/check.yml +17 -0
  181. data/test/fixtures/demo/command-tutorial/steps/5.1/pluralizer.rb +17 -0
  182. data/test/fixtures/demo/command-tutorial/steps/5/bird.txt +1 -0
  183. data/test/fixtures/demo/command-tutorial/steps/5/check.yml +16 -0
  184. data/test/fixtures/demo/command-tutorial/steps/5/pluralizer.rb +16 -0
  185. data/test/fixtures/demo/command-tutorial/steps/6.1/bird.txt +1 -0
  186. data/test/fixtures/demo/command-tutorial/steps/6.1/check.yml +22 -0
  187. data/test/fixtures/demo/command-tutorial/steps/6.1/pluralizer.rb +17 -0
  188. data/test/fixtures/demo/command-tutorial/steps/6/bird.txt +1 -0
  189. data/test/fixtures/demo/command-tutorial/steps/6/check.yml +21 -0
  190. data/test/fixtures/demo/command-tutorial/steps/6/pluralizer.rb +17 -0
  191. data/test/fixtures/demo/command-tutorial/steps/7/bird.txt +1 -0
  192. data/test/fixtures/demo/command-tutorial/steps/7/check.yml +22 -0
  193. data/test/fixtures/demo/command-tutorial/steps/7/pluralizer.rb +17 -0
  194. data/test/fixtures/demo/filter-tutorial/check.yml +20 -0
  195. data/test/fixtures/demo/filter-tutorial/filters/CutSkip100.rb +19 -0
  196. data/test/fixtures/demo/filter-tutorial/pluralizer.rb +17 -0
  197. data/test/fixtures/java/unit/MultiRight/Foo/Foo.java +11 -0
  198. data/test/fixtures/java/unit/MultiRight/Foo/FooTest.java +15 -0
  199. data/test/fixtures/java/unit/MultiRight/MultiRight.java +13 -0
  200. data/test/fixtures/java/unit/MultiRight/MultiRightTest.java +12 -0
  201. data/test/fixtures/java/unit/MultiRight/bar/Bar.java +11 -0
  202. data/test/fixtures/java/unit/MultiRight/bar/BarTest.java +21 -0
  203. data/test/fixtures/java/unit/MultiRight/build.sh +7 -0
  204. data/test/fixtures/java/unit/SimpleException/SimpleExceptionTest.java +11 -0
  205. data/test/fixtures/java/unit/SimpleException/build.sh +4 -0
  206. data/test/fixtures/java/unit/build.sh +9 -0
  207. data/test/fixtures/java/unit/multibar.yml +6 -0
  208. data/test/fixtures/java/unit/multifoo.yml +6 -0
  209. data/test/fixtures/java/unit/multiright.yml +8 -0
  210. data/test/fixtures/java/unit/simple_exception.yml +6 -0
  211. data/test/fixtures/mini-lib/Makefile +9 -0
  212. data/test/fixtures/mini-lib/strlen.c +15 -0
  213. data/test/fixtures/package/pkg_foo.tar.gz +0 -0
  214. data/test/fixtures/package/pkg_foo/Makefile +20 -0
  215. data/test/fixtures/package/pkg_foo/bootstrap +3 -0
  216. data/test/fixtures/package/pkg_foo/configure +3 -0
  217. data/test/fixtures/package/pkg_foo/foo.sh +2 -0
  218. data/test/fixtures/text/1.txt +4 -0
  219. data/test/fixtures/unit/bad.rb +26 -0
  220. data/test/fixtures/unit/error.rb +6 -0
  221. data/test/fixtures/unit/good.rb +26 -0
  222. data/test/functional-suite.yml +10 -0
  223. data/test/functional/author.yml +11 -0
  224. data/test/functional/base.yml +119 -0
  225. data/test/functional/base_pool.yml +13 -0
  226. data/test/functional/block.yml +13 -0
  227. data/test/functional/cat.yml +16 -0
  228. data/test/functional/cmd.yml +17 -0
  229. data/test/functional/diff.yml +27 -0
  230. data/test/functional/env_cmd.yml +53 -0
  231. data/test/functional/exit.yml +15 -0
  232. data/test/functional/fatal.yml +23 -0
  233. data/test/functional/glob.yml +11 -0
  234. data/test/functional/hexa-diff.yml +25 -0
  235. data/test/functional/import.yml +41 -0
  236. data/test/functional/iterate.yml +99 -0
  237. data/test/functional/killall.yml +31 -0
  238. data/test/functional/pkg.yml +14 -0
  239. data/test/functional/probability_threshold.yml +35 -0
  240. data/test/functional/r_unit.yml +26 -0
  241. data/test/functional/rmatch.yml +122 -0
  242. data/test/functional/signal_cmd.yml +22 -0
  243. data/test/functional/sub.yml +15 -0
  244. data/test/functional/test.yml +25 -0
  245. data/test/functional/timeout.yml +20 -0
  246. data/test/functional/wc.yml +26 -0
  247. data/test/functional/weight.yml +152 -0
  248. data/test/pkg-suite.yml +8 -0
  249. data/test/pkg/cmdline.yml +80 -0
  250. data/test/pool-suite.yml +8 -0
  251. data/test/pool/base.yml +12 -0
  252. data/test/pool/pool.yml +25 -0
  253. data/test/ruby-suite.rb +10 -0
  254. data/test/ruby-suite.yml +5 -0
  255. data/test/ruby/base.rb +119 -0
  256. data/test/ruby/iterate.rb +21 -0
  257. data/test/ruby/wc.rb +43 -0
  258. data/test/unit-suite.yml +10 -0
  259. data/test/unit/dumpers/path_test.rb +46 -0
  260. data/test/unit/dumpers/xml_test.rb +65 -0
  261. data/test/unit/dumpers/yaml_test.rb +65 -0
  262. data/test/unit/filters/buffer_test.rb +168 -0
  263. data/test/unit/filters/keep_skip_based_test.rb +46 -0
  264. data/test/unit/filters/node_cut_test.rb +72 -0
  265. data/test/unit/filters/rpath_filter_test.rb +191 -0
  266. data/test/unit/filters/text_filter_test.rb +46 -0
  267. data/test/unit/filters_test.rb +119 -0
  268. data/test/unit/logger/section_node_test.rb +120 -0
  269. data/test/unit/logger/severity_test.rb +37 -0
  270. data/test/unit/logger/to_uttk_log_test.rb +113 -0
  271. data/test/unit/logger/verbosity_test.rb +44 -0
  272. data/test/unit/logger_test.rb +203 -0
  273. data/test/unit/strategies/suite_test.rb +151 -0
  274. data/test/uttk-check.yml +8 -0
  275. data/test/uttk-distcheck.yml +18 -0
  276. metadata +399 -0
@@ -0,0 +1,8 @@
1
+ ---
2
+
3
+ Uttk example test suite: !S::Iterate
4
+ over: !pathlist <<pwd>>/examples/(*).yml
5
+ iter: [it_file, it_name]
6
+ test:
7
+ Test <<it_name>>: !S::Import
8
+ import: <<it_file>>
@@ -0,0 +1,68 @@
1
+
2
+ = Introduction
3
+
4
+ This directory contains a set of a typical examples of Uttk. In this directory
5
+ you can find several test examples.You can run all the tests included in this
6
+ directory by simply typing this command:
7
+
8
+ $ uttk test/examples-suite.yml
9
+
10
+ == Cache
11
+
12
+ This example shows you how to use the cache feature of Uttk to avoid to rerun
13
+ all the time, already pass test. Use it this way.
14
+
15
+ $ uttk -C test/examples/cache/simple.yml
16
+
17
+ In this mode, Uttk is interactive. If the suite failed, it will ask you to rerun
18
+ it. Since this suite is designed to fail 5 times.
19
+
20
+ == SQL
21
+
22
+ This example shows you how you can test your SQL queries. See the
23
+ Uttk::Strategies::SqlQuery strategy documentation for further informations.
24
+
25
+ $ uttk test/examples/sql/basic.yml
26
+
27
+ == Students
28
+
29
+ This directory consists of several examples that show how to test a complete
30
+ tarball or a mini library or a set of students program. You can run all the
31
+ tests included in this directory by simply typing this command:
32
+
33
+ $ uttk test/examples/students-suite.yml
34
+
35
+ === ball.yml
36
+
37
+ It applies one test to a tarball containing a basic project (helloworld). See
38
+ the Uttk::Strategies::Package documentation for further information.
39
+
40
+ $ uttk test/examples/students/ball.yml
41
+
42
+ === stud.yml
43
+
44
+ It applies several tests to a basic tarball containing a simple `exit' program.
45
+
46
+ $ uttk test/examples/students/stud.yml
47
+
48
+ === pool_stud.yml
49
+
50
+ It does the same as `stud.yml' but in a parallelized way instead of a sequence
51
+ way.
52
+
53
+ $ uttk test/examples/students/pool_stud.yml
54
+
55
+ === glob_stud.yml
56
+
57
+ It collects a set of tarballs and apply them a sequence of tests. See the
58
+ Uttk::Strategies::Glob documentation for further information.
59
+
60
+ $ uttk test/examples/students/glob_stud.yml
61
+
62
+ === mini-lib.yml
63
+
64
+ It applies to a set of tarball containing a library and applies them a sequence
65
+ of tests.
66
+
67
+ $ uttk test/examples/students/mini-lib.yml
68
+
@@ -0,0 +1,10 @@
1
+ # The most basic example.
2
+ S::Cmd.new("Test whether bc works fine") do
3
+ command "bc"
4
+ input "42*42\n"
5
+ output <<EOF
6
+ 1764
7
+ EOF
8
+ error ""
9
+ exit 0
10
+ end
@@ -0,0 +1,9 @@
1
+ # The most basic example.
2
+ ---
3
+ Test whether bc works fine: !S::Cmd
4
+ command: bc
5
+ input: "42*42\n"
6
+ output: |
7
+ 1764
8
+ error: ""
9
+ exit: 0
@@ -0,0 +1,5 @@
1
+ Fatal tests and skip in cache: !S::Suite
2
+ contents:
3
+ - Pass: !S::Pass
4
+ fatal: true
5
+ - Fail: !S::Fail {}
@@ -0,0 +1,30 @@
1
+ ---
2
+
3
+ Relaunch 5 times this test with the cache feature to obtain a PASS: !S::Suite
4
+
5
+ timeout: 1.5
6
+
7
+ attributes: !S::Sleep
8
+ delay: 1
9
+
10
+ contents:
11
+
12
+ - first:
13
+ symbols:
14
+ foo: a
15
+
16
+ - second:
17
+ symbols:
18
+ foo: <<foo>>/b
19
+
20
+ - third
21
+
22
+ - fourth:
23
+ symbols:
24
+ foo: <<foo>>/c
25
+
26
+ - fith
27
+
28
+ - sixth: !S::Cmd
29
+ command: echo -n <<foo>>
30
+ output: a/b/c
@@ -0,0 +1,24 @@
1
+ ---
2
+
3
+ Test SQL Query strategy: !S::Suite
4
+
5
+ attributes: !S::SqlQuery
6
+ driver : Pg
7
+ host : logo
8
+ database : cuissa_v
9
+ user : cuissa_v
10
+ passwd : ******
11
+ ref_schema: reference
12
+
13
+ contents:
14
+
15
+ - test1:
16
+ query: SELECT * FROM %s.park
17
+
18
+ - test2:
19
+ query: SELECT * FROM %s.park
20
+ my_schema: toto
21
+
22
+ - test3:
23
+ query: SELECT * FROM reference.park
24
+
@@ -0,0 +1,9 @@
1
+ ---
2
+
3
+ Uttk students oriented test suite: !S::Iterate
4
+ over: !pathlist <<pwd>>/students/(*).yml
5
+ iter: [it_file_root, it_name_root]
6
+ test:
7
+ Test <<it_name_root>>: !S::Import
8
+ import: <<it_file_root>>
9
+
@@ -0,0 +1,11 @@
1
+ ---
2
+
3
+ Test a TarBall (ball.yml): !S::Package
4
+ url: file://<<pwd>>/../../fixtures/ball/hello.tar.gz
5
+ skip_steps: [ check, distcheck, install ]
6
+ test:
7
+ Test the HelloWorld: !S::Cmd
8
+ command: ./hello
9
+ output: "HelloWorld!\n"
10
+ dir: <<extract_dir>>
11
+ exit: 0
@@ -0,0 +1,20 @@
1
+ ---
2
+
3
+ Test students tarball with a globbing (glob_stud.yml): !S::Iterate
4
+ over: !pathlist <<pwd>>/../../fixtures/ball/(*)-exit.tar.bz2
5
+ iter: [it_path, it_login]
6
+ # FIXME regexp: !re "/([a-z]*)-[a-z]*\.tar\.bz2"
7
+ test:
8
+ Project of <<it_login>>: !S::Package
9
+ skip_steps: [ check, distcheck, install ]
10
+ url: file://<<it_path>>
11
+ test:
12
+ Test the student exit command: !S::Suite
13
+ attributes: !S::Cmd
14
+ command: "./exit"
15
+ dir: <<extract_dir>>
16
+ timeout: 2
17
+ contents:
18
+ - test exit 0: { args: 0, exit: 0 }
19
+ - test exit 42: { args: 42, exit: 42 }
20
+ - test exit 3: { args: 3, exit: 3 }
@@ -0,0 +1,61 @@
1
+ ---
2
+
3
+ Test the mini lib: !S::ProbabilityThreshold
4
+ threshold: 0.43
5
+ test: !S::Iterate
6
+ over: !pathlist <<pwd>>/../../fixtures/ball/(*)-mini-lib.tar.bz2
7
+ iter: [it_file, it_name]
8
+ test:
9
+ Testing the mini-lib of <<it_name>>: !S::Suite
10
+ attributes:
11
+ timeout: 4
12
+ symbols:
13
+ driver: <<pwd>>/../../fixtures/mini-lib
14
+ contents:
15
+
16
+ - Extracting: !S::Checkout
17
+ url: file://<<it_file>>
18
+ weight: 0
19
+ fatal: true
20
+
21
+ - Configuring: !S::Configure
22
+ dir: <<extract_dir>>
23
+ weight: 0
24
+
25
+ - Building: !S::Cmd
26
+ command: make
27
+ dir: <<extract_dir>>
28
+ exit: 0
29
+ weight: 0
30
+ verbose_print: true
31
+ fatal: true
32
+
33
+ - Building Driver: !S::Cmd
34
+ command: make STUD_DIR=<<extract_dir>>
35
+ dir: <<driver>>
36
+ exit: 0
37
+ weight: 0
38
+ verbose_print: true
39
+ fatal: true
40
+
41
+ - Tests for the mini lib: !S::Suite
42
+ attributes: !S::Cmd
43
+ command: ./mini-lib-strlen
44
+ dir: <<driver>>
45
+ timeout: 2
46
+ contents:
47
+ - a: { args: 'a', exit: 1 }
48
+ - abcdef: { args: 'abcdef', exit: 6 }
49
+ - empty string: { args: "empty string", exit: 0 }
50
+ - nul string: { args: "the null string", exit: 0 }
51
+
52
+ - Cleaning Driver: !S::Cmd
53
+ command: make clean
54
+ dir: <<driver>>
55
+ exit: 0
56
+ weight: 0
57
+
58
+ - Cleaning Tmp: !S::Clean
59
+ dir: <<extract_dir>>
60
+ weight: 0
61
+
@@ -0,0 +1,31 @@
1
+ #FIXME: When executing this test suite via the students-suite it never ends and
2
+ # use 100% of cpu. If you execute it alone is quite fast.
3
+ ---
4
+
5
+ Test students tarball (pool_stud.yml): !S::Pool
6
+
7
+ # FIXME remove this assertion when the load will be mutexed.
8
+ # pre_assertion: |
9
+ # Uttk::Strategies::Checkout.name
10
+ # false
11
+ # This test doesn't work for the moment
12
+
13
+ symbols:
14
+ dir: <<pwd>>/../../fixtures/ball
15
+ attributes: !S::Package
16
+ skip_steps: [ check, distcheck, install ]
17
+ test:
18
+ test the student exit command: !S::Suite
19
+ attributes: !S::Cmd
20
+ command: "./exit"
21
+ timeout: 2
22
+ dir: <<extract_dir>>
23
+ contents:
24
+ - test with 0: { args: 0, exit: 0 }
25
+ - test with 42: { args: 42, exit: 42 }
26
+ - test with 3: { args: 3, exit: 3 }
27
+ contents:
28
+ - joe: { url: file://<<dir>>/joe-exit.tar.bz2, weight: 3 }
29
+ - john: { url: file://<<dir>>/john-exit.tar.bz2, weight: 2 }
30
+ - jack: { url: file://<<dir>>/jack-exit.tar.bz2, weight: 1 }
31
+
@@ -0,0 +1,21 @@
1
+ ---
2
+
3
+ Test students tarball (stud.yml): !S::Suite
4
+ attributes: !S::Package
5
+ skip_steps: [ check, distcheck, install ]
6
+ test:
7
+ test the student exit command: !S::Suite
8
+ attributes: !S::Cmd
9
+ command: "./exit"
10
+ timeout: 2
11
+ dir: <<extract_dir>>
12
+ contents:
13
+ - test with 0: { args: 0, exit: 0 }
14
+ - test with 42: { args: 42, exit: 42 }
15
+ - test with 3: { args: 3, exit: 3 }
16
+ contents:
17
+
18
+ - joe: { url: file://<<pwd>>/../../fixtures/ball/joe-exit.tar.bz2, weight: 3 }
19
+ - john: { url: file://<<pwd>>/../../fixtures/ball/john-exit.tar.bz2, weight: 2 }
20
+ - jack: { url: file://<<pwd>>/../../fixtures/ball/jack-exit.tar.bz2, weight: 1 }
21
+
@@ -0,0 +1,24 @@
1
+
2
+ GZ= \
3
+ hello
4
+
5
+ BZ2= \
6
+ jack-exit \
7
+ joe-exit \
8
+ john-exit \
9
+ bar_p-mini-lib \
10
+ foo_s-mini-lib \
11
+ joe_i-mini-lib \
12
+ qux_j-mini-lib
13
+
14
+ TARBALLS=$(addsuffix .tar.gz, $(GZ)) $(addsuffix .tar.bz2, $(BZ2))
15
+
16
+ .SUFFIXES: .tar.bz2 .tar.gz
17
+
18
+ %.tar.bz2: %
19
+ tar cvf - $< | bzip2 -z -c > $@
20
+
21
+ %.tar.gz: %
22
+ tar cvzf $@ $<
23
+
24
+ tarballs:: $(TARBALLS)
@@ -0,0 +1,20 @@
1
+ RANLIB=ranlib
2
+
3
+ OBJ=my_strlen.o
4
+
5
+ AUTHOR=bar_p
6
+ PROJECT=mini-lib
7
+ DIR=$(AUTHOR)-$(PROJECT)
8
+ TARBALL=$(DIR).tar.bz2
9
+
10
+ all: libmini-lib.a
11
+
12
+ libmini-lib.a: $(OBJ)
13
+ $(AR) cr $@ $(OBJ)
14
+ $(RANLIB) $@
15
+
16
+ clean:
17
+ rm -f *.o *.a
18
+
19
+ dist:
20
+ cd .. && tar cvjf $(TARBALL) $(DIR)
@@ -0,0 +1,13 @@
1
+
2
+ int my_strlen(const char *str)
3
+ {
4
+ const char *p;
5
+
6
+ if (!str)
7
+ return 0;
8
+
9
+ for (p = str; *p; ++p)
10
+ ;
11
+
12
+ return p - str;
13
+ }
@@ -0,0 +1,20 @@
1
+ RANLIB=ranlib
2
+
3
+ OBJ=my_strlen.o
4
+
5
+ AUTHOR=foo_s
6
+ PROJECT=mini-lib
7
+ DIR=$(AUTHOR)-$(PROJECT)
8
+ TARBALL=$(DIR).tar.bz2
9
+
10
+ all: libmini-lib.a
11
+
12
+ libmini-lib.a: $(OBJ)
13
+ $(AR) cr $@ $(OBJ)
14
+ $(RANLIB) $@
15
+
16
+ clean:
17
+ rm -f *.o *.a
18
+
19
+ dist:
20
+ cd .. && tar cvjf $(TARBALL) $(DIR)
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ echo "Configuring..."
@@ -0,0 +1,10 @@
1
+
2
+ int my_strlen(const char *str)
3
+ {
4
+ const char *p;
5
+
6
+ for (p = str; *p; ++p)
7
+ ;
8
+
9
+ return p - str;
10
+ }
Binary file
Binary file