cairo 1.8.3-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of cairo might be problematic. Click here for more details.
- data/AUTHORS +4 -0
- data/COPYING +59 -0
- data/GPL +340 -0
- data/NEWS +163 -0
- data/Rakefile +190 -0
- data/doc/doc.css +91 -0
- data/doc/en/cairo-antialias.html +38 -0
- data/doc/en/cairo-clip-not-representable-error.html +47 -0
- data/doc/en/cairo-color-base.html +69 -0
- data/doc/en/cairo-color-cmyk.html +157 -0
- data/doc/en/cairo-color-hsv.html +137 -0
- data/doc/en/cairo-color-rgb.html +142 -0
- data/doc/en/cairo-color-x11.html +173 -0
- data/doc/en/cairo-color.html +238 -0
- data/doc/en/cairo-content.html +37 -0
- data/doc/en/cairo-context-blur.html +39 -0
- data/doc/en/cairo-context-circle.html +39 -0
- data/doc/en/cairo-context-color.html +39 -0
- data/doc/en/cairo-context-path.html +44 -0
- data/doc/en/cairo-context-rectangle.html +39 -0
- data/doc/en/cairo-context-triangle.html +39 -0
- data/doc/en/cairo-context.html +643 -0
- data/doc/en/cairo-error.html +44 -0
- data/doc/en/cairo-extend.html +38 -0
- data/doc/en/cairo-file-not-found.html +47 -0
- data/doc/en/cairo-fill-rule.html +36 -0
- data/doc/en/cairo-filter.html +40 -0
- data/doc/en/cairo-font-extents.html +129 -0
- data/doc/en/cairo-font-face.html +38 -0
- data/doc/en/cairo-font-options.html +139 -0
- data/doc/en/cairo-font-slant.html +37 -0
- data/doc/en/cairo-font-type-mismatch.html +47 -0
- data/doc/en/cairo-font-weight.html +36 -0
- data/doc/en/cairo-format.html +46 -0
- data/doc/en/cairo-glyph.html +99 -0
- data/doc/en/cairo-gradient-pattern.html +74 -0
- data/doc/en/cairo-hint-metrics.html +37 -0
- data/doc/en/cairo-hint-style.html +39 -0
- data/doc/en/cairo-image-surface.html +82 -0
- data/doc/en/cairo-invalid-clusters.html +47 -0
- data/doc/en/cairo-invalid-content-error.html +47 -0
- data/doc/en/cairo-invalid-dash-error.html +47 -0
- data/doc/en/cairo-invalid-dsc-comment-error.html +47 -0
- data/doc/en/cairo-invalid-format-error.html +47 -0
- data/doc/en/cairo-invalid-index-error.html +47 -0
- data/doc/en/cairo-invalid-matrix-error.html +47 -0
- data/doc/en/cairo-invalid-path-data-error.html +47 -0
- data/doc/en/cairo-invalid-pop-group-error.html +47 -0
- data/doc/en/cairo-invalid-restore-error.html +47 -0
- data/doc/en/cairo-invalid-slant.html +47 -0
- data/doc/en/cairo-invalid-status-error.html +47 -0
- data/doc/en/cairo-invalid-stride-error.html +47 -0
- data/doc/en/cairo-invalid-string-error.html +47 -0
- data/doc/en/cairo-invalid-visual-error.html +47 -0
- data/doc/en/cairo-invalid-weight.html +47 -0
- data/doc/en/cairo-line-cap.html +37 -0
- data/doc/en/cairo-line-join.html +37 -0
- data/doc/en/cairo-linear-pattern.html +60 -0
- data/doc/en/cairo-matrix.html +259 -0
- data/doc/en/cairo-negative-count.html +47 -0
- data/doc/en/cairo-no-current-point-error.html +47 -0
- data/doc/en/cairo-null-pointer-error.html +47 -0
- data/doc/en/cairo-operator.html +48 -0
- data/doc/en/cairo-paper-parse-error.html +47 -0
- data/doc/en/cairo-paper-unknown-paper-name.html +66 -0
- data/doc/en/cairo-paper-unknown-unit.html +66 -0
- data/doc/en/cairo-paper-unrecognized-paper-description.html +66 -0
- data/doc/en/cairo-paper.html +184 -0
- data/doc/en/cairo-path-close-path.html +49 -0
- data/doc/en/cairo-path-curve-to.html +49 -0
- data/doc/en/cairo-path-data-type.html +38 -0
- data/doc/en/cairo-path-data.html +98 -0
- data/doc/en/cairo-path-line-to.html +49 -0
- data/doc/en/cairo-path-move-to.html +49 -0
- data/doc/en/cairo-path.html +155 -0
- data/doc/en/cairo-pattern-type-mismatch-error.html +47 -0
- data/doc/en/cairo-pattern.html +99 -0
- data/doc/en/cairo-pdf-surface.html +57 -0
- data/doc/en/cairo-point.html +74 -0
- data/doc/en/cairo-ps-level.html +49 -0
- data/doc/en/cairo-ps-surface.html +92 -0
- data/doc/en/cairo-quartz-image-surface.html +57 -0
- data/doc/en/cairo-quartz-surface.html +57 -0
- data/doc/en/cairo-radial-pattern.html +60 -0
- data/doc/en/cairo-read-error.html +47 -0
- data/doc/en/cairo-rectangle.html +89 -0
- data/doc/en/cairo-scaled-font.html +94 -0
- data/doc/en/cairo-solid-pattern.html +62 -0
- data/doc/en/cairo-subpixel-order.html +39 -0
- data/doc/en/cairo-surface-finished-error.html +47 -0
- data/doc/en/cairo-surface-pattern.html +57 -0
- data/doc/en/cairo-surface-type-mismatch-error.html +47 -0
- data/doc/en/cairo-surface.html +121 -0
- data/doc/en/cairo-svg-surface.html +77 -0
- data/doc/en/cairo-svg-version.html +49 -0
- data/doc/en/cairo-temp-file-error.html +47 -0
- data/doc/en/cairo-text-cluster-flag.html +35 -0
- data/doc/en/cairo-text-cluster.html +84 -0
- data/doc/en/cairo-text-extents.html +144 -0
- data/doc/en/cairo-toy-font-face.html +67 -0
- data/doc/en/cairo-user-font-error.html +47 -0
- data/doc/en/cairo-user-font-face-text-to-glyphs-data.html +94 -0
- data/doc/en/cairo-user-font-face.html +72 -0
- data/doc/en/cairo-user-font-immutable.html +47 -0
- data/doc/en/cairo-win32-printing-surface.html +57 -0
- data/doc/en/cairo-win32-surface.html +62 -0
- data/doc/en/cairo-write-error.html +47 -0
- data/doc/en/cairo.html +131 -0
- data/doc/en/index.html +1154 -0
- data/doc/index.html +18 -0
- data/doc/ja/cairo-antialias.html +57 -0
- data/doc/ja/cairo-clip-not-representable-error.html +56 -0
- data/doc/ja/cairo-color-base.html +75 -0
- data/doc/ja/cairo-color-cmyk.html +152 -0
- data/doc/ja/cairo-color-hsv.html +135 -0
- data/doc/ja/cairo-color-rgb.html +145 -0
- data/doc/ja/cairo-color-x11.html +183 -0
- data/doc/ja/cairo-color.html +317 -0
- data/doc/ja/cairo-content.html +51 -0
- data/doc/ja/cairo-context-blur.html +53 -0
- data/doc/ja/cairo-context-circle.html +54 -0
- data/doc/ja/cairo-context-color.html +52 -0
- data/doc/ja/cairo-context-path.html +77 -0
- data/doc/ja/cairo-context-rectangle.html +60 -0
- data/doc/ja/cairo-context-triangle.html +47 -0
- data/doc/ja/cairo-context.html +1542 -0
- data/doc/ja/cairo-error.html +56 -0
- data/doc/ja/cairo-extend.html +56 -0
- data/doc/ja/cairo-file-not-found.html +51 -0
- data/doc/ja/cairo-fill-rule.html +58 -0
- data/doc/ja/cairo-filter.html +43 -0
- data/doc/ja/cairo-font-extents.html +164 -0
- data/doc/ja/cairo-font-face.html +55 -0
- data/doc/ja/cairo-font-options.html +189 -0
- data/doc/ja/cairo-font-slant.html +50 -0
- data/doc/ja/cairo-font-type-mismatch.html +52 -0
- data/doc/ja/cairo-font-weight.html +47 -0
- data/doc/ja/cairo-format.html +81 -0
- data/doc/ja/cairo-glyph.html +115 -0
- data/doc/ja/cairo-gradient-pattern.html +119 -0
- data/doc/ja/cairo-hint-metrics.html +57 -0
- data/doc/ja/cairo-hint-style.html +64 -0
- data/doc/ja/cairo-image-surface.html +131 -0
- data/doc/ja/cairo-invalid-clusters.html +55 -0
- data/doc/ja/cairo-invalid-content-error.html +54 -0
- data/doc/ja/cairo-invalid-dash-error.html +54 -0
- data/doc/ja/cairo-invalid-dsc-comment-error.html +54 -0
- data/doc/ja/cairo-invalid-format-error.html +54 -0
- data/doc/ja/cairo-invalid-index-error.html +54 -0
- data/doc/ja/cairo-invalid-matrix-error.html +54 -0
- data/doc/ja/cairo-invalid-path-data-error.html +54 -0
- data/doc/ja/cairo-invalid-pop-group-error.html +54 -0
- data/doc/ja/cairo-invalid-restore-error.html +55 -0
- data/doc/ja/cairo-invalid-slant.html +57 -0
- data/doc/ja/cairo-invalid-status-error.html +55 -0
- data/doc/ja/cairo-invalid-stride-error.html +55 -0
- data/doc/ja/cairo-invalid-string-error.html +54 -0
- data/doc/ja/cairo-invalid-visual-error.html +57 -0
- data/doc/ja/cairo-invalid-weight.html +57 -0
- data/doc/ja/cairo-line-cap.html +50 -0
- data/doc/ja/cairo-line-join.html +53 -0
- data/doc/ja/cairo-linear-pattern.html +87 -0
- data/doc/ja/cairo-matrix.html +354 -0
- data/doc/ja/cairo-negative-count.html +52 -0
- data/doc/ja/cairo-no-current-point-error.html +54 -0
- data/doc/ja/cairo-null-pointer-error.html +54 -0
- data/doc/ja/cairo-operator.html +51 -0
- data/doc/ja/cairo-paper-parse-error.html +55 -0
- data/doc/ja/cairo-paper-unknown-paper-name.html +76 -0
- data/doc/ja/cairo-paper-unknown-unit.html +75 -0
- data/doc/ja/cairo-paper-unrecognized-paper-description.html +76 -0
- data/doc/ja/cairo-paper.html +357 -0
- data/doc/ja/cairo-path-close-path.html +57 -0
- data/doc/ja/cairo-path-curve-to.html +70 -0
- data/doc/ja/cairo-path-data-type.html +53 -0
- data/doc/ja/cairo-path-data.html +127 -0
- data/doc/ja/cairo-path-line-to.html +62 -0
- data/doc/ja/cairo-path-move-to.html +62 -0
- data/doc/ja/cairo-path.html +144 -0
- data/doc/ja/cairo-pattern-type-mismatch-error.html +56 -0
- data/doc/ja/cairo-pattern.html +128 -0
- data/doc/ja/cairo-pdf-surface.html +86 -0
- data/doc/ja/cairo-point.html +90 -0
- data/doc/ja/cairo-ps-level.html +62 -0
- data/doc/ja/cairo-ps-surface.html +214 -0
- data/doc/ja/cairo-quartz-image-surface.html +75 -0
- data/doc/ja/cairo-quartz-surface.html +93 -0
- data/doc/ja/cairo-radial-pattern.html +93 -0
- data/doc/ja/cairo-read-error.html +55 -0
- data/doc/ja/cairo-rectangle.html +109 -0
- data/doc/ja/cairo-scaled-font.html +180 -0
- data/doc/ja/cairo-solid-pattern.html +87 -0
- data/doc/ja/cairo-subpixel-order.html +57 -0
- data/doc/ja/cairo-surface-finished-error.html +54 -0
- data/doc/ja/cairo-surface-pattern.html +68 -0
- data/doc/ja/cairo-surface-type-mismatch-error.html +56 -0
- data/doc/ja/cairo-surface.html +213 -0
- data/doc/ja/cairo-svg-surface.html +114 -0
- data/doc/ja/cairo-svg-version.html +66 -0
- data/doc/ja/cairo-temp-file-error.html +50 -0
- data/doc/ja/cairo-text-cluster-flag.html +46 -0
- data/doc/ja/cairo-text-cluster.html +102 -0
- data/doc/ja/cairo-text-extents.html +163 -0
- data/doc/ja/cairo-toy-font-face.html +107 -0
- data/doc/ja/cairo-user-font-error.html +55 -0
- data/doc/ja/cairo-user-font-face-text-to-glyphs-data.html +156 -0
- data/doc/ja/cairo-user-font-face.html +268 -0
- data/doc/ja/cairo-user-font-immutable.html +54 -0
- data/doc/ja/cairo-win32-printing-surface.html +80 -0
- data/doc/ja/cairo-win32-surface.html +100 -0
- data/doc/ja/cairo-write-error.html +55 -0
- data/doc/ja/cairo.html +177 -0
- data/doc/ja/index.html +1156 -0
- data/ext/cairo/cairo.def +104 -0
- data/ext/cairo/extconf.rb +80 -0
- data/ext/cairo/rb_cairo.c +104 -0
- data/ext/cairo/rb_cairo.h +275 -0
- data/ext/cairo/rb_cairo_constants.c +478 -0
- data/ext/cairo/rb_cairo_context.c +1693 -0
- data/ext/cairo/rb_cairo_exception.c +354 -0
- data/ext/cairo/rb_cairo_font_extents.c +200 -0
- data/ext/cairo/rb_cairo_font_face.c +713 -0
- data/ext/cairo/rb_cairo_font_options.c +197 -0
- data/ext/cairo/rb_cairo_glyph.c +161 -0
- data/ext/cairo/rb_cairo_matrix.c +366 -0
- data/ext/cairo/rb_cairo_path.c +459 -0
- data/ext/cairo/rb_cairo_pattern.c +540 -0
- data/ext/cairo/rb_cairo_private.c +242 -0
- data/ext/cairo/rb_cairo_private.h +114 -0
- data/ext/cairo/rb_cairo_scaled_font.c +235 -0
- data/ext/cairo/rb_cairo_surface.c +1371 -0
- data/ext/cairo/rb_cairo_text_cluster.c +151 -0
- data/ext/cairo/rb_cairo_text_extents.c +221 -0
- data/extconf.rb +45 -0
- data/lib/1.8/cairo.so +0 -0
- data/lib/1.9/cairo.so +0 -0
- data/lib/cairo.rb +151 -0
- data/lib/cairo/color.rb +267 -0
- data/lib/cairo/colors.rb +656 -0
- data/lib/cairo/constants.rb +24 -0
- data/lib/cairo/context.rb +29 -0
- data/lib/cairo/context/blur.rb +45 -0
- data/lib/cairo/context/circle.rb +9 -0
- data/lib/cairo/context/color.rb +11 -0
- data/lib/cairo/context/path.rb +116 -0
- data/lib/cairo/context/rectangle.rb +33 -0
- data/lib/cairo/context/triangle.rb +12 -0
- data/lib/cairo/paper.rb +183 -0
- data/lib/cairo/papers.rb +41 -0
- data/lib/cairo/path.rb +15 -0
- data/lib/cairo/point.rb +7 -0
- data/misc/update-colors.rb +143 -0
- data/pkg-config.rb +313 -0
- data/samples/agg/README +4 -0
- data/samples/agg/aa_test.rb +304 -0
- data/samples/blur.rb +47 -0
- data/samples/pac.rb +99 -0
- data/samples/pac2.rb +171 -0
- data/samples/png.rb +45 -0
- data/samples/scalable.rb +56 -0
- data/samples/text-on-path.rb +60 -0
- data/samples/text2.rb +131 -0
- data/test-unit/Rakefile +30 -0
- data/test-unit/bin/testrb +5 -0
- data/test-unit/lib/test/unit.rb +280 -0
- data/test-unit/lib/test/unit/assertionfailederror.rb +14 -0
- data/test-unit/lib/test/unit/assertions.rb +722 -0
- data/test-unit/lib/test/unit/attribute.rb +125 -0
- data/test-unit/lib/test/unit/autorunner.rb +254 -0
- data/test-unit/lib/test/unit/collector.rb +43 -0
- data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
- data/test-unit/lib/test/unit/collector/dir.rb +108 -0
- data/test-unit/lib/test/unit/collector/load.rb +135 -0
- data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
- data/test-unit/lib/test/unit/color.rb +61 -0
- data/test-unit/lib/test/unit/diff.rb +524 -0
- data/test-unit/lib/test/unit/error.rb +124 -0
- data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
- data/test-unit/lib/test/unit/failure.rb +110 -0
- data/test-unit/lib/test/unit/fixture.rb +185 -0
- data/test-unit/lib/test/unit/notification.rb +125 -0
- data/test-unit/lib/test/unit/omission.rb +143 -0
- data/test-unit/lib/test/unit/pending.rb +146 -0
- data/test-unit/lib/test/unit/priority.rb +146 -0
- data/test-unit/lib/test/unit/runner/console.rb +46 -0
- data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
- data/test-unit/lib/test/unit/testcase.rb +281 -0
- data/test-unit/lib/test/unit/testresult.rb +89 -0
- data/test-unit/lib/test/unit/testsuite.rb +110 -0
- data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
- data/test-unit/lib/test/unit/ui/console/testrunner.rb +195 -0
- data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +49 -0
- data/test-unit/lib/test/unit/ui/testrunner.rb +20 -0
- data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
- data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
- data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
- data/test-unit/lib/test/unit/util/observable.rb +90 -0
- data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
- data/test-unit/lib/test/unit/version.rb +7 -0
- data/test-unit/sample/adder.rb +13 -0
- data/test-unit/sample/subtracter.rb +12 -0
- data/test-unit/sample/tc_adder.rb +18 -0
- data/test-unit/sample/tc_subtracter.rb +18 -0
- data/test-unit/sample/ts_examples.rb +7 -0
- data/test-unit/test/collector/test_descendant.rb +135 -0
- data/test-unit/test/collector/test_dir.rb +406 -0
- data/test-unit/test/collector/test_load.rb +333 -0
- data/test-unit/test/collector/test_objectspace.rb +98 -0
- data/test-unit/test/run-test.rb +13 -0
- data/test-unit/test/test_assertions.rb +693 -0
- data/test-unit/test/test_attribute.rb +86 -0
- data/test-unit/test/test_color.rb +37 -0
- data/test-unit/test/test_diff.rb +477 -0
- data/test-unit/test/test_emacs_runner.rb +60 -0
- data/test-unit/test/test_error.rb +26 -0
- data/test-unit/test/test_failure.rb +33 -0
- data/test-unit/test/test_fixture.rb +252 -0
- data/test-unit/test/test_notification.rb +33 -0
- data/test-unit/test/test_omission.rb +81 -0
- data/test-unit/test/test_pending.rb +70 -0
- data/test-unit/test/test_priority.rb +89 -0
- data/test-unit/test/test_testcase.rb +430 -0
- data/test-unit/test/test_testresult.rb +113 -0
- data/test-unit/test/test_testsuite.rb +129 -0
- data/test-unit/test/testunit_test_util.rb +14 -0
- data/test-unit/test/ui/test_testrunmediator.rb +20 -0
- data/test-unit/test/util/test_backtracefilter.rb +41 -0
- data/test-unit/test/util/test_observable.rb +102 -0
- data/test-unit/test/util/test_procwrapper.rb +36 -0
- data/test/cairo-test-utils.rb +18 -0
- data/test/run-test.rb +28 -0
- data/test/test_color.rb +17 -0
- data/test/test_constants.rb +16 -0
- data/test/test_context.rb +105 -0
- data/test/test_exception.rb +27 -0
- data/test/test_font_extents.rb +36 -0
- data/test/test_font_face.rb +244 -0
- data/test/test_font_options.rb +13 -0
- data/test/test_paper.rb +81 -0
- data/test/test_pkg_config.rb +123 -0
- data/test/test_scaled_font.rb +34 -0
- data/test/test_surface.rb +41 -0
- data/test/test_text_cluster.rb +32 -0
- data/test/test_text_extents.rb +40 -0
- data/test/test_text_to_glyphs_data.rb +51 -0
- data/tmp/x86-mingw32/cairo/1.8.7/fake.rb +6 -0
- data/tmp/x86-mingw32/cairo/1.8.7/mkmf.rb +1836 -0
- data/tmp/x86-mingw32/cairo/1.8.7/rbconfig.rb +183 -0
- data/tmp/x86-mingw32/cairo/1.9.2/fake.rb +6 -0
- data/tmp/x86-mingw32/cairo/1.9.2/mkmf.rb +2079 -0
- data/tmp/x86-mingw32/cairo/1.9.2/rbconfig.rb +226 -0
- metadata +437 -0
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'testunit_test_util'
|
3
|
+
|
4
|
+
class TestUnitPending < Test::Unit::TestCase
|
5
|
+
include TestUnitTestUtil
|
6
|
+
|
7
|
+
class TestCase < Test::Unit::TestCase
|
8
|
+
class << self
|
9
|
+
def suite
|
10
|
+
Test::Unit::TestSuite.new(name)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_pend
|
15
|
+
pend("1st pend")
|
16
|
+
pend("2nd pend. Should not be reached here.")
|
17
|
+
assert(true, "Should not be reached here too.")
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_pend_with_failure_in_block
|
21
|
+
pend("Wait a minute") do
|
22
|
+
raise "Not implemented yet"
|
23
|
+
end
|
24
|
+
assert(true, "Reached here.")
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_pend_with_no_failure_in_block
|
28
|
+
pend("Wait a minute") do
|
29
|
+
"Nothing raised"
|
30
|
+
end
|
31
|
+
assert(true, "Not reached here.")
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_pend
|
36
|
+
test = nil
|
37
|
+
result = _run_test("test_pend") {|t| test = t}
|
38
|
+
assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 1 pendings, " \
|
39
|
+
"0 omissions, 0 notifications",
|
40
|
+
result.to_s)
|
41
|
+
assert_fault_messages(["1st pend"], result.pendings)
|
42
|
+
assert_true(test.interrupted?)
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_pend_with_failure_in_block
|
46
|
+
test = nil
|
47
|
+
result = _run_test("test_pend_with_failure_in_block") {|t| test = t}
|
48
|
+
assert_equal("1 tests, 1 assertions, 0 failures, 0 errors, 1 pendings, " \
|
49
|
+
"0 omissions, 0 notifications",
|
50
|
+
result.to_s)
|
51
|
+
assert_fault_messages(["Wait a minute"], result.pendings)
|
52
|
+
assert_false(test.interrupted?)
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_pend_with_no_failure_in_block
|
56
|
+
test = nil
|
57
|
+
result = _run_test("test_pend_with_no_failure_in_block") {|t| test = t}
|
58
|
+
assert_equal("1 tests, 1 assertions, 1 failures, 0 errors, 0 pendings, " \
|
59
|
+
"0 omissions, 0 notifications",
|
60
|
+
result.to_s)
|
61
|
+
assert_fault_messages(["Pending block should not be passed: Wait a minute."],
|
62
|
+
result.failures)
|
63
|
+
assert_true(test.interrupted?)
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
def _run_test(name, &block)
|
68
|
+
super(TestCase, name, &block)
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
|
3
|
+
class TestUnitPriority < Test::Unit::TestCase
|
4
|
+
class TestCase < Test::Unit::TestCase
|
5
|
+
class << self
|
6
|
+
def suite
|
7
|
+
Test::Unit::TestSuite.new(name)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
priority :must
|
12
|
+
def test_must
|
13
|
+
assert(true)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_must_inherited
|
17
|
+
assert(true)
|
18
|
+
end
|
19
|
+
|
20
|
+
priority :important
|
21
|
+
def test_important
|
22
|
+
assert(true)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_important_inherited
|
26
|
+
assert(true)
|
27
|
+
end
|
28
|
+
|
29
|
+
priority :high
|
30
|
+
def test_high
|
31
|
+
assert(true)
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_high_inherited
|
35
|
+
assert(true)
|
36
|
+
end
|
37
|
+
|
38
|
+
priority :normal
|
39
|
+
def test_normal
|
40
|
+
assert(true)
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_normal_inherited
|
44
|
+
assert(true)
|
45
|
+
end
|
46
|
+
|
47
|
+
priority :low
|
48
|
+
def test_low
|
49
|
+
assert(true)
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_low_inherited
|
53
|
+
assert(true)
|
54
|
+
end
|
55
|
+
|
56
|
+
priority :never
|
57
|
+
def test_never
|
58
|
+
assert(true)
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_never_inherited
|
62
|
+
assert(true)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_priority
|
67
|
+
assert_priority("must", 1.0, 0.0001)
|
68
|
+
assert_priority("important", 0.9, 0.09)
|
69
|
+
assert_priority("high", 0.70, 0.1)
|
70
|
+
assert_priority("normal", 0.5, 0.1)
|
71
|
+
assert_priority("low", 0.25, 0.1)
|
72
|
+
assert_priority("never", 0.0, 0.0001)
|
73
|
+
end
|
74
|
+
|
75
|
+
def assert_priority(priority, expected, delta)
|
76
|
+
assert_need_to_run("test_#{priority}", expected, delta)
|
77
|
+
assert_need_to_run("test_#{priority}_inherited", expected, delta)
|
78
|
+
end
|
79
|
+
|
80
|
+
def assert_need_to_run(test_name, expected, delta)
|
81
|
+
test = TestCase.new(test_name)
|
82
|
+
n = 1000
|
83
|
+
n_need_to_run = 0
|
84
|
+
n.times do |i|
|
85
|
+
n_need_to_run +=1 if Test::Unit::Priority::Checker.need_to_run?(test)
|
86
|
+
end
|
87
|
+
assert_in_delta(expected, n_need_to_run.to_f / n, delta)
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,430 @@
|
|
1
|
+
# Author:: Nathaniel Talbott.
|
2
|
+
# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
|
3
|
+
# License:: Ruby license.
|
4
|
+
|
5
|
+
require 'test/unit'
|
6
|
+
|
7
|
+
module Test
|
8
|
+
module Unit
|
9
|
+
class TC_TestCase < TestCase
|
10
|
+
def test_creation
|
11
|
+
tc = Class.new(TestCase) do
|
12
|
+
def test_with_arguments(arg1, arg2)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
caught = true
|
17
|
+
catch(:invalid_test) do
|
18
|
+
tc.new(:test_with_arguments)
|
19
|
+
caught = false
|
20
|
+
end
|
21
|
+
check("Should have caught an invalid test when there are arguments", caught)
|
22
|
+
|
23
|
+
caught = true
|
24
|
+
catch(:invalid_test) do
|
25
|
+
tc.new(:non_existent_test)
|
26
|
+
caught = false
|
27
|
+
end
|
28
|
+
check("Should have caught an invalid test when the method does not exist", caught)
|
29
|
+
end
|
30
|
+
|
31
|
+
def setup
|
32
|
+
@tc_failure_error = Class.new(TestCase) do
|
33
|
+
def test_failure
|
34
|
+
assert_block("failure") { false }
|
35
|
+
end
|
36
|
+
def test_error
|
37
|
+
1 / 0
|
38
|
+
end
|
39
|
+
def test_nested_failure
|
40
|
+
nested
|
41
|
+
end
|
42
|
+
def nested
|
43
|
+
assert_block("nested"){false}
|
44
|
+
end
|
45
|
+
def return_passed?
|
46
|
+
return passed?
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def @tc_failure_error.name
|
51
|
+
"TC_FailureError"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_add_failed_assertion
|
56
|
+
test_case = @tc_failure_error.new(:test_failure)
|
57
|
+
check("passed? should start out true", test_case.return_passed?)
|
58
|
+
result = TestResult.new
|
59
|
+
called = false
|
60
|
+
result.add_listener(TestResult::FAULT) {
|
61
|
+
| fault |
|
62
|
+
check("Should have a Failure", fault.instance_of?(Failure))
|
63
|
+
check("The Failure should have the correct message", "failure" == fault.message)
|
64
|
+
check("The Failure should have the correct test_name (was <#{fault.test_name}>)", fault.test_name == "test_failure(TC_FailureError)")
|
65
|
+
r = /\A.*#{Regexp.escape(File.basename(__FILE__))}:\d+:in `test_failure'\Z/
|
66
|
+
|
67
|
+
location = fault.location
|
68
|
+
check("The location should be an array", location.kind_of?(Array))
|
69
|
+
check("The location should have two lines (was: <#{location.inspect}>)", location.size == 2)
|
70
|
+
check("The Failure should have the correct location (was <#{location[0].inspect}>, expected <#{r.inspect}>)", r =~ location[0])
|
71
|
+
called = true
|
72
|
+
}
|
73
|
+
progress = []
|
74
|
+
test_case.run(result) { |*arguments| progress << arguments }
|
75
|
+
check("The failure should have triggered the listener", called)
|
76
|
+
check("The failure should have set passed?", !test_case.return_passed?)
|
77
|
+
check("The progress block should have been updated correctly", [[TestCase::STARTED, test_case.name], [TestCase::FINISHED, test_case.name]] == progress)
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_add_failure_nested
|
81
|
+
test_case = @tc_failure_error.new(:test_nested_failure)
|
82
|
+
check("passed? should start out true", test_case.return_passed?)
|
83
|
+
|
84
|
+
result = TestResult.new
|
85
|
+
called = false
|
86
|
+
result.add_listener(TestResult::FAULT) {
|
87
|
+
| fault |
|
88
|
+
check("Should have a Failure", fault.instance_of?(Failure))
|
89
|
+
check("The Failure should have the correct message", "nested" == fault.message)
|
90
|
+
check("The Failure should have the correct test_name (was <#{fault.test_name}>)", fault.test_name == "test_nested_failure(TC_FailureError)")
|
91
|
+
r =
|
92
|
+
|
93
|
+
location = fault.location
|
94
|
+
check("The location should be an array", location.kind_of?(Array))
|
95
|
+
check("The location should have the correct number of lines (was: <#{location.inspect}>)", location.size == 3)
|
96
|
+
check("The Failure should have the correct location (was <#{location[0].inspect}>)", /\A.*#{Regexp.escape(File.basename(__FILE__))}:\d+:in `nested'\Z/ =~ location[0])
|
97
|
+
check("The Failure should have the correct location (was <#{location[1].inspect}>)", /\A.*#{Regexp.escape(File.basename(__FILE__))}:\d+:in `test_nested_failure'\Z/ =~ location[1])
|
98
|
+
called = true
|
99
|
+
}
|
100
|
+
test_case.run(result){}
|
101
|
+
check("The failure should have triggered the listener", called)
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_add_error
|
105
|
+
test_case = @tc_failure_error.new(:test_error)
|
106
|
+
check("passed? should start out true", test_case.return_passed?)
|
107
|
+
result = TestResult.new
|
108
|
+
called = false
|
109
|
+
result.add_listener(TestResult::FAULT) {
|
110
|
+
| fault |
|
111
|
+
check("Should have a TestError", fault.instance_of?(Error))
|
112
|
+
check("The Error should have the correct message", "ZeroDivisionError: divided by 0" == fault.message)
|
113
|
+
check("The Error should have the correct test_name", "test_error(TC_FailureError)" == fault.test_name)
|
114
|
+
check("The Error should have the correct exception", fault.exception.instance_of?(ZeroDivisionError))
|
115
|
+
called = true
|
116
|
+
}
|
117
|
+
test_case.run(result) {}
|
118
|
+
check("The error should have triggered the listener", called)
|
119
|
+
check("The error should have set passed?", !test_case.return_passed?)
|
120
|
+
end
|
121
|
+
|
122
|
+
def test_no_tests
|
123
|
+
suite = TestCase.suite
|
124
|
+
check("Should have a test suite", suite.instance_of?(TestSuite))
|
125
|
+
check("Should have one test", suite.size == 1)
|
126
|
+
check("Should have the default test", suite.tests.first.name == "default_test(Test::Unit::TestCase)")
|
127
|
+
|
128
|
+
result = TestResult.new
|
129
|
+
suite.run(result) {}
|
130
|
+
check("Should have had one test run", result.run_count == 1)
|
131
|
+
check("Should have had one test failure", result.failure_count == 1)
|
132
|
+
check("Should have had no errors", result.error_count == 0)
|
133
|
+
end
|
134
|
+
|
135
|
+
def test_suite
|
136
|
+
tc = Class.new(TestCase) do
|
137
|
+
def test_succeed
|
138
|
+
assert_block {true}
|
139
|
+
end
|
140
|
+
def test_fail
|
141
|
+
assert_block {false}
|
142
|
+
end
|
143
|
+
def test_error
|
144
|
+
1/0
|
145
|
+
end
|
146
|
+
def dont_run
|
147
|
+
assert_block {true}
|
148
|
+
end
|
149
|
+
def test_dont_run(argument)
|
150
|
+
assert_block {true}
|
151
|
+
end
|
152
|
+
def test
|
153
|
+
assert_block {true}
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
suite = tc.suite
|
158
|
+
check("Should have a test suite", suite.instance_of?(TestSuite))
|
159
|
+
check("Should have three tests", suite.size == 3)
|
160
|
+
|
161
|
+
result = TestResult.new
|
162
|
+
suite.run(result) {}
|
163
|
+
check("Should have had three test runs", result.run_count == 3)
|
164
|
+
check("Should have had one test failure", result.failure_count == 1)
|
165
|
+
check("Should have had one test error", result.error_count == 1)
|
166
|
+
end
|
167
|
+
|
168
|
+
|
169
|
+
def test_setup_teardown
|
170
|
+
tc = Class.new(TestCase) do
|
171
|
+
attr_reader(:setup_called, :teardown_called)
|
172
|
+
def initialize(test)
|
173
|
+
super(test)
|
174
|
+
@setup_called = false
|
175
|
+
@teardown_called = false
|
176
|
+
end
|
177
|
+
def setup
|
178
|
+
@setup_called = true
|
179
|
+
end
|
180
|
+
def teardown
|
181
|
+
@teardown_called = true
|
182
|
+
end
|
183
|
+
def test_succeed
|
184
|
+
assert_block {true}
|
185
|
+
end
|
186
|
+
def test_fail
|
187
|
+
assert_block {false}
|
188
|
+
end
|
189
|
+
def test_error
|
190
|
+
raise "Error!"
|
191
|
+
end
|
192
|
+
end
|
193
|
+
result = TestResult.new
|
194
|
+
|
195
|
+
test = tc.new(:test_succeed)
|
196
|
+
test.run(result) {}
|
197
|
+
check("Should have called setup the correct number of times", test.setup_called)
|
198
|
+
check("Should have called teardown the correct number of times", test.teardown_called)
|
199
|
+
|
200
|
+
test = tc.new(:test_fail)
|
201
|
+
test.run(result) {}
|
202
|
+
check("Should have called setup the correct number of times", test.setup_called)
|
203
|
+
check("Should have called teardown the correct number of times", test.teardown_called)
|
204
|
+
|
205
|
+
test = tc.new(:test_error)
|
206
|
+
test.run(result) {}
|
207
|
+
check("Should have called setup the correct number of times", test.setup_called)
|
208
|
+
check("Should have called teardown the correct number of times", test.teardown_called)
|
209
|
+
|
210
|
+
check("Should have had two test runs", result.run_count == 3)
|
211
|
+
check("Should have had a test failure", result.failure_count == 1)
|
212
|
+
check("Should have had a test error", result.error_count == 1)
|
213
|
+
end
|
214
|
+
|
215
|
+
def test_assertion_failed_not_called
|
216
|
+
tc = Class.new(TestCase) do
|
217
|
+
def test_thing
|
218
|
+
raise AssertionFailedError.new
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
suite = tc.suite
|
223
|
+
check("Should have one test", suite.size == 1)
|
224
|
+
result = TestResult.new
|
225
|
+
suite.run(result) {}
|
226
|
+
check("Should have had one test run", result.run_count == 1)
|
227
|
+
check("Should have had one assertion failure", result.failure_count == 1)
|
228
|
+
check("Should not have any assertion errors but had #{result.error_count}", result.error_count == 0)
|
229
|
+
end
|
230
|
+
|
231
|
+
def test_equality
|
232
|
+
tc1 = Class.new(TestCase) do
|
233
|
+
def test_1
|
234
|
+
end
|
235
|
+
def test_2
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
tc2 = Class.new(TestCase) do
|
240
|
+
def test_1
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
test1 = tc1.new('test_1')
|
245
|
+
test2 = tc1.new('test_1')
|
246
|
+
check("Should be equal", test1 == test2)
|
247
|
+
check("Should be equal", test2 == test1)
|
248
|
+
|
249
|
+
test1 = tc1.new('test_2')
|
250
|
+
check("Should not be equal", test1 != test2)
|
251
|
+
check("Should not be equal", test2 != test1)
|
252
|
+
|
253
|
+
test2 = tc1.new('test_2')
|
254
|
+
check("Should be equal", test1 == test2)
|
255
|
+
check("Should be equal", test2 == test1)
|
256
|
+
|
257
|
+
test1 = tc1.new('test_1')
|
258
|
+
test2 = tc2.new('test_1')
|
259
|
+
check("Should not be equal", test1 != test2)
|
260
|
+
check("Should not be equal", test2 != test1)
|
261
|
+
|
262
|
+
|
263
|
+
check("Should not be equal", test1 != Object.new)
|
264
|
+
check("Should not be equal", Object.new != test1)
|
265
|
+
end
|
266
|
+
|
267
|
+
def test_re_raise_exception
|
268
|
+
test_case = Class.new(TestCase) do
|
269
|
+
def test_raise_interrupt
|
270
|
+
raise Interrupt
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
274
|
+
test = test_case.new("test_raise_interrupt")
|
275
|
+
begin
|
276
|
+
test.run(TestResult.new) {}
|
277
|
+
check("Should not be reached", false)
|
278
|
+
rescue Exception
|
279
|
+
check("Interrupt exception should be re-raised", $!.class == Interrupt)
|
280
|
+
end
|
281
|
+
end
|
282
|
+
|
283
|
+
def test_startup_shutdown
|
284
|
+
called = []
|
285
|
+
test_case = Class.new(TestCase) do
|
286
|
+
@@called = called
|
287
|
+
class << self
|
288
|
+
def startup
|
289
|
+
@@called << :startup
|
290
|
+
end
|
291
|
+
|
292
|
+
def shutdown
|
293
|
+
@@called << :shutdown
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
def setup
|
298
|
+
@@called << :setup
|
299
|
+
end
|
300
|
+
|
301
|
+
def teardown
|
302
|
+
@@called << :teardown
|
303
|
+
end
|
304
|
+
|
305
|
+
def test1
|
306
|
+
end
|
307
|
+
|
308
|
+
def test2
|
309
|
+
end
|
310
|
+
end
|
311
|
+
|
312
|
+
test_suite = test_case.suite
|
313
|
+
test_suite.run(TestResult.new) {}
|
314
|
+
check("startup/shutdown should be called once per test case" +
|
315
|
+
": #{called.inspect}",
|
316
|
+
called == [:startup,
|
317
|
+
:setup, :teardown,
|
318
|
+
:setup, :teardown,
|
319
|
+
:shutdown])
|
320
|
+
end
|
321
|
+
|
322
|
+
def test_error_on_startup
|
323
|
+
test_case = Class.new(TestCase) do
|
324
|
+
class << self
|
325
|
+
def startup
|
326
|
+
raise "from startup"
|
327
|
+
end
|
328
|
+
end
|
329
|
+
|
330
|
+
def test_nothing
|
331
|
+
end
|
332
|
+
end
|
333
|
+
|
334
|
+
test_suite = test_case.suite
|
335
|
+
result = TestResult.new
|
336
|
+
test_suite.run(result) {}
|
337
|
+
check("Should record an error on startup: #{result}",
|
338
|
+
result.error_count == 1)
|
339
|
+
end
|
340
|
+
|
341
|
+
def test_pass_through_error_on_startup
|
342
|
+
test_case = Class.new(TestCase) do
|
343
|
+
class << self
|
344
|
+
def startup
|
345
|
+
raise Interrupt
|
346
|
+
end
|
347
|
+
end
|
348
|
+
|
349
|
+
def test_nothing
|
350
|
+
end
|
351
|
+
end
|
352
|
+
|
353
|
+
test_suite = test_case.suite
|
354
|
+
begin
|
355
|
+
test_suite.run(TestResult.new) {}
|
356
|
+
check("Should not be reached", false)
|
357
|
+
rescue Exception
|
358
|
+
check("Interrupt should be passed through: #{$!}",
|
359
|
+
Interrupt === $!)
|
360
|
+
end
|
361
|
+
end
|
362
|
+
|
363
|
+
def test_error_on_shutdown
|
364
|
+
test_case = Class.new(TestCase) do
|
365
|
+
class << self
|
366
|
+
def shutdown
|
367
|
+
raise "from shutdown"
|
368
|
+
end
|
369
|
+
end
|
370
|
+
|
371
|
+
def test_nothing
|
372
|
+
end
|
373
|
+
end
|
374
|
+
|
375
|
+
test_suite = test_case.suite
|
376
|
+
result = TestResult.new
|
377
|
+
test_suite.run(result) {}
|
378
|
+
check("Should record an error on shutdown: #{result}",
|
379
|
+
result.error_count == 1)
|
380
|
+
end
|
381
|
+
|
382
|
+
def test_pass_through_error_on_shutdown
|
383
|
+
test_case = Class.new(TestCase) do
|
384
|
+
class << self
|
385
|
+
def shutdown
|
386
|
+
raise Interrupt
|
387
|
+
end
|
388
|
+
end
|
389
|
+
|
390
|
+
def test_nothing
|
391
|
+
end
|
392
|
+
end
|
393
|
+
|
394
|
+
test_suite = test_case.suite
|
395
|
+
begin
|
396
|
+
test_suite.run(TestResult.new) {}
|
397
|
+
check("Should not be reached", false)
|
398
|
+
rescue Exception
|
399
|
+
check("Interrupt should be passed through: #{$!}",
|
400
|
+
Interrupt === $!)
|
401
|
+
end
|
402
|
+
end
|
403
|
+
|
404
|
+
def test_interrupted
|
405
|
+
test_case = Class.new(TestCase) do
|
406
|
+
def test_fail
|
407
|
+
flunk
|
408
|
+
end
|
409
|
+
|
410
|
+
def test_nothing
|
411
|
+
end
|
412
|
+
end
|
413
|
+
|
414
|
+
failed_test = test_case.new(:test_fail)
|
415
|
+
failed_test.run(TestResult.new) {}
|
416
|
+
check("Should be interrupted", failed_test.interrupted?)
|
417
|
+
|
418
|
+
success_test = test_case.new(:test_nothing)
|
419
|
+
success_test.run(TestResult.new) {}
|
420
|
+
check("Should not be interrupted", !success_test.interrupted?)
|
421
|
+
end
|
422
|
+
|
423
|
+
private
|
424
|
+
def check(message, passed)
|
425
|
+
add_assertion
|
426
|
+
raise AssertionFailedError.new(message) unless passed
|
427
|
+
end
|
428
|
+
end
|
429
|
+
end
|
430
|
+
end
|