minilab 1.1.0-x86-mswin32-60
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.
- data/CHANGES +8 -0
- data/LICENSE +19 -0
- data/README +105 -0
- data/Rakefile +83 -0
- data/config/environment.rb +23 -0
- data/config/objects.yml +23 -0
- data/lib/analog_io.rb +23 -0
- data/lib/connection_state.rb +13 -0
- data/lib/digital_auxport_io.rb +34 -0
- data/lib/digital_configuration.rb +53 -0
- data/lib/digital_port_io.rb +39 -0
- data/lib/library_translator.rb +46 -0
- data/lib/minilab.rb +130 -0
- data/lib/minilab_constants.rb +20 -0
- data/lib/minilab_context.rb +14 -0
- data/lib/minilab_hardware.rb +112 -0
- data/lib/minilab_wrapper.rb +12 -0
- data/test/system/analog_input.test +3 -0
- data/test/system/analog_output.test +37 -0
- data/test/system/digital_port_input.test +5 -0
- data/test/system/digital_port_output.test +39 -0
- data/test/system/digital_port_read_byte.test +26 -0
- data/test/system/digital_screw_terminals_input.test +2 -0
- data/test/system/digital_screw_terminals_output.test +11 -0
- data/test/system/minilab_driver.rb +83 -0
- data/test/test_helper.rb +15 -0
- data/test/unit/analog_io_test.rb +54 -0
- data/test/unit/connection_state_test.rb +18 -0
- data/test/unit/digital_auxport_io_test.rb +102 -0
- data/test/unit/digital_configuration_test.rb +100 -0
- data/test/unit/digital_port_io_test.rb +67 -0
- data/test/unit/library_translator_test.rb +98 -0
- data/test/unit/minilab_context_test.rb +23 -0
- data/test/unit/minilab_hardware_test.rb +33 -0
- data/test/unit/minilab_test.rb +115 -0
- data/test/unit/minilab_wrapper_test.rb +24 -0
- data/vendor/behaviors/lib/behaviors.rb +50 -0
- data/vendor/behaviors/tasks/behaviors_tasks.rake +140 -0
- data/vendor/behaviors/test/behaviors_tasks_test.rb +71 -0
- data/vendor/behaviors/test/behaviors_test.rb +50 -0
- data/vendor/behaviors/test/tasks_test/Rakefile +16 -0
- data/vendor/behaviors/test/tasks_test/doc/behaviors.html +55 -0
- data/vendor/behaviors/test/tasks_test/lib/user.rb +2 -0
- data/vendor/behaviors/test/tasks_test/test/user_test.rb +17 -0
- data/vendor/constructor-1.0.2/History.txt +11 -0
- data/vendor/constructor-1.0.2/Manifest.txt +6 -0
- data/vendor/constructor-1.0.2/README.txt +77 -0
- data/vendor/constructor-1.0.2/Rakefile +33 -0
- data/vendor/constructor-1.0.2/lib/constructor.rb +119 -0
- data/vendor/constructor-1.0.2/specs/constructor_spec.rb +345 -0
- data/vendor/diy-1.1.1/History.txt +23 -0
- data/vendor/diy-1.1.1/Manifest.txt +88 -0
- data/vendor/diy-1.1.1/README.txt +220 -0
- data/vendor/diy-1.1.1/Rakefile +29 -0
- data/vendor/diy-1.1.1/TODO.txt +9 -0
- data/vendor/diy-1.1.1/homepage/Notes.txt +27 -0
- data/vendor/diy-1.1.1/homepage/Rakefile +14 -0
- data/vendor/diy-1.1.1/homepage/diy_example.png +0 -0
- data/vendor/diy-1.1.1/homepage/index.erb +36 -0
- data/vendor/diy-1.1.1/homepage/index.html +45 -0
- data/vendor/diy-1.1.1/homepage/objects_yml.png +0 -0
- data/vendor/diy-1.1.1/homepage/page_header.graffle +0 -0
- data/vendor/diy-1.1.1/homepage/page_header.html +9 -0
- data/vendor/diy-1.1.1/homepage/page_header.png +0 -0
- data/vendor/diy-1.1.1/lib/diy.rb +365 -0
- data/vendor/diy-1.1.1/sample_code/car.rb +7 -0
- data/vendor/diy-1.1.1/sample_code/chassis.rb +5 -0
- data/vendor/diy-1.1.1/sample_code/diy_example.rb +26 -0
- data/vendor/diy-1.1.1/sample_code/engine.rb +5 -0
- data/vendor/diy-1.1.1/sample_code/objects.yml +10 -0
- data/vendor/diy-1.1.1/test/constructor.rb +119 -0
- data/vendor/diy-1.1.1/test/diy_test.rb +604 -0
- data/vendor/diy-1.1.1/test/files/broken_construction.yml +7 -0
- data/vendor/diy-1.1.1/test/files/cat/cat.rb +3 -0
- data/vendor/diy-1.1.1/test/files/cat/extra_conflict.yml +5 -0
- data/vendor/diy-1.1.1/test/files/cat/heritage.rb +2 -0
- data/vendor/diy-1.1.1/test/files/cat/needs_input.yml +3 -0
- data/vendor/diy-1.1.1/test/files/cat/the_cat_lineage.rb +1 -0
- data/vendor/diy-1.1.1/test/files/dog/dog_model.rb +3 -0
- data/vendor/diy-1.1.1/test/files/dog/dog_presenter.rb +3 -0
- data/vendor/diy-1.1.1/test/files/dog/dog_view.rb +2 -0
- data/vendor/diy-1.1.1/test/files/dog/file_resolver.rb +2 -0
- data/vendor/diy-1.1.1/test/files/dog/other_thing.rb +2 -0
- data/vendor/diy-1.1.1/test/files/dog/simple.yml +11 -0
- data/vendor/diy-1.1.1/test/files/donkey/foo.rb +8 -0
- data/vendor/diy-1.1.1/test/files/donkey/foo/bar/qux.rb +7 -0
- data/vendor/diy-1.1.1/test/files/fud/objects.yml +13 -0
- data/vendor/diy-1.1.1/test/files/fud/toy.rb +14 -0
- data/vendor/diy-1.1.1/test/files/functions/invalid_method.yml +5 -0
- data/vendor/diy-1.1.1/test/files/functions/method_extractor.rb +3 -0
- data/vendor/diy-1.1.1/test/files/functions/nonsingleton_objects.yml +6 -0
- data/vendor/diy-1.1.1/test/files/functions/objects.yml +11 -0
- data/vendor/diy-1.1.1/test/files/functions/thing.rb +3 -0
- data/vendor/diy-1.1.1/test/files/functions/thing_builder.rb +21 -0
- data/vendor/diy-1.1.1/test/files/functions/things_builder.rb +3 -0
- data/vendor/diy-1.1.1/test/files/gnu/objects.yml +14 -0
- data/vendor/diy-1.1.1/test/files/gnu/thinger.rb +7 -0
- data/vendor/diy-1.1.1/test/files/goat/base.rb +8 -0
- data/vendor/diy-1.1.1/test/files/goat/can.rb +6 -0
- data/vendor/diy-1.1.1/test/files/goat/goat.rb +6 -0
- data/vendor/diy-1.1.1/test/files/goat/objects.yml +12 -0
- data/vendor/diy-1.1.1/test/files/goat/paper.rb +6 -0
- data/vendor/diy-1.1.1/test/files/goat/plane.rb +7 -0
- data/vendor/diy-1.1.1/test/files/goat/shirt.rb +6 -0
- data/vendor/diy-1.1.1/test/files/goat/wings.rb +8 -0
- data/vendor/diy-1.1.1/test/files/horse/holder_thing.rb +3 -0
- data/vendor/diy-1.1.1/test/files/horse/objects.yml +7 -0
- data/vendor/diy-1.1.1/test/files/namespace/animal/bird.rb +5 -0
- data/vendor/diy-1.1.1/test/files/namespace/animal/cat.rb +5 -0
- data/vendor/diy-1.1.1/test/files/namespace/animal/reptile/hardshell/turtle.rb +8 -0
- data/vendor/diy-1.1.1/test/files/namespace/animal/reptile/lizard.rb +7 -0
- data/vendor/diy-1.1.1/test/files/namespace/bad_module_specified.yml +8 -0
- data/vendor/diy-1.1.1/test/files/namespace/class_name_combine.yml +8 -0
- data/vendor/diy-1.1.1/test/files/namespace/hello.txt +1 -0
- data/vendor/diy-1.1.1/test/files/namespace/no_module_specified.yml +8 -0
- data/vendor/diy-1.1.1/test/files/namespace/objects.yml +21 -0
- data/vendor/diy-1.1.1/test/files/namespace/road.rb +2 -0
- data/vendor/diy-1.1.1/test/files/namespace/sky.rb +2 -0
- data/vendor/diy-1.1.1/test/files/namespace/subcontext.yml +22 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/air.rb +2 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/fat_cat.rb +3 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/objects.yml +19 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/pig.rb +3 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/thread_spinner.rb +3 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/tick.rb +3 -0
- data/vendor/diy-1.1.1/test/files/non_singleton/yard.rb +2 -0
- data/vendor/diy-1.1.1/test/files/yak/core_model.rb +3 -0
- data/vendor/diy-1.1.1/test/files/yak/core_presenter.rb +3 -0
- data/vendor/diy-1.1.1/test/files/yak/core_view.rb +1 -0
- data/vendor/diy-1.1.1/test/files/yak/data_source.rb +1 -0
- data/vendor/diy-1.1.1/test/files/yak/fringe_model.rb +3 -0
- data/vendor/diy-1.1.1/test/files/yak/fringe_presenter.rb +3 -0
- data/vendor/diy-1.1.1/test/files/yak/fringe_view.rb +1 -0
- data/vendor/diy-1.1.1/test/files/yak/giant_squid.rb +3 -0
- data/vendor/diy-1.1.1/test/files/yak/krill.rb +2 -0
- data/vendor/diy-1.1.1/test/files/yak/my_objects.yml +21 -0
- data/vendor/diy-1.1.1/test/files/yak/sub_sub_context_test.yml +27 -0
- data/vendor/diy-1.1.1/test/test_helper.rb +39 -0
- data/vendor/ffi-0.4.0-x86-mswin32/LICENSE +51 -0
- data/vendor/ffi-0.4.0-x86-mswin32/Rakefile +142 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/AbstractMemory.c +412 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/AbstractMemory.h +68 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/AutoPointer.c +60 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/AutoPointer.h +18 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Buffer.c +171 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Callback.c +374 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Callback.h +47 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/DynamicLibrary.c +213 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/DynamicLibrary.h +22 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Invoker.c +962 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/LastError.c +135 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/LastError.h +18 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/MemoryPointer.c +156 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/MemoryPointer.h +20 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/NullPointer.c +143 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Platform.c +59 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Platform.h +16 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Pointer.c +164 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Pointer.h +25 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Struct.c +477 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Struct.h +26 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Type.c +230 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Type.h +28 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Types.c +118 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/Types.h +54 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/compat.h +22 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/endian.h +40 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/extconf.rb +31 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/ffi.c +76 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi.bsd.mk +34 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi.darwin.mk +75 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi.gnu.mk +29 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi.mk +13 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ChangeLog +3243 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ChangeLog.libffi +347 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ChangeLog.libgcj +40 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ChangeLog.v1 +764 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/LICENSE +21 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/Makefile.am +177 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/Makefile.in +1640 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/README +328 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/TODO +1 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/acinclude.m4 +92 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/aclocal.m4 +7516 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/compile +142 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/config.guess +1516 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/config.sub +1626 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/configure +24414 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/configure.ac +365 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/configure.host +11 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/depcomp +584 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/doc/libffi.info +533 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/doc/libffi.texi +541 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/doc/stamp-vti +4 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/doc/version.texi +4 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/fficonfig.h.in +160 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/include/Makefile.am +9 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/include/Makefile.in +422 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/include/ffi.h.in +393 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/include/ffi_common.h +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/install-sh +323 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/libffi.pc.in +10 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/libtool-version +29 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ltcf-c.sh +861 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ltcf-cxx.sh +1069 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ltcf-gcj.sh +700 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ltconfig +2862 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/ltmain.sh +6930 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/man/Makefile.am +8 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/man/Makefile.in +395 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/man/ffi.3 +31 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/man/ffi_call.3 +103 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/man/ffi_prep_cif.3 +66 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/mdate-sh +201 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/missing +353 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/mkinstalldirs +158 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/alpha/ffi.c +284 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/alpha/ffitarget.h +48 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/alpha/osf.S +366 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/arm/ffi.c +309 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/arm/ffitarget.h +49 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/arm/sysv.S +299 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/closures.c +596 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/cris/ffi.c +383 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/cris/ffitarget.h +51 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/cris/sysv.S +215 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/debug.c +59 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/dlmalloc.c +5099 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/frv/eabi.S +128 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/frv/ffi.c +292 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/frv/ffitarget.h +61 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/ia64/ffi.c +580 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/ia64/ffitarget.h +50 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/ia64/ia64_flags.h +40 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/ia64/unix.S +560 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/java_raw_api.c +359 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/m32r/ffi.c +232 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/m32r/ffitarget.h +48 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/m32r/sysv.S +121 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/m68k/ffi.c +278 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/m68k/ffitarget.h +49 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/m68k/sysv.S +234 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/mips/ffi.c +926 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/mips/ffitarget.h +202 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/mips/n32.S +534 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/mips/o32.S +381 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/pa/ffi.c +709 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/pa/ffitarget.h +77 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/pa/hpux32.S +368 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/pa/linux.S +357 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/aix.S +225 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/aix_closure.S +247 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/asm.h +125 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/darwin.S +245 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +317 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/ffi.c +1429 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +800 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/ffitarget.h +118 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/linux64.S +187 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +236 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +327 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/powerpc/sysv.S +230 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/prep_cif.c +174 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/raw_api.c +254 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/s390/ffi.c +780 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/s390/ffitarget.h +60 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/s390/sysv.S +434 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sh/ffi.c +716 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sh/ffitarget.h +49 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sh/sysv.S +850 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sh64/ffi.c +453 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sh64/ffitarget.h +53 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sh64/sysv.S +530 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sparc/ffi.c +610 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sparc/ffitarget.h +66 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sparc/v8.S +272 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/sparc/v9.S +307 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/types.c +77 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/darwin.S +443 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/darwin64.S +416 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/ffi.c +475 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/ffi64.c +572 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/ffitarget.h +90 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/freebsd.S +458 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/sysv.S +437 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/unix64.S +418 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/src/x86/win32.S +391 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/Makefile.am +71 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/Makefile.in +447 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/config/default.exp +1 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +289 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +263 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +45 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +36 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c +97 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c +89 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn2.c +89 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn3.c +90 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn4.c +97 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c +72 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +102 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +103 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +104 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +110 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +97 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +101 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +121 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +103 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +106 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +117 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +106 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +132 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +121 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +107 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +125 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +105 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +96 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +101 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +100 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +101 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +100 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_double.c +51 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c +51 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c +82 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c +82 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c +94 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_uchar.c +99 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushort.c +82 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_ushortchar.c +94 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c +52 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c +50 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c +50 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c +50 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c +51 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +54 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c +51 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +86 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/float.c +59 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +58 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +57 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +72 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +62 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/many.c +69 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +63 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +53 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +160 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +169 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +141 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +118 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +119 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +119 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +120 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +139 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +119 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +139 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +139 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/problem1.c +98 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +59 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c +114 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +35 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +43 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +42 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +35 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +36 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +49 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +42 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +34 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +41 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +42 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +36 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +38 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +38 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +38 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +44 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +44 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +65 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +67 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +59 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +63 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +65 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +64 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +74 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +80 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +67 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +86 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.special/special.exp +38 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc +123 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc +53 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/libffi/texinfo.tex +7482 -0
- data/vendor/ffi-0.4.0-x86-mswin32/ext/ffi_c/rbffi.h +23 -0
- data/vendor/ffi-0.4.0-x86-mswin32/gen/Rakefile +12 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/1.8/ffi_c.so +0 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/1.9/ffi_c.so +0 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi.rb +11 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/autopointer.rb +61 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/buffer.rb +0 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/callback.rb +10 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/enum.rb +78 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/errno.rb +8 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/ffi.rb +96 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/io.rb +21 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/library.rb +243 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/managedstruct.rb +55 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/memorypointer.rb +73 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/platform.rb +78 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/pointer.rb +119 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/struct.rb +354 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/tools/const_generator.rb +177 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/tools/generator.rb +58 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/tools/generator_task.rb +35 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/tools/struct_generator.rb +194 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/tools/types_generator.rb +123 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/types.rb +153 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/union.rb +17 -0
- data/vendor/ffi-0.4.0-x86-mswin32/lib/ffi/variadic.rb +30 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/bool_spec.rb +24 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/buffer_spec.rb +196 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/callback_spec.rb +560 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/enum_spec.rb +164 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/errno_spec.rb +13 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/library_spec.rb +144 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/managed_struct_spec.rb +56 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/number_spec.rb +231 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/pointer_spec.rb +195 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/rbx/attach_function_spec.rb +27 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/rbx/memory_pointer_spec.rb +102 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/rbx/spec_helper.rb +1 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/rbx/struct_spec.rb +13 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/spec_helper.rb +17 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/string_spec.rb +103 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/struct_callback_spec.rb +41 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/struct_initialize_spec.rb +30 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/struct_spec.rb +476 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/typedef_spec.rb +48 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/union_spec.rb +60 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/ffi/variadic_spec.rb +84 -0
- data/vendor/ffi-0.4.0-x86-mswin32/spec/spec.opts +4 -0
- data/vendor/hardmock-1.3.7/CHANGES +78 -0
- data/vendor/hardmock-1.3.7/LICENSE +7 -0
- data/vendor/hardmock-1.3.7/README +70 -0
- data/vendor/hardmock-1.3.7/Rakefile +8 -0
- data/vendor/hardmock-1.3.7/config/environment.rb +12 -0
- data/vendor/hardmock-1.3.7/lib/assert_error.rb +23 -0
- data/vendor/hardmock-1.3.7/lib/extend_test_unit.rb +14 -0
- data/vendor/hardmock-1.3.7/lib/hardmock.rb +86 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/errors.rb +22 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/expectation.rb +229 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/expectation_builder.rb +9 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/expector.rb +26 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/method_cleanout.rb +33 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/mock.rb +180 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/mock_control.rb +53 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/stubbing.rb +210 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/trapper.rb +31 -0
- data/vendor/hardmock-1.3.7/lib/hardmock/utils.rb +9 -0
- data/vendor/hardmock-1.3.7/lib/test_unit_before_after.rb +169 -0
- data/vendor/hardmock-1.3.7/rake_tasks/test.rake +22 -0
- data/vendor/hardmock-1.3.7/test/functional/assert_error_test.rb +52 -0
- data/vendor/hardmock-1.3.7/test/functional/auto_verify_test.rb +178 -0
- data/vendor/hardmock-1.3.7/test/functional/direct_mock_usage_test.rb +396 -0
- data/vendor/hardmock-1.3.7/test/functional/hardmock_test.rb +434 -0
- data/vendor/hardmock-1.3.7/test/functional/stubbing_test.rb +479 -0
- data/vendor/hardmock-1.3.7/test/test_helper.rb +43 -0
- data/vendor/hardmock-1.3.7/test/unit/expectation_builder_test.rb +19 -0
- data/vendor/hardmock-1.3.7/test/unit/expectation_test.rb +372 -0
- data/vendor/hardmock-1.3.7/test/unit/expector_test.rb +57 -0
- data/vendor/hardmock-1.3.7/test/unit/method_cleanout_test.rb +36 -0
- data/vendor/hardmock-1.3.7/test/unit/mock_control_test.rb +175 -0
- data/vendor/hardmock-1.3.7/test/unit/mock_test.rb +279 -0
- data/vendor/hardmock-1.3.7/test/unit/test_unit_before_after_test.rb +452 -0
- data/vendor/hardmock-1.3.7/test/unit/trapper_test.rb +62 -0
- data/vendor/hardmock-1.3.7/test/unit/verify_error_test.rb +40 -0
- data/vendor/mcc/cbw32.dll +0 -0
- data/vendor/systir/systir.rb +403 -0
- data/vendor/systir/test/unit/ui/xml/testrunner.rb +192 -0
- data/vendor/systir/test/unit/ui/xml/xmltestrunner.xslt +109 -0
- metadata +561 -0
@@ -0,0 +1,40 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../test_helper")
|
2
|
+
require 'hardmock/method_cleanout'
|
3
|
+
require 'hardmock/mock_control'
|
4
|
+
require 'hardmock/errors'
|
5
|
+
require 'hardmock/expectation_builder'
|
6
|
+
require 'hardmock/expectation'
|
7
|
+
require 'hardmock/mock'
|
8
|
+
|
9
|
+
class VerifyErrorTest < Test::Unit::TestCase
|
10
|
+
include Hardmock
|
11
|
+
|
12
|
+
#
|
13
|
+
# TESTS
|
14
|
+
#
|
15
|
+
|
16
|
+
def test_formatted_list_of_unmet_expectations
|
17
|
+
mock1 = Mock.new('mock1')
|
18
|
+
mock2 = Mock.new('mock2')
|
19
|
+
exp1 = Expectation.new( :mock => mock1, :method => 'send_parts', :arguments => [1,2,:a] )
|
20
|
+
exp2 = Expectation.new( :mock => mock2, :method => 'grind_it', :arguments => [] )
|
21
|
+
|
22
|
+
exp_list = [ exp1, exp2 ]
|
23
|
+
|
24
|
+
err = VerifyError.new("This is the error", exp_list)
|
25
|
+
assert_equal "This is the error:\n * #{exp1.to_s}\n * #{exp2.to_s}", err.message
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_empty_list_of_expectations
|
29
|
+
# this is not a normal case; not spending a lot of time to make this better
|
30
|
+
exp_list = []
|
31
|
+
err = VerifyError.new("This is the error:\n", exp_list)
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_nil_expectation_list
|
35
|
+
# this is not a normal case; not spending a lot of time to make this better
|
36
|
+
exp_list = []
|
37
|
+
err = VerifyError.new("This is the error:\n", exp_list)
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
Binary file
|
@@ -0,0 +1,403 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# = DESCRIPTION
|
4
|
+
#
|
5
|
+
# Systir stands for "SYStem Testing In Ruby". It's a framework for
|
6
|
+
# automating system-level tests using domain-specific language, and contains
|
7
|
+
# some tools and hints on how to construct and utilize your own domain language.
|
8
|
+
#
|
9
|
+
# The breakdown of using Systir for test automation is:
|
10
|
+
# 1. Tester defines test steps using project- and technology-specific language.
|
11
|
+
# * Tests are written in files like +authentication+.+test+ and
|
12
|
+
# +order_placement+.+test+
|
13
|
+
# 2. The Toolsmith implements a driver to support the syntax of that language
|
14
|
+
# * In a project-specific module, the Toolsmith writes an extension of the
|
15
|
+
# Systir::LanguageDriver class to support the macros used in *.test
|
16
|
+
# 3. The Tester's "scripts" are gathered up by Systir, executed, and a report
|
17
|
+
# is generated.
|
18
|
+
# * Toolsmith writes a short script which uses Systest::Launcher to compose
|
19
|
+
# *.test files into a suite for execution.
|
20
|
+
#
|
21
|
+
# = TECHNICAL NOTE
|
22
|
+
# Under the hood, Systir is an extension of Test::Unit. The output from
|
23
|
+
# executing the test suite should therefor be familiar to a Ruby coder.
|
24
|
+
# Additionally, it might be educational to the Toolsmith to understand that
|
25
|
+
# LanguageDriver is a derivative of Test::Unit::TestCase, and that all *.test
|
26
|
+
# files become test methods inside the TestCase which is then composed as a
|
27
|
+
# Test::Unit::TestSuite
|
28
|
+
#
|
29
|
+
|
30
|
+
require 'test/unit'
|
31
|
+
require 'test/unit/ui/console/testrunner'
|
32
|
+
require 'test/unit/ui/xml/testrunner'
|
33
|
+
require 'find'
|
34
|
+
require 'stringio'
|
35
|
+
require 'ostruct'
|
36
|
+
|
37
|
+
# This disables the auto-run-at-exit feature inside test/unit.rb:
|
38
|
+
Test::Unit.run = true
|
39
|
+
|
40
|
+
module Test
|
41
|
+
module Unit
|
42
|
+
class TestResult
|
43
|
+
attr_reader :failures, :errors, :assertion_count
|
44
|
+
attr_accessor :output
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
#
|
50
|
+
# Systir contains classes and modules to support writing and launching
|
51
|
+
# high-level test scripts.
|
52
|
+
#
|
53
|
+
module Systir
|
54
|
+
|
55
|
+
VERSION = '0.5'
|
56
|
+
|
57
|
+
#
|
58
|
+
# Systir::LanguageDriver is a special derivative of TestCase designed to
|
59
|
+
# contain user code written to support more macro-fied testing scripts.
|
60
|
+
#
|
61
|
+
class LanguageDriver < Test::Unit::TestCase
|
62
|
+
attr_accessor :params
|
63
|
+
|
64
|
+
# == Description
|
65
|
+
# Installs a back-reference from this Driver instance into the specified Helper
|
66
|
+
# and returns a reference to that Helper. Typically thismethod is called
|
67
|
+
# on the same line you return the helper from once it's built.
|
68
|
+
#
|
69
|
+
# == Params
|
70
|
+
# +helper+ :: The Helper instance you're handing control over to
|
71
|
+
#
|
72
|
+
# == Return
|
73
|
+
# The same +helper+ reference that was sent in as a parameter.
|
74
|
+
#
|
75
|
+
# == Details
|
76
|
+
#
|
77
|
+
# Since Helpers are usually built as support for domain-level syntax,
|
78
|
+
# they usually require a direct reference to macro functions built into
|
79
|
+
# the driver. Additionally, the Helper may need to make assertions
|
80
|
+
# defined in the driver, or test/unit itself, and only the Driver may
|
81
|
+
# count assertions; the Helper must use a special internal implementation
|
82
|
+
# of 'add_assertion' in order to increment the test's assertion count.
|
83
|
+
#
|
84
|
+
# Some aliases have been added to aid readability
|
85
|
+
#
|
86
|
+
def associate_helper(helper)
|
87
|
+
unless helper.respond_to? :driver=
|
88
|
+
raise "helper doesn't support 'driver=' method"
|
89
|
+
end
|
90
|
+
helper.driver = self
|
91
|
+
return helper
|
92
|
+
end
|
93
|
+
alias_method :return_helper, :associate_helper
|
94
|
+
alias_method :hand_off_to, :associate_helper
|
95
|
+
|
96
|
+
# (INTERNAL USE)
|
97
|
+
# Sneaky trick to expose the private mix-in method +add_assertion+ from
|
98
|
+
# Test::Unit::Assertions. Helpers derivatives that make assertions are
|
99
|
+
# able to have them counted because of this method.
|
100
|
+
# (See associate_helper.)
|
101
|
+
def collect_assertion
|
102
|
+
add_assertion
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
# = Description
|
107
|
+
# Imports test scripts into the given driver class
|
108
|
+
# and produces a TestSuite ready for execution
|
109
|
+
class Builder
|
110
|
+
def initialize(driver_class)
|
111
|
+
raise 'driver class must be a Systir::LanguageDriver' unless driver_class < Systir::LanguageDriver
|
112
|
+
@driver_class = driver_class
|
113
|
+
remove_test_methods
|
114
|
+
end
|
115
|
+
|
116
|
+
# Read contents from_file, wrap text in 'def',
|
117
|
+
# add the resulting code as a new method on the target driver class
|
118
|
+
def import_test(test)
|
119
|
+
# Transform the test script into a test method inside
|
120
|
+
# the driver class:
|
121
|
+
text = File.readlines(test.path)
|
122
|
+
text = "def test_#{test.fullname}\n#{text}\nend\n";
|
123
|
+
|
124
|
+
# Dynamically define the method:
|
125
|
+
@driver_class.class_eval(text, File.basename(test.path), 0)
|
126
|
+
test_case = @driver_class.new("test_#{test.fullname}")
|
127
|
+
test_case.params = test.params
|
128
|
+
test_case
|
129
|
+
end
|
130
|
+
|
131
|
+
def suite_for_directory(dir)
|
132
|
+
list = TestList.new
|
133
|
+
Find.find(dir) do |path|
|
134
|
+
if File.basename(path) =~ /\.test$/
|
135
|
+
list.add :test => path
|
136
|
+
end
|
137
|
+
if File.directory? path
|
138
|
+
next
|
139
|
+
end
|
140
|
+
end
|
141
|
+
suite_for_test_list list
|
142
|
+
end
|
143
|
+
|
144
|
+
def suite_for_file(filename,params=nil)
|
145
|
+
list = TestList.new
|
146
|
+
list.add :test => filename, :params => params
|
147
|
+
suite_for_test_list list
|
148
|
+
end
|
149
|
+
|
150
|
+
def suite_for_list(file_list)
|
151
|
+
list = TestList.new
|
152
|
+
file_list.each do |path|
|
153
|
+
list.add :test => path
|
154
|
+
end
|
155
|
+
suite_for_test_list list
|
156
|
+
end
|
157
|
+
|
158
|
+
def suite_for_test_list(test_list)
|
159
|
+
suite = Test::Unit::TestSuite.new(@driver_class.name)
|
160
|
+
test_list.tests.each do |test|
|
161
|
+
suite << import_test(test)
|
162
|
+
end
|
163
|
+
suite
|
164
|
+
end
|
165
|
+
|
166
|
+
def remove_test_methods
|
167
|
+
methods = @driver_class.public_instance_methods.select { |m|
|
168
|
+
m =~ /^test_/
|
169
|
+
}
|
170
|
+
methods.each do |method|
|
171
|
+
@driver_class.send(:undef_method,method)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
class TestList #:nodoc:
|
177
|
+
attr_reader :tests
|
178
|
+
|
179
|
+
def initialize
|
180
|
+
@tests = []
|
181
|
+
end
|
182
|
+
|
183
|
+
def add(args)
|
184
|
+
test = OpenStruct.new
|
185
|
+
test.path = args[:test]
|
186
|
+
test.params = args[:params]
|
187
|
+
test.name = File.basename(test.path).sub(/\.test$/, '')
|
188
|
+
test.fullname = test.name + (args[:name_suffix] ? "_#{args[:name_suffix]}" : '')
|
189
|
+
@tests << test
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
# = Description
|
194
|
+
# Launcher is the utility for launching Systir test scripts.
|
195
|
+
#
|
196
|
+
class Launcher
|
197
|
+
#
|
198
|
+
# Creates a new Launcher, the following arguments may be specified in a hash
|
199
|
+
#
|
200
|
+
# :stdout - true or false, whether to send test reporting output to stdout (default true)
|
201
|
+
# :format - :console or :xml, format of test reporting output (default :xml)
|
202
|
+
#
|
203
|
+
# note: output is available via the TestResult returned from the following methods:
|
204
|
+
# * find_and_run_all_tests
|
205
|
+
# * run_test
|
206
|
+
# * run_test_list
|
207
|
+
# * run_suite
|
208
|
+
#
|
209
|
+
def initialize(args={})
|
210
|
+
@stdout = args[:stdout].nil? ? true : args[:stdout]
|
211
|
+
@format = args[:format].nil? ? :console : args[:format]
|
212
|
+
end
|
213
|
+
|
214
|
+
#
|
215
|
+
# Find and run all the system test scripts in the given directory.
|
216
|
+
# Tests are identified by the .test file extension.
|
217
|
+
#
|
218
|
+
def find_and_run_all_tests(driver_class, dir='.')
|
219
|
+
raise 'dir cannot be nil' if dir.nil?
|
220
|
+
raise 'dir does not exist' unless File.directory?(dir)
|
221
|
+
b = Builder.new(driver_class)
|
222
|
+
execute b.suite_for_directory(dir)
|
223
|
+
end
|
224
|
+
|
225
|
+
#
|
226
|
+
# Run a specific test, optionally providing parameters to be available
|
227
|
+
# within the driver instance.
|
228
|
+
#
|
229
|
+
# Systir::Launcher.new.run_test(MyDriver, './tests/foo.test')
|
230
|
+
#
|
231
|
+
# Systir::Launcher.new.run_test(MyDriver, './tests/foo.test', :opt1 => 'thinger', :another => 'bar')
|
232
|
+
#
|
233
|
+
# given parameters are available via the <tt>params</tt> method on the
|
234
|
+
# driver instance which returns the hash passed to run_test.
|
235
|
+
#
|
236
|
+
# returns TestResult
|
237
|
+
#
|
238
|
+
def run_test(driver_class, filename, params=nil)
|
239
|
+
raise 'filename cannot be nil' if filename.nil?
|
240
|
+
raise 'filename does not exist' unless File.exists?(filename)
|
241
|
+
b = Builder.new(driver_class)
|
242
|
+
execute b.suite_for_file(filename,params)
|
243
|
+
end
|
244
|
+
|
245
|
+
#
|
246
|
+
# Run a specific list of tests
|
247
|
+
#
|
248
|
+
# returns TestResult
|
249
|
+
#
|
250
|
+
def run_test_list(driver_class, file_list)
|
251
|
+
raise 'file_list cannot be nil' if file_list.nil?
|
252
|
+
raise 'file_list cannot be empty' if file_list.empty?
|
253
|
+
b = Builder.new(driver_class)
|
254
|
+
execute b.suite_for_list(file_list)
|
255
|
+
end
|
256
|
+
|
257
|
+
#
|
258
|
+
# Run a suite of tests defined by a given block.
|
259
|
+
#
|
260
|
+
# launcher.run_suite(MyDriver) do |suite|
|
261
|
+
# suite.add :test => './tests/run_me_twice.test'
|
262
|
+
# suite.add :test => './tests/run_me_twice.test', :name_suffix => 'other_one'
|
263
|
+
# suite.add :test => './tests/specific_parameters.test', :params => {:one => 'mine', :two => 'also mine'}
|
264
|
+
# end
|
265
|
+
#
|
266
|
+
# :test - path to the systir test file
|
267
|
+
# :name_suffix - (optional) string appended to the end of the test name in
|
268
|
+
# this suite run.this option is useful when running multiple
|
269
|
+
# tests from the same file.
|
270
|
+
# :params - (optional) hash of parameters to be set on the driver instance
|
271
|
+
# for the execution of this test
|
272
|
+
#
|
273
|
+
# returns TestResult
|
274
|
+
#
|
275
|
+
def run_suite(driver_class)
|
276
|
+
b = Builder.new(driver_class)
|
277
|
+
suite = TestList.new
|
278
|
+
yield suite
|
279
|
+
execute b.suite_for_test_list(suite)
|
280
|
+
end
|
281
|
+
|
282
|
+
#
|
283
|
+
# Use console test runner to execute the given suite
|
284
|
+
#
|
285
|
+
def execute(suite)
|
286
|
+
buffer = StringIO.new
|
287
|
+
ios = []
|
288
|
+
ios << STDOUT if @stdout
|
289
|
+
ios << buffer
|
290
|
+
io = MethodMulticaster.new(ios)
|
291
|
+
level = Test::Unit::UI::NORMAL
|
292
|
+
|
293
|
+
runner = case @format
|
294
|
+
when :console
|
295
|
+
Test::Unit::UI::Console::TestRunner
|
296
|
+
when :xml
|
297
|
+
Test::Unit::UI::XML::TestRunner
|
298
|
+
else
|
299
|
+
raise "don't know anything about runner: [#{@runner}]"
|
300
|
+
end
|
301
|
+
|
302
|
+
result = runner.new(suite, level, io).start
|
303
|
+
buffer.rewind
|
304
|
+
result.output = buffer.read
|
305
|
+
result
|
306
|
+
end
|
307
|
+
end
|
308
|
+
|
309
|
+
class MethodMulticaster #:nodoc:
|
310
|
+
def initialize(targets)
|
311
|
+
@targets = targets
|
312
|
+
end
|
313
|
+
|
314
|
+
def method_missing(method,*args)
|
315
|
+
@targets.each do |target|
|
316
|
+
target.send(method,*args)
|
317
|
+
end
|
318
|
+
end
|
319
|
+
end
|
320
|
+
|
321
|
+
|
322
|
+
# = DESCRIPTION
|
323
|
+
# Systir::Helper is a module intended for mixing-in to classes defined
|
324
|
+
# to assist a project-specific Systir::LanguageDriver.
|
325
|
+
#
|
326
|
+
#
|
327
|
+
module Helper
|
328
|
+
include Test::Unit::Assertions
|
329
|
+
|
330
|
+
#
|
331
|
+
# Construct a new Helper with a back reference to the language driver.
|
332
|
+
# NOTE: the +driver+ argument is optional if you utilize <code>driver=</code>
|
333
|
+
# or Systir::LanguageDriver.associate_helper
|
334
|
+
#
|
335
|
+
def initialize(driver=nil)
|
336
|
+
@_driver = driver
|
337
|
+
end
|
338
|
+
|
339
|
+
#
|
340
|
+
# Returns a reference to our owning LanguageDriver instance.
|
341
|
+
#
|
342
|
+
def driver
|
343
|
+
unless @_driver
|
344
|
+
raise "Implementation error: helper has no back reference to the language driver!"
|
345
|
+
end
|
346
|
+
return @_driver
|
347
|
+
end
|
348
|
+
|
349
|
+
#
|
350
|
+
# Sets the owning reference to a LanguageDriver.
|
351
|
+
# This method is used by Systir::LanguageDriver#associate_helper.
|
352
|
+
#
|
353
|
+
def driver=(dr)
|
354
|
+
@_driver = dr
|
355
|
+
end
|
356
|
+
|
357
|
+
# == Description
|
358
|
+
# Installs a back-reference from this Driver instance into the specified Helper
|
359
|
+
# and returns a reference to that Helper. Typically thismethod is called
|
360
|
+
# on the same line you return the helper from once it's built.
|
361
|
+
#
|
362
|
+
# == Params
|
363
|
+
# +helper+ :: The Helper instance you're handing control over to
|
364
|
+
#
|
365
|
+
# == Return
|
366
|
+
# The same +helper+ reference that was sent in as a parameter.
|
367
|
+
#
|
368
|
+
# == Details
|
369
|
+
#
|
370
|
+
# Since Helpers are usually built as support for domain-level syntax,
|
371
|
+
# they usually require a direct reference to macro functions built into
|
372
|
+
# the driver. Additionally, the Helper may need to make assertions
|
373
|
+
# defined in the driver, or test/unit itself, and only the Driver may
|
374
|
+
# count assertions; the Helper must use a special internal implementation
|
375
|
+
# of 'add_assertion' in order to increment the test's assertion count.
|
376
|
+
#
|
377
|
+
# Some aliases have been added to aid readability
|
378
|
+
#
|
379
|
+
def associate_helper(helper)
|
380
|
+
unless helper.respond_to? :driver=
|
381
|
+
raise "helper doesn't support 'driver=' method"
|
382
|
+
end
|
383
|
+
helper.driver = self.driver
|
384
|
+
return helper
|
385
|
+
end
|
386
|
+
alias_method :return_helper, :associate_helper
|
387
|
+
alias_method :hand_off_to, :associate_helper
|
388
|
+
|
389
|
+
#
|
390
|
+
# Redirects assertion counting into our owning LanguageDriver.
|
391
|
+
# Assertions module will automatically attempt to store the count
|
392
|
+
# within a Helper otherwise, leading to incorrect results.
|
393
|
+
#
|
394
|
+
private
|
395
|
+
def add_assertion
|
396
|
+
unless driver.respond_to? :collect_assertion
|
397
|
+
raise "Implementation error: driver needs a 'collect_assertion' method"
|
398
|
+
end
|
399
|
+
driver.collect_assertion
|
400
|
+
end
|
401
|
+
end
|
402
|
+
end
|
403
|
+
|
@@ -0,0 +1,192 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
#
|
4
|
+
# Copyright (c) 2005, Gregory D. Fast
|
5
|
+
# All rights reserved.
|
6
|
+
#
|
7
|
+
# Redistribution and use in source and binary forms, with or without
|
8
|
+
# modification, are permitted provided that the following conditions
|
9
|
+
# are met:
|
10
|
+
#
|
11
|
+
# * Redistributions of source code must retain the above copyright
|
12
|
+
# notice, this list of conditions and the following disclaimer.
|
13
|
+
#
|
14
|
+
# * Redistributions in binary form must reproduce the above copyright
|
15
|
+
# notice, this list of conditions and the following disclaimer in the
|
16
|
+
# documentation and/or other materials provided with the distribution.
|
17
|
+
#
|
18
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
19
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
20
|
+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
21
|
+
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
22
|
+
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
23
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
24
|
+
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
25
|
+
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
26
|
+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
27
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
28
|
+
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
29
|
+
#
|
30
|
+
|
31
|
+
require 'test/unit/ui/testrunnermediator'
|
32
|
+
require 'test/unit/ui/testrunnerutilities'
|
33
|
+
require 'test/unit/ui/console/testrunner'
|
34
|
+
require 'test/unit/autorunner'
|
35
|
+
require 'rexml/document'
|
36
|
+
|
37
|
+
module Test
|
38
|
+
module Unit
|
39
|
+
module UI
|
40
|
+
module XML
|
41
|
+
|
42
|
+
#
|
43
|
+
# XML::TestRunner - generate xml output for test results
|
44
|
+
#
|
45
|
+
# Example use:
|
46
|
+
#
|
47
|
+
# $ ruby -rtest/unit/ui/xml/testrunner test/test_1.rb --runner=xml
|
48
|
+
#
|
49
|
+
# By default, XML::TestRunner will output to stdout.
|
50
|
+
# You can set the environment variable $XMLTEST_OUTPUT to
|
51
|
+
# a filename to send the output to that file.
|
52
|
+
#
|
53
|
+
# The summary file created by this testrunner is XML, but
|
54
|
+
# this module also includes a stylesheet
|
55
|
+
# (test/unit/ui/xml/xmltestrunner.xslt) which converts it to
|
56
|
+
# HTML. Copy the XSLT file into the same directory as the
|
57
|
+
# test results file, and open the results file with a browser.
|
58
|
+
#
|
59
|
+
# ---
|
60
|
+
#
|
61
|
+
# (todo: use with rake)
|
62
|
+
#
|
63
|
+
class TestRunner < Test::Unit::UI::Console::TestRunner
|
64
|
+
|
65
|
+
def initialize(suite, output_level=NORMAL, io=STDOUT)
|
66
|
+
super(suite)
|
67
|
+
if io.is_a? String
|
68
|
+
fn = io
|
69
|
+
puts "Writing to #{fn}"
|
70
|
+
@io = File.open( fn, "w" )
|
71
|
+
@using_stdout = false
|
72
|
+
else
|
73
|
+
@io = io
|
74
|
+
@using_stdout = true
|
75
|
+
end
|
76
|
+
create_document
|
77
|
+
end
|
78
|
+
|
79
|
+
def create_document
|
80
|
+
@doc = REXML::Document.new
|
81
|
+
@doc << REXML::XMLDecl.new
|
82
|
+
|
83
|
+
pi = REXML::Instruction.new(
|
84
|
+
"xml-stylesheet",
|
85
|
+
"type='text/xsl' href='xmltestrunner.xslt' "
|
86
|
+
)
|
87
|
+
@doc << pi
|
88
|
+
|
89
|
+
e = REXML::Element.new("testsuite")
|
90
|
+
e.attributes['rundate'] = Time.now
|
91
|
+
@doc << e
|
92
|
+
end
|
93
|
+
|
94
|
+
def to_s
|
95
|
+
@doc.to_s
|
96
|
+
end
|
97
|
+
|
98
|
+
def start
|
99
|
+
@current_test = nil
|
100
|
+
# setup_mediator
|
101
|
+
@mediator = TestRunnerMediator.new( @suite )
|
102
|
+
suite_name = @suite.to_s
|
103
|
+
if @suite.kind_of?(Module)
|
104
|
+
suite_name = @suite.name
|
105
|
+
end
|
106
|
+
@doc.root.attributes['name'] = suite_name
|
107
|
+
# attach_to_mediator - define callbacks
|
108
|
+
@mediator.add_listener( TestResult::FAULT,
|
109
|
+
&method(:add_fault) )
|
110
|
+
@mediator.add_listener( TestRunnerMediator::STARTED,
|
111
|
+
&method(:started) )
|
112
|
+
@mediator.add_listener( TestRunnerMediator::FINISHED,
|
113
|
+
&method(:finished) )
|
114
|
+
@mediator.add_listener( TestCase::STARTED,
|
115
|
+
&method(:test_started) )
|
116
|
+
@mediator.add_listener( TestCase::FINISHED,
|
117
|
+
&method(:test_finished) )
|
118
|
+
# return start_mediator
|
119
|
+
return @mediator.run_suite
|
120
|
+
end
|
121
|
+
|
122
|
+
# callbacks
|
123
|
+
|
124
|
+
def add_fault( fault )
|
125
|
+
##STDERR.puts "Fault:"
|
126
|
+
@faults << fault
|
127
|
+
e = REXML::Element.new( "fault" )
|
128
|
+
e << REXML::CData.new( fault.long_display )
|
129
|
+
@current_test << e
|
130
|
+
end
|
131
|
+
|
132
|
+
def started( result )
|
133
|
+
#STDERR.puts "Started"
|
134
|
+
@result = result
|
135
|
+
end
|
136
|
+
|
137
|
+
def finished( elapsed_time )
|
138
|
+
#STDERR.puts "Finished"
|
139
|
+
res = REXML::Element.new( "result" )
|
140
|
+
summ = REXML::Element.new( "summary" )
|
141
|
+
summ.text = @result
|
142
|
+
res << summ
|
143
|
+
# @result is a Test::Unit::TestResults
|
144
|
+
res.attributes['passed'] = @result.passed?
|
145
|
+
res.attributes['testcount'] = @result.run_count
|
146
|
+
res.attributes['assertcount'] = @result.assertion_count
|
147
|
+
res.attributes['failures'] = @result.failure_count
|
148
|
+
res.attributes['errors'] = @result.error_count
|
149
|
+
@doc.root << res
|
150
|
+
|
151
|
+
e = REXML::Element.new( "elapsed-time" )
|
152
|
+
e.text = elapsed_time
|
153
|
+
@doc.root << e
|
154
|
+
@io.puts( @doc.to_s )
|
155
|
+
|
156
|
+
unless @using_stdout
|
157
|
+
puts @result
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
def test_started( name )
|
162
|
+
#STDERR.puts "Test: #{name} started"
|
163
|
+
e = REXML::Element.new( "test" )
|
164
|
+
e.attributes['name'] = name
|
165
|
+
#e.attributes['status'] = "failed"
|
166
|
+
@doc.root << e
|
167
|
+
@current_test = e
|
168
|
+
end
|
169
|
+
|
170
|
+
def test_finished( name )
|
171
|
+
#STDERR.puts "Test: #{name} finished"
|
172
|
+
# find //test[@name='name']
|
173
|
+
@current_test = nil
|
174
|
+
end
|
175
|
+
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
# "plug in" xmltestrunner into autorunner's list of known runners
|
183
|
+
# This enables the "--runner=xml" commandline option.
|
184
|
+
Test::Unit::AutoRunner::RUNNERS[:xml] = proc do |r|
|
185
|
+
require 'test/unit/ui/xml/testrunner'
|
186
|
+
Test::Unit::UI::XML::TestRunner
|
187
|
+
end
|
188
|
+
|
189
|
+
if __FILE__ == $0
|
190
|
+
Test::Unit::UI::XML::TestRunner.start_command_line_test
|
191
|
+
end
|
192
|
+
|