ttk 0.1.576
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/AUTHORS +32 -0
- data/COPYING +18 -0
- data/ChangeLog +4629 -0
- data/DATE +1 -0
- data/DESCRIPTION +8 -0
- data/GUIDELINES +84 -0
- data/LGPL +504 -0
- data/NEWS +69 -0
- data/NORM +85 -0
- data/README +206 -0
- data/REVISION +1 -0
- data/Rakefile +120 -0
- data/TODO +23 -0
- data/TODO.old +115 -0
- data/VERSION +5 -0
- data/bin/getopts/ttk.rb +394 -0
- data/bin/getopts/ttkd.rb +150 -0
- data/bin/getopts/ttkm.rb +71 -0
- data/bin/ttk +170 -0
- data/bin/ttkd +73 -0
- data/bin/ttkm +54 -0
- data/doc/html/classes/IO/CutInput.html +159 -0
- data/doc/html/classes/IO/Delegator.html +291 -0
- data/doc/html/classes/IO/Dispatch.html +204 -0
- data/doc/html/classes/IO/Ext.html +118 -0
- data/doc/html/classes/IO/ImplExt.html +149 -0
- data/doc/html/classes/IO/ImplIndent.html +175 -0
- data/doc/html/classes/IO/ImplPrintFile.html +142 -0
- data/doc/html/classes/IO/ImplPrintIO.html +143 -0
- data/doc/html/classes/IO/InputFilter.html +347 -0
- data/doc/html/classes/IO/OutputFilter.html +298 -0
- data/doc/html/classes/NilClass.html +198 -0
- data/doc/html/classes/SafeEval.html +277 -0
- data/doc/html/classes/String.html +245 -0
- data/doc/html/classes/SymTbl.html +146 -0
- data/doc/html/classes/TTK.html +658 -0
- data/doc/html/classes/TTK/AbortStatus.html +211 -0
- data/doc/html/classes/TTK/Daemons.html +142 -0
- data/doc/html/classes/TTK/Daemons/Daemon.html +170 -0
- data/doc/html/classes/TTK/Daemons/Daemon/Logger.html +192 -0
- data/doc/html/classes/TTK/Daemons/Master.html +163 -0
- data/doc/html/classes/TTK/Daemons/Slave.html +158 -0
- data/doc/html/classes/TTK/Dumpers.html +150 -0
- data/doc/html/classes/TTK/Dumpers/Dumper.html +461 -0
- data/doc/html/classes/TTK/Dumpers/Notif.html +208 -0
- data/doc/html/classes/TTK/Dumpers/Xml.html +260 -0
- data/doc/html/classes/TTK/Dumpers/Yaml.html +307 -0
- data/doc/html/classes/TTK/ErrorStatus.html +133 -0
- data/doc/html/classes/TTK/FailStatus.html +195 -0
- data/doc/html/classes/TTK/Fetchers.html +135 -0
- data/doc/html/classes/TTK/Fetchers/Client.html +229 -0
- data/doc/html/classes/TTK/Fetchers/Client/Receiver.html +254 -0
- data/doc/html/classes/TTK/Fetchers/Server.html +256 -0
- data/doc/html/classes/TTK/Fetchers/Server/Sender.html +241 -0
- data/doc/html/classes/TTK/Filters.html +142 -0
- data/doc/html/classes/TTK/Filters/BasicLogger.html +187 -0
- data/doc/html/classes/TTK/Filters/Filter.html +188 -0
- data/doc/html/classes/TTK/Filters/Saver.html +279 -0
- data/doc/html/classes/TTK/Loaders.html +115 -0
- data/doc/html/classes/TTK/Loaders/BaseNode.html +224 -0
- data/doc/html/classes/TTK/Loaders/Loader.html +242 -0
- data/doc/html/classes/TTK/Loaders/OYaml.html +161 -0
- data/doc/html/classes/TTK/Loaders/Yaml.html +157 -0
- data/doc/html/classes/TTK/Loaders/YamlOld.html +155 -0
- data/doc/html/classes/TTK/Logger.html +836 -0
- data/doc/html/classes/TTK/Logger/Path.html +161 -0
- data/doc/html/classes/TTK/Logger/SectionNode.html +925 -0
- data/doc/html/classes/TTK/Logger/Severity.html +306 -0
- data/doc/html/classes/TTK/Logger/ToTTKLog.html +119 -0
- data/doc/html/classes/TTK/Logger/Verbosity.html +278 -0
- data/doc/html/classes/TTK/LoggerFactory.html +204 -0
- data/doc/html/classes/TTK/Monitors.html +132 -0
- data/doc/html/classes/TTK/Monitors/Client.html +261 -0
- data/doc/html/classes/TTK/Monitors/Monitor.html +209 -0
- data/doc/html/classes/TTK/Monitors/Server.html +288 -0
- data/doc/html/classes/TTK/Monitors/Server/Notification.html +118 -0
- data/doc/html/classes/TTK/Monitors/Server/Notifier.html +118 -0
- data/doc/html/classes/TTK/PassStatus.html +168 -0
- data/doc/html/classes/TTK/RunningStatus.html +133 -0
- data/doc/html/classes/TTK/Services.html +161 -0
- data/doc/html/classes/TTK/Services/DRbService.html +217 -0
- data/doc/html/classes/TTK/Services/DRbService/Notification.html +123 -0
- data/doc/html/classes/TTK/Services/DRbService/SubTestable.html +197 -0
- data/doc/html/classes/TTK/Services/FetcherClient.html +190 -0
- data/doc/html/classes/TTK/Services/FetcherServer.html +149 -0
- data/doc/html/classes/TTK/Services/MonitorClient.html +190 -0
- data/doc/html/classes/TTK/Services/MonitorServer.html +149 -0
- data/doc/html/classes/TTK/Services/TesterClient.html +207 -0
- data/doc/html/classes/TTK/Services/TesterMaster.html +193 -0
- data/doc/html/classes/TTK/Services/TesterMaster/Notification.html +123 -0
- data/doc/html/classes/TTK/Services/TesterSlave.html +157 -0
- data/doc/html/classes/TTK/Services/TesterSlave/Notification.html +118 -0
- data/doc/html/classes/TTK/SkipStatus.html +169 -0
- data/doc/html/classes/TTK/StartStatus.html +133 -0
- data/doc/html/classes/TTK/Status.html +373 -0
- data/doc/html/classes/TTK/StatusException.html +161 -0
- data/doc/html/classes/TTK/StatusWithMessage.html +220 -0
- data/doc/html/classes/TTK/Strategies.html +356 -0
- data/doc/html/classes/TTK/Strategies/Abort.html +161 -0
- data/doc/html/classes/TTK/Strategies/Authors.html +170 -0
- data/doc/html/classes/TTK/Strategies/Ball.html +200 -0
- data/doc/html/classes/TTK/Strategies/Block.html +230 -0
- data/doc/html/classes/TTK/Strategies/Bootstrap.html +238 -0
- data/doc/html/classes/TTK/Strategies/Checkout.html +201 -0
- data/doc/html/classes/TTK/Strategies/Clean.html +160 -0
- data/doc/html/classes/TTK/Strategies/Cmd.html +218 -0
- data/doc/html/classes/TTK/Strategies/CmdBase.html +312 -0
- data/doc/html/classes/TTK/Strategies/Collection.html +282 -0
- data/doc/html/classes/TTK/Strategies/Compile.html +199 -0
- data/doc/html/classes/TTK/Strategies/Composite.html +541 -0
- data/doc/html/classes/TTK/Strategies/Composite/Ordered.html +183 -0
- data/doc/html/classes/TTK/Strategies/Configure.html +270 -0
- data/doc/html/classes/TTK/Strategies/DistDelegate.html +192 -0
- data/doc/html/classes/TTK/Strategies/DistDuplicate.html +221 -0
- data/doc/html/classes/TTK/Strategies/DistStrategy.html +224 -0
- data/doc/html/classes/TTK/Strategies/Distribute.html +163 -0
- data/doc/html/classes/TTK/Strategies/Error.html +161 -0
- data/doc/html/classes/TTK/Strategies/Extract.html +179 -0
- data/doc/html/classes/TTK/Strategies/Fail.html +161 -0
- data/doc/html/classes/TTK/Strategies/Fetch.html +400 -0
- data/doc/html/classes/TTK/Strategies/Fetcher.html +276 -0
- data/doc/html/classes/TTK/Strategies/Glob.html +201 -0
- data/doc/html/classes/TTK/Strategies/IOBased.html +400 -0
- data/doc/html/classes/TTK/Strategies/Import.html +215 -0
- data/doc/html/classes/TTK/Strategies/JUnit.html +623 -0
- data/doc/html/classes/TTK/Strategies/KillAll.html +249 -0
- data/doc/html/classes/TTK/Strategies/Make.html +235 -0
- data/doc/html/classes/TTK/Strategies/Make/All.html +120 -0
- data/doc/html/classes/TTK/Strategies/Make/Check.html +120 -0
- data/doc/html/classes/TTK/Strategies/Make/Default.html +155 -0
- data/doc/html/classes/TTK/Strategies/Make/DistCheck.html +120 -0
- data/doc/html/classes/TTK/Strategies/Make/Install.html +120 -0
- data/doc/html/classes/TTK/Strategies/Make/Target.html +179 -0
- data/doc/html/classes/TTK/Strategies/Package.html +271 -0
- data/doc/html/classes/TTK/Strategies/PackageCollection.html +168 -0
- data/doc/html/classes/TTK/Strategies/Pass.html +161 -0
- data/doc/html/classes/TTK/Strategies/Pool.html +306 -0
- data/doc/html/classes/TTK/Strategies/Pool/PoolComponent.html +139 -0
- data/doc/html/classes/TTK/Strategies/ProbabilityThreshold.html +187 -0
- data/doc/html/classes/TTK/Strategies/Proxy.html +211 -0
- data/doc/html/classes/TTK/Strategies/RUnit.html +355 -0
- data/doc/html/classes/TTK/Strategies/RemoteCmd.html +213 -0
- data/doc/html/classes/TTK/Strategies/SignalCmd.html +269 -0
- data/doc/html/classes/TTK/Strategies/Sleep.html +193 -0
- data/doc/html/classes/TTK/Strategies/SqlQuery.html +248 -0
- data/doc/html/classes/TTK/Strategies/Strategy.html +2847 -0
- data/doc/html/classes/TTK/Strategies/Strategy/AssertEval.html +233 -0
- data/doc/html/classes/TTK/Strategies/Strategy/AttributedClass.html +107 -0
- data/doc/html/classes/TTK/Strategies/Strategy/AttributedClass/Attribute.html +246 -0
- data/doc/html/classes/TTK/Strategies/Strategy/Failure.html +121 -0
- data/doc/html/classes/TTK/Strategies/Stub.html +179 -0
- data/doc/html/classes/TTK/Strategies/SubCmd.html +243 -0
- data/doc/html/classes/TTK/Strategies/Suite.html +182 -0
- data/doc/html/classes/TTK/Strategies/Test.html +310 -0
- data/doc/html/classes/TTK/Strategies/Tester.html +218 -0
- data/doc/html/classes/TTK/Streams.html +116 -0
- data/doc/html/classes/TTK/Streams/Diff.html +148 -0
- data/doc/html/classes/TTK/Streams/Stream.html +295 -0
- data/doc/html/classes/TTK/SymTbl.html +266 -0
- data/doc/html/classes/TTK/TTKException.html +118 -0
- data/doc/html/classes/TTK/TTKModule.html +145 -0
- data/doc/html/classes/TTK/Testers.html +156 -0
- data/doc/html/classes/TTK/Testers/Master.html +304 -0
- data/doc/html/classes/TTK/Testers/Slave.html +120 -0
- data/doc/html/classes/TTK/Testers/Tester.html +547 -0
- data/doc/html/classes/TTK/Testers/Tester/Config.html +310 -0
- data/doc/html/classes/TTK/Testers/Tester/Notification.html +123 -0
- data/doc/html/classes/TTK/Testers/Tester/Notifier.html +118 -0
- data/doc/html/classes/TTK/Testers/Tester/QueryNode.html +341 -0
- data/doc/html/classes/TTK/Testers/Tester/RemoteStatus.html +165 -0
- data/doc/html/classes/TTK/Testers/Tester/RunningTask.html +262 -0
- data/doc/html/classes/TTK/Testers/Tester/Score.html +198 -0
- data/doc/html/classes/TTK/TimeoutAbortStatus.html +161 -0
- data/doc/html/classes/TTK/Tools.html +111 -0
- data/doc/html/classes/TTK/Tools/HostDispatcher.html +246 -0
- data/doc/html/classes/TTK/Weights.html +160 -0
- data/doc/html/classes/TTK/Weights/WExpr.html +326 -0
- data/doc/html/classes/TTK/Weights/WFloat.html +149 -0
- data/doc/html/classes/TTK/Weights/WMin.html +148 -0
- data/doc/html/classes/TTK/Weights/Weight.html +624 -0
- data/doc/html/created.rid +1 -0
- data/doc/html/files/AUTHORS.html +198 -0
- data/doc/html/files/NEWS.html +236 -0
- data/doc/html/files/README.html +435 -0
- data/doc/html/files/TODO.html +128 -0
- data/doc/html/files/lib/ttk/Tools/HostDispatcher_rb.html +126 -0
- data/doc/html/files/lib/ttk/Tools/SafeEval_rb.html +119 -0
- data/doc/html/files/lib/ttk/Tools/cut_output_rb.html +126 -0
- data/doc/html/files/lib/ttk/Tools/io/delegator_rb.html +127 -0
- data/doc/html/files/lib/ttk/Tools/io/dispatch_rb.html +127 -0
- data/doc/html/files/lib/ttk/Tools/io/ext_rb.html +126 -0
- data/doc/html/files/lib/ttk/Tools/io/filters_rb.html +127 -0
- data/doc/html/files/lib/ttk/daemons/Daemon_rb.html +126 -0
- data/doc/html/files/lib/ttk/daemons/Master_rb.html +119 -0
- data/doc/html/files/lib/ttk/daemons/Slave_rb.html +119 -0
- data/doc/html/files/lib/ttk/daemons/daemon/logger_rb.html +126 -0
- data/doc/html/files/lib/ttk/dumpers/Dumper_rb.html +119 -0
- data/doc/html/files/lib/ttk/dumpers/Notif_rb.html +119 -0
- data/doc/html/files/lib/ttk/dumpers/Xml_rb.html +126 -0
- data/doc/html/files/lib/ttk/dumpers/Yaml_rb.html +119 -0
- data/doc/html/files/lib/ttk/fetchers/Client_rb.html +126 -0
- data/doc/html/files/lib/ttk/fetchers/Server_rb.html +126 -0
- data/doc/html/files/lib/ttk/fetchers/client/receiver_rb.html +127 -0
- data/doc/html/files/lib/ttk/fetchers/server/sender_rb.html +127 -0
- data/doc/html/files/lib/ttk/filters/BasicLogger_rb.html +126 -0
- data/doc/html/files/lib/ttk/filters/Filter_rb.html +119 -0
- data/doc/html/files/lib/ttk/filters/Saver_rb.html +119 -0
- data/doc/html/files/lib/ttk/loaders/Loader_rb.html +119 -0
- data/doc/html/files/lib/ttk/loaders/OYaml_rb.html +126 -0
- data/doc/html/files/lib/ttk/loaders/YamlOld_rb.html +126 -0
- data/doc/html/files/lib/ttk/loaders/Yaml_rb.html +126 -0
- data/doc/html/files/lib/ttk/logger/path_rb.html +119 -0
- data/doc/html/files/lib/ttk/logger/section_node_rb.html +119 -0
- data/doc/html/files/lib/ttk/logger/severity_rb.html +119 -0
- data/doc/html/files/lib/ttk/logger/to_ttk_log_rb.html +119 -0
- data/doc/html/files/lib/ttk/logger/verbosity_rb.html +119 -0
- data/doc/html/files/lib/ttk/logger_factory_rb.html +119 -0
- data/doc/html/files/lib/ttk/logger_rb.html +131 -0
- data/doc/html/files/lib/ttk/monitors/Client_rb.html +119 -0
- data/doc/html/files/lib/ttk/monitors/Monitor_rb.html +127 -0
- data/doc/html/files/lib/ttk/monitors/Server_rb.html +126 -0
- data/doc/html/files/lib/ttk/services/DRbService/sub_testable_rb.html +119 -0
- data/doc/html/files/lib/ttk/services/DRbService_rb.html +126 -0
- data/doc/html/files/lib/ttk/services/FetcherClient_rb.html +119 -0
- data/doc/html/files/lib/ttk/services/FetcherServer_rb.html +119 -0
- data/doc/html/files/lib/ttk/services/MonitorClient_rb.html +119 -0
- data/doc/html/files/lib/ttk/services/MonitorServer_rb.html +119 -0
- data/doc/html/files/lib/ttk/services/TesterClient_rb.html +119 -0
- data/doc/html/files/lib/ttk/services/TesterMaster_rb.html +119 -0
- data/doc/html/files/lib/ttk/services/TesterSlave_rb.html +119 -0
- data/doc/html/files/lib/ttk/status_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Abort_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Authors_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Ball_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Block_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Bootstrap_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Checkout_rb.html +127 -0
- data/doc/html/files/lib/ttk/strategies/Clean_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/CmdBase_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Cmd_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Collection_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Compile_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Composite_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Configure_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/DistDelegate_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/DistDuplicate_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/DistStrategy_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Distribute_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Error_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Extract_rb.html +126 -0
- data/doc/html/files/lib/ttk/strategies/Fail_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Fetch_rb.html +127 -0
- data/doc/html/files/lib/ttk/strategies/Fetcher_rb.html +126 -0
- data/doc/html/files/lib/ttk/strategies/Glob_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/IOBased_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Import_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/JUnit_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/KillAll_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Make_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/PackageCollection_rb.html +126 -0
- data/doc/html/files/lib/ttk/strategies/Package_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Pass_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Pool_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/ProbabilityThreshold_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Proxy_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/RUnit_rb.html +127 -0
- data/doc/html/files/lib/ttk/strategies/RemoteCmd_rb.html +126 -0
- data/doc/html/files/lib/ttk/strategies/SignalCmd_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Sleep_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/SqlQuery_rb.html +126 -0
- data/doc/html/files/lib/ttk/strategies/Strategy/assert_eval_rb.html +127 -0
- data/doc/html/files/lib/ttk/strategies/Strategy_rb.html +131 -0
- data/doc/html/files/lib/ttk/strategies/Streams/Diff_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Streams/Stream_rb.html +126 -0
- data/doc/html/files/lib/ttk/strategies/Stub_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/SubCmd_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Suite_rb.html +119 -0
- data/doc/html/files/lib/ttk/strategies/Test_rb.html +127 -0
- data/doc/html/files/lib/ttk/strategies/Tester_rb.html +126 -0
- data/doc/html/files/lib/ttk/symtbl_rb.html +126 -0
- data/doc/html/files/lib/ttk/testers/Master_rb.html +119 -0
- data/doc/html/files/lib/ttk/testers/Slave_rb.html +119 -0
- data/doc/html/files/lib/ttk/testers/Tester_rb.html +131 -0
- data/doc/html/files/lib/ttk/testers/tester/config_rb.html +126 -0
- data/doc/html/files/lib/ttk/testers/tester/notifier_rb.html +119 -0
- data/doc/html/files/lib/ttk/testers/tester/query_node_rb.html +126 -0
- data/doc/html/files/lib/ttk/testers/tester/remote_status_rb.html +119 -0
- data/doc/html/files/lib/ttk/testers/tester/running_task_rb.html +119 -0
- data/doc/html/files/lib/ttk/testers/tester/score_rb.html +119 -0
- data/doc/html/files/lib/ttk/weights/WExpr_rb.html +119 -0
- data/doc/html/files/lib/ttk/weights/WFloat_rb.html +119 -0
- data/doc/html/files/lib/ttk/weights/WMin_rb.html +119 -0
- data/doc/html/files/lib/ttk/weights/Weight_rb.html +126 -0
- data/doc/html/files/lib/ttk_rb.html +146 -0
- data/doc/html/files/lib/ttkd_rb.html +131 -0
- data/doc/html/files/template/README.html +160 -0
- data/doc/html/files/test/examples/README.html +190 -0
- data/doc/html/fr_class_index.html +186 -0
- data/doc/html/fr_file_index.html +147 -0
- data/doc/html/fr_method_index.html +581 -0
- data/doc/html/index.html +24 -0
- data/doc/html/rdoc-style.css +208 -0
- data/lib/ttk.rb +111 -0
- data/lib/ttk/Tools/HostDispatcher.rb +44 -0
- data/lib/ttk/Tools/SafeEval.rb +64 -0
- data/lib/ttk/Tools/cut_output.rb +35 -0
- data/lib/ttk/Tools/io/delegator.rb +88 -0
- data/lib/ttk/Tools/io/dispatch.rb +31 -0
- data/lib/ttk/Tools/io/ext.rb +70 -0
- data/lib/ttk/Tools/io/filters.rb +71 -0
- data/lib/ttk/daemons/Daemon.rb +34 -0
- data/lib/ttk/daemons/Master.rb +34 -0
- data/lib/ttk/daemons/Slave.rb +29 -0
- data/lib/ttk/daemons/daemon/logger.rb +57 -0
- data/lib/ttk/dumpers/Dumper.rb +81 -0
- data/lib/ttk/dumpers/Notif.rb +33 -0
- data/lib/ttk/dumpers/Xml.rb +112 -0
- data/lib/ttk/dumpers/Yaml.rb +159 -0
- data/lib/ttk/fetchers/Client.rb +41 -0
- data/lib/ttk/fetchers/Server.rb +49 -0
- data/lib/ttk/fetchers/client/receiver.rb +62 -0
- data/lib/ttk/fetchers/server/sender.rb +69 -0
- data/lib/ttk/filters/BasicLogger.rb +30 -0
- data/lib/ttk/filters/Filter.rb +24 -0
- data/lib/ttk/filters/Saver.rb +60 -0
- data/lib/ttk/loaders/Loader.rb +123 -0
- data/lib/ttk/loaders/OYaml.rb +60 -0
- data/lib/ttk/loaders/Yaml.rb +74 -0
- data/lib/ttk/loaders/YamlOld.rb +65 -0
- data/lib/ttk/logger.rb +237 -0
- data/lib/ttk/logger/path.rb +23 -0
- data/lib/ttk/logger/section_node.rb +214 -0
- data/lib/ttk/logger/severity.rb +62 -0
- data/lib/ttk/logger/to_ttk_log.rb +83 -0
- data/lib/ttk/logger/verbosity.rb +61 -0
- data/lib/ttk/logger_factory.rb +50 -0
- data/lib/ttk/monitors/Client.rb +61 -0
- data/lib/ttk/monitors/Monitor.rb +50 -0
- data/lib/ttk/monitors/Server.rb +73 -0
- data/lib/ttk/services/DRbService.rb +45 -0
- data/lib/ttk/services/DRbService/sub_testable.rb +41 -0
- data/lib/ttk/services/FetcherClient.rb +31 -0
- data/lib/ttk/services/FetcherServer.rb +23 -0
- data/lib/ttk/services/MonitorClient.rb +31 -0
- data/lib/ttk/services/MonitorServer.rb +23 -0
- data/lib/ttk/services/TesterClient.rb +38 -0
- data/lib/ttk/services/TesterMaster.rb +40 -0
- data/lib/ttk/services/TesterSlave.rb +31 -0
- data/lib/ttk/status.rb +190 -0
- data/lib/ttk/strategies/Abort.rb +24 -0
- data/lib/ttk/strategies/Authors.rb +43 -0
- data/lib/ttk/strategies/Ball.rb +68 -0
- data/lib/ttk/strategies/Block.rb +95 -0
- data/lib/ttk/strategies/Bootstrap.rb +52 -0
- data/lib/ttk/strategies/Checkout.rb +53 -0
- data/lib/ttk/strategies/Clean.rb +29 -0
- data/lib/ttk/strategies/Cmd.rb +55 -0
- data/lib/ttk/strategies/CmdBase.rb +103 -0
- data/lib/ttk/strategies/Collection.rb +131 -0
- data/lib/ttk/strategies/Compile.rb +56 -0
- data/lib/ttk/strategies/Composite.rb +173 -0
- data/lib/ttk/strategies/Configure.rb +64 -0
- data/lib/ttk/strategies/DistDelegate.rb +45 -0
- data/lib/ttk/strategies/DistDuplicate.rb +64 -0
- data/lib/ttk/strategies/DistStrategy.rb +42 -0
- data/lib/ttk/strategies/Distribute.rb +39 -0
- data/lib/ttk/strategies/Error.rb +23 -0
- data/lib/ttk/strategies/Extract.rb +45 -0
- data/lib/ttk/strategies/Fail.rb +26 -0
- data/lib/ttk/strategies/Fetch.rb +124 -0
- data/lib/ttk/strategies/Fetcher.rb +74 -0
- data/lib/ttk/strategies/Glob.rb +48 -0
- data/lib/ttk/strategies/IOBased.rb +156 -0
- data/lib/ttk/strategies/Import.rb +45 -0
- data/lib/ttk/strategies/JUnit.rb +205 -0
- data/lib/ttk/strategies/KillAll.rb +59 -0
- data/lib/ttk/strategies/Make.rb +94 -0
- data/lib/ttk/strategies/Package.rb +128 -0
- data/lib/ttk/strategies/PackageCollection.rb +72 -0
- data/lib/ttk/strategies/Pass.rb +24 -0
- data/lib/ttk/strategies/Pool.rb +99 -0
- data/lib/ttk/strategies/ProbabilityThreshold.rb +42 -0
- data/lib/ttk/strategies/Proxy.rb +42 -0
- data/lib/ttk/strategies/RUnit.rb +170 -0
- data/lib/ttk/strategies/RemoteCmd.rb +48 -0
- data/lib/ttk/strategies/SignalCmd.rb +85 -0
- data/lib/ttk/strategies/Sleep.rb +36 -0
- data/lib/ttk/strategies/SqlQuery.rb +120 -0
- data/lib/ttk/strategies/Strategy.rb +606 -0
- data/lib/ttk/strategies/Strategy/assert_eval.rb +53 -0
- data/lib/ttk/strategies/Streams/Diff.rb +60 -0
- data/lib/ttk/strategies/Streams/Stream.rb +133 -0
- data/lib/ttk/strategies/Stub.rb +35 -0
- data/lib/ttk/strategies/SubCmd.rb +58 -0
- data/lib/ttk/strategies/Suite.rb +118 -0
- data/lib/ttk/strategies/Test.rb +88 -0
- data/lib/ttk/strategies/Tester.rb +59 -0
- data/lib/ttk/symtbl.rb +115 -0
- data/lib/ttk/testers/Master.rb +69 -0
- data/lib/ttk/testers/Slave.rb +19 -0
- data/lib/ttk/testers/Tester.rb +134 -0
- data/lib/ttk/testers/tester/config.rb +65 -0
- data/lib/ttk/testers/tester/notifier.rb +24 -0
- data/lib/ttk/testers/tester/query_node.rb +91 -0
- data/lib/ttk/testers/tester/remote_status.rb +29 -0
- data/lib/ttk/testers/tester/running_task.rb +47 -0
- data/lib/ttk/testers/tester/score.rb +34 -0
- data/lib/ttk/weights/WExpr.rb +68 -0
- data/lib/ttk/weights/WFloat.rb +23 -0
- data/lib/ttk/weights/WMin.rb +22 -0
- data/lib/ttk/weights/Weight.rb +85 -0
- data/lib/ttkd.rb +51 -0
- data/ruby_ex/abstract.rb +246 -0
- data/ruby_ex/abstract_node.rb +85 -0
- data/ruby_ex/array_each_pair.rb +18 -0
- data/ruby_ex/ask.rb +101 -0
- data/ruby_ex/attributed_class.rb +304 -0
- data/ruby_ex/cache.rb +373 -0
- data/ruby_ex/checkout.rb +12 -0
- data/ruby_ex/config_file.rb +96 -0
- data/ruby_ex/const_regexp.rb +59 -0
- data/ruby_ex/daemon.rb +134 -0
- data/ruby_ex/diff.rb +667 -0
- data/ruby_ex/dlogger.rb +62 -0
- data/ruby_ex/drb/dispatcher.rb +252 -0
- data/ruby_ex/drb/dispatcher_server_test.rb +29 -0
- data/ruby_ex/drb/drb_observable.rb +97 -0
- data/ruby_ex/drb/drb_observable_pool.rb +27 -0
- data/ruby_ex/drb/drb_service.rb +43 -0
- data/ruby_ex/drb/drb_undumped_attributes.rb +55 -0
- data/ruby_ex/drb/drb_undumped_indexed_object.rb +54 -0
- data/ruby_ex/drb/insecure_protected_methods.rb +103 -0
- data/ruby_ex/drb/session_client_test.rb +40 -0
- data/ruby_ex/drb/session_manager.rb +246 -0
- data/ruby_ex/drb/session_server.rb +53 -0
- data/ruby_ex/dtime.rb +143 -0
- data/ruby_ex/dumpable_proc.rb +63 -0
- data/ruby_ex/exception.rb +32 -0
- data/ruby_ex/filetype.rb +229 -0
- data/ruby_ex/fileutils_ex.rb +44 -0
- data/ruby_ex/fold.rb +58 -0
- data/ruby_ex/generate_id.rb +31 -0
- data/ruby_ex/inactive_timeout.rb +137 -0
- data/ruby_ex/indexed_node.rb +66 -0
- data/ruby_ex/io_marshal.rb +100 -0
- data/ruby_ex/ioo.rb +194 -0
- data/ruby_ex/labeled_node.rb +63 -0
- data/ruby_ex/logger_observer.rb +23 -0
- data/ruby_ex/md5sum.rb +66 -0
- data/ruby_ex/mktemp.rb +208 -0
- data/ruby_ex/module/attr_once.rb +36 -0
- data/ruby_ex/module/autoload_tree.rb +68 -0
- data/ruby_ex/module/hierarchy.rb +335 -0
- data/ruby_ex/module/instance_method_visibility.rb +73 -0
- data/ruby_ex/module_ex.rb +11 -0
- data/ruby_ex/node.rb +80 -0
- data/ruby_ex/object_monitor.rb +145 -0
- data/ruby_ex/object_monitor_activity.rb +33 -0
- data/ruby_ex/observable.rb +140 -0
- data/ruby_ex/observable_pool.rb +293 -0
- data/ruby_ex/orderedhash.rb +252 -0
- data/ruby_ex/pathname_ex.rb +113 -0
- data/ruby_ex/pp_hierarchy.rb +29 -0
- data/ruby_ex/pseudo_cache.rb +190 -0
- data/ruby_ex/queue.rb +56 -0
- data/ruby_ex/safe_eval.rb +348 -0
- data/ruby_ex/service_manager.rb +121 -0
- data/ruby_ex/session/administrable.rb +120 -0
- data/ruby_ex/session/client.rb +153 -0
- data/ruby_ex/session/const.rb +18 -0
- data/ruby_ex/session/dispatcher.rb +184 -0
- data/ruby_ex/session/error.rb +21 -0
- data/ruby_ex/session/fetchable.rb +57 -0
- data/ruby_ex/session/fetcher.rb +62 -0
- data/ruby_ex/session/hookable.rb +26 -0
- data/ruby_ex/session/profile.rb +110 -0
- data/ruby_ex/session/server.rb +582 -0
- data/ruby_ex/session/test/administrable_test.rb +337 -0
- data/ruby_ex/session/test/basic_test.rb +523 -0
- data/ruby_ex/session/test/dispatcher_test.rb +409 -0
- data/ruby_ex/session/test/fetchable_test.rb +119 -0
- data/ruby_ex/session/test/sub_server_test.rb +188 -0
- data/ruby_ex/spring.rb +136 -0
- data/ruby_ex/spring_set.rb +137 -0
- data/ruby_ex/symtbl.rb +106 -0
- data/ruby_ex/synflow.rb +474 -0
- data/ruby_ex/test/unit/ui/yaml/testrunner.rb +164 -0
- data/ruby_ex/thread_mutex.rb +10 -0
- data/ruby_ex/timeout_ex.rb +81 -0
- data/ruby_ex/top_down.rb +73 -0
- data/ruby_ex/trace.rb +26 -0
- data/ruby_ex/uri/druby.rb +81 -0
- data/ruby_ex/uri/file.rb +39 -0
- data/ruby_ex/uri/ftp_ex.rb +37 -0
- data/ruby_ex/uri/http_ex.rb +43 -0
- data/ruby_ex/uri/svn.rb +101 -0
- data/ruby_ex/uri_ex.rb +35 -0
- data/ruby_ex/version.rb +66 -0
- data/ruby_ex/yaml/basenode_ext.rb +63 -0
- data/ruby_ex/yaml/transform.rb +447 -0
- data/ruby_ex/yaml/yregexpath.rb +76 -0
- data/test/all/TestTAssert/first.yml +65 -0
- data/test/all/TestTAssert/segfault.yml +31 -0
- data/test/all/dist-suite-indirect-nested.yml +15 -0
- data/test/all/dist-suite-nested-3.yml +16 -0
- data/test/all/dist-suite-nested-in-pool.yml +51 -0
- data/test/all/dist-suite-nested.yml +28 -0
- data/test/all/no_suite.yml +18 -0
- data/test/all/pipeline-timeout.yml +21 -0
- data/test/all/remote_cmd.yml +23 -0
- data/test/all/remote_dispatcher.yml +26 -0
- data/test/all/suite_timeout.yml +32 -0
- data/test/all/weight.yml +113 -0
- data/test/all/xunit/junit/MultiRight/Foo/Foo.java +11 -0
- data/test/all/xunit/junit/MultiRight/Foo/FooTest.java +15 -0
- data/test/all/xunit/junit/MultiRight/MultiRight.java +13 -0
- data/test/all/xunit/junit/MultiRight/MultiRightTest.java +12 -0
- data/test/all/xunit/junit/MultiRight/bar/Bar.java +11 -0
- data/test/all/xunit/junit/MultiRight/bar/BarTest.java +21 -0
- data/test/all/xunit/junit/MultiRight/build.sh +7 -0
- data/test/all/xunit/junit/SimpleException/SimpleExceptionTest.java +11 -0
- data/test/all/xunit/junit/SimpleException/build.sh +4 -0
- data/test/all/xunit/junit/build.sh +9 -0
- data/test/all/xunit/junit/multibar.yml +6 -0
- data/test/all/xunit/junit/multifoo.yml +6 -0
- data/test/all/xunit/junit/multiright.yml +8 -0
- data/test/all/xunit/junit/simple_exception.yml +6 -0
- data/test/examples-suite.yml +10 -0
- data/test/examples/README +68 -0
- data/test/examples/cache/simple.yml +33 -0
- data/test/examples/sql/basic.yml +26 -0
- data/test/examples/students-suite.yml +11 -0
- data/test/examples/students/ball.yml +13 -0
- data/test/examples/students/glob_stud.yml +23 -0
- data/test/examples/students/mini-lib.yml +73 -0
- data/test/examples/students/pool_stud.yml +35 -0
- data/test/examples/students/stud.yml +25 -0
- data/test/ressources/ball/20040804-exam_a1-zapngo-tessar_m.tar.gz +0 -0
- data/test/ressources/ball/Makefile +24 -0
- data/test/ressources/ball/bar_p-mini-lib.tar.bz2 +0 -0
- data/test/ressources/ball/bar_p-mini-lib/Makefile +20 -0
- data/test/ressources/ball/bar_p-mini-lib/my_strlen.c +13 -0
- data/test/ressources/ball/foo_s-mini-lib.tar.bz2 +0 -0
- data/test/ressources/ball/foo_s-mini-lib/Makefile +20 -0
- data/test/ressources/ball/foo_s-mini-lib/configure +2 -0
- data/test/ressources/ball/foo_s-mini-lib/my_strlen.c +10 -0
- data/test/ressources/ball/hello.tar.bz2 +0 -0
- data/test/ressources/ball/hello.tar.gz +0 -0
- data/test/ressources/ball/hello/Makefile +14 -0
- data/test/ressources/ball/hello/hello.c +7 -0
- data/test/ressources/ball/jack-exit.tar.bz2 +0 -0
- data/test/ressources/ball/jack-exit/Makefile +14 -0
- data/test/ressources/ball/jack-exit/exit.c +16 -0
- data/test/ressources/ball/joe-exit.tar.bz2 +0 -0
- data/test/ressources/ball/joe-exit/Makefile +14 -0
- data/test/ressources/ball/joe-exit/exit.c +8 -0
- data/test/ressources/ball/joe_i-mini-lib.tar.bz2 +0 -0
- data/test/ressources/ball/joe_i-mini-lib/Makefile +20 -0
- data/test/ressources/ball/joe_i-mini-lib/configure +2 -0
- data/test/ressources/ball/joe_i-mini-lib/my_strlen.c +10 -0
- data/test/ressources/ball/john-exit.tar.bz2 +0 -0
- data/test/ressources/ball/john-exit/Makefile +14 -0
- data/test/ressources/ball/john-exit/exit.c +6 -0
- data/test/ressources/ball/qux_j-mini-lib.tar.bz2 +0 -0
- data/test/ressources/ball/qux_j-mini-lib/Makefile +20 -0
- data/test/ressources/ball/qux_j-mini-lib/my_strlen.c +12 -0
- data/test/ressources/mini-lib/Makefile +9 -0
- data/test/ressources/mini-lib/strlen.c +15 -0
- data/test/ressources/package/pkg_foo.tar.gz +0 -0
- data/test/ressources/package/pkg_foo/Makefile +20 -0
- data/test/ressources/package/pkg_foo/bootstrap +3 -0
- data/test/ressources/package/pkg_foo/configure +3 -0
- data/test/ressources/package/pkg_foo/foo.sh +2 -0
- data/test/ressources/runit/bad.rb +30 -0
- data/test/ressources/runit/error.rb +6 -0
- data/test/ressources/runit/good.rb +30 -0
- data/test/ressources/text/1.txt +4 -0
- data/test/runit/dumpers/xml_test.rb +75 -0
- data/test/runit/dumpers/yaml_test.rb +68 -0
- data/test/runit/fetchers/fetchers_test.rb +48 -0
- data/test/runit/loaders/OYaml_test.rb +35 -0
- data/test/runit/logger/section_node_test.rb +125 -0
- data/test/runit/logger/severity_test.rb +41 -0
- data/test/runit/logger/verbosity_test.rb +49 -0
- data/test/runit/logger_test.rb +295 -0
- data/test/runit/strategies/Strategy/assert_eval_test.rb +196 -0
- data/test/ttk-check +26 -0
- data/test/ttk-dist-suite.yml +44 -0
- data/test/ttk-dist/cat/file.in +3 -0
- data/test/ttk-dist/cat/file.out +3 -0
- data/test/ttk-dist/dist-abort.yml +51 -0
- data/test/ttk-dist/dist-cat.yml +38 -0
- data/test/ttk-dist/dist-delegate.yml +56 -0
- data/test/ttk-dist/dist-dispatch.yml +28 -0
- data/test/ttk-dist/dist-error.yml +10 -0
- data/test/ttk-dist/dist-fail.yml +9 -0
- data/test/ttk-dist/dist-nested-pass.yml +11 -0
- data/test/ttk-dist/dist-pass.yml +8 -0
- data/test/ttk-dist/dist-ribute.yml +31 -0
- data/test/ttk-dist/dist-suite.yml +18 -0
- data/test/ttk-dist/local-fetch.yml +17 -0
- data/test/ttk-dist/tester.yml +36 -0
- data/test/ttk-minimal-suite.yml +12 -0
- data/test/ttk-minimal/author.yml +14 -0
- data/test/ttk-minimal/base.yml +137 -0
- data/test/ttk-minimal/block.yml +15 -0
- data/test/ttk-minimal/cat.yml +19 -0
- data/test/ttk-minimal/diff.yml +29 -0
- data/test/ttk-minimal/env_cmd.yml +54 -0
- data/test/ttk-minimal/exit.yml +17 -0
- data/test/ttk-minimal/fatal.yml +32 -0
- data/test/ttk-minimal/glob.yml +13 -0
- data/test/ttk-minimal/import.yml +33 -0
- data/test/ttk-minimal/killall.yml +36 -0
- data/test/ttk-minimal/pkg.yml +18 -0
- data/test/ttk-minimal/pool.yml +44 -0
- data/test/ttk-minimal/probability_threshold.yml +39 -0
- data/test/ttk-minimal/runit.yml +25 -0
- data/test/ttk-minimal/signal_cmd.yml +24 -0
- data/test/ttk-minimal/sub.yml +9 -0
- data/test/ttk-minimal/test.yml +26 -0
- data/test/ttk-minimal/timeout.yml +24 -0
- data/test/ttk-minimal/unit_test.yml +13 -0
- data/test/ttk-minimal/wc.yml +28 -0
- metadata +801 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Author:: Nicolas Pouillard <ertai@lrde.epita.fr>.
|
|
2
|
+
# Copyright:: Copyright (c) 2004, 2005 TTK team. All rights reserved.
|
|
3
|
+
# License:: LGPL
|
|
4
|
+
# $Id: ProbabilityThreshold.rb 567 2005-04-13 08:00:06Z polrop $
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module TTK
|
|
8
|
+
|
|
9
|
+
module Strategies
|
|
10
|
+
|
|
11
|
+
class ProbabilityThreshold < Proxy
|
|
12
|
+
include Concrete
|
|
13
|
+
|
|
14
|
+
def prologue
|
|
15
|
+
super
|
|
16
|
+
if @threshold > 1
|
|
17
|
+
raise ArgumentError, "Threshold too high: #@threshold not in [0..1]"
|
|
18
|
+
elsif @threshold < 0
|
|
19
|
+
raise ArgumentError, "Threshold too low: #@threshold not in [0..1]"
|
|
20
|
+
end
|
|
21
|
+
create(@test)
|
|
22
|
+
end
|
|
23
|
+
protected :prologue
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def assertion
|
|
27
|
+
compute_final_weight
|
|
28
|
+
fail("Not enough (#@final_weight)") if @final_weight < @threshold
|
|
29
|
+
pass
|
|
30
|
+
end
|
|
31
|
+
protected :assertion
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
attribute :test, 'the strategy', :mandatory, :invisble
|
|
35
|
+
attribute :threshold, 'the probability threshold', :mandatory, nil
|
|
36
|
+
Weights::Weight
|
|
37
|
+
|
|
38
|
+
end # class ProbabilityThreshold
|
|
39
|
+
|
|
40
|
+
end # module Strategies
|
|
41
|
+
|
|
42
|
+
end # module TTK
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Author:: Nicolas Pouillard <ertai@lrde.epita.fr>.
|
|
2
|
+
# Copyright:: Copyright (c) 2004, 2005 TTK team. All rights reserved.
|
|
3
|
+
# License:: LGPL
|
|
4
|
+
# $Id: Proxy.rb 567 2005-04-13 08:00:06Z polrop $
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module TTK
|
|
8
|
+
|
|
9
|
+
module Strategies
|
|
10
|
+
|
|
11
|
+
class Proxy < Composite
|
|
12
|
+
include Abstract
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def create ( anObject, &block )
|
|
16
|
+
unless @contents.empty?
|
|
17
|
+
raise ArgumentError, "A proxy can contain only one test"
|
|
18
|
+
end
|
|
19
|
+
super
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def run_composite
|
|
24
|
+
test = @contents.first
|
|
25
|
+
test.reject :name, :strategy, :status
|
|
26
|
+
reject :reason
|
|
27
|
+
run_test(test, @log)
|
|
28
|
+
end
|
|
29
|
+
protected :run_composite
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def new_symtbl
|
|
33
|
+
@symtbl
|
|
34
|
+
end
|
|
35
|
+
protected :new_symtbl
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
end # class Proxy
|
|
39
|
+
|
|
40
|
+
end # module Strategies
|
|
41
|
+
|
|
42
|
+
end # module TTK
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# Author:: Nicolas Despres <nicolas.despres@gmail.com>.
|
|
2
|
+
# Copyright:: Copyright (c) 2004, 2005 TTK team. All rights reserved.
|
|
3
|
+
# License:: LGPL
|
|
4
|
+
# $Id: RUnit.rb 567 2005-04-13 08:00:06Z polrop $
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
require 'yaml'
|
|
8
|
+
require 'rbconfig'
|
|
9
|
+
|
|
10
|
+
module TTK
|
|
11
|
+
|
|
12
|
+
module Strategies
|
|
13
|
+
|
|
14
|
+
#
|
|
15
|
+
# = Description
|
|
16
|
+
#
|
|
17
|
+
# This strategy is wrapper around a Ruby unit test suite based on the
|
|
18
|
+
# test/unit library. Using RUnit you avoid the Ruby `require' problem
|
|
19
|
+
# and you use all the power of the TTK's Suite and/or Pool.
|
|
20
|
+
#
|
|
21
|
+
# = How it works ?
|
|
22
|
+
#
|
|
23
|
+
# RUnit works by invoking Ruby on the specified file and then parsing the
|
|
24
|
+
# output to inject the result in the TTK's log stream. To do that, you must
|
|
25
|
+
# use a specific TestRunner based on YAML. This TestRunner produces a YAML
|
|
26
|
+
# output readable by a human and the strategy.
|
|
27
|
+
#
|
|
28
|
+
# = Examples
|
|
29
|
+
#
|
|
30
|
+
# You need to first write your unit test suite using the test/unit package
|
|
31
|
+
# and the YAML TestRunner. Then, you write a few line in the input TTK file
|
|
32
|
+
# to incorporate the unit test in the TTK's suite.
|
|
33
|
+
#
|
|
34
|
+
# == The unit test suite file: foo_test.rb
|
|
35
|
+
#
|
|
36
|
+
# require 'test/unit/ui/yaml/testrunner'
|
|
37
|
+
# require 'foo'
|
|
38
|
+
#
|
|
39
|
+
# class FooTest < Test::Unit::TestCase
|
|
40
|
+
#
|
|
41
|
+
# def test_1
|
|
42
|
+
# assert(true)
|
|
43
|
+
# end
|
|
44
|
+
#
|
|
45
|
+
# end
|
|
46
|
+
#
|
|
47
|
+
# Test::Unit::UI::Yaml::TestRunner.run(FooTest)
|
|
48
|
+
#
|
|
49
|
+
# == The YAML input file for TTK
|
|
50
|
+
#
|
|
51
|
+
# ---
|
|
52
|
+
# RUnit example test:
|
|
53
|
+
# strategy: RUnit
|
|
54
|
+
# unit_file: my_unit_directory/foo_test.rb
|
|
55
|
+
#
|
|
56
|
+
# == One suite for all your unit test suite
|
|
57
|
+
#
|
|
58
|
+
# If you find cumbersome to write for every unit test file a single RUnit
|
|
59
|
+
# strategy into the YAML input file of TTK, there is another way to do so.
|
|
60
|
+
# Here we go:
|
|
61
|
+
#
|
|
62
|
+
# ---
|
|
63
|
+
# TTK's unit test suite:
|
|
64
|
+
# strategy: Glob
|
|
65
|
+
# glob: '<<pwd>>/../runit/**/*_test.rb'
|
|
66
|
+
# regexp: !re /(runit/.+_test\.rb)$
|
|
67
|
+
# test:
|
|
68
|
+
# 'Unit test <<match>>':
|
|
69
|
+
# strategy: RUnit
|
|
70
|
+
# unit_file: <<match>>
|
|
71
|
+
# work_dir: <<pwd>>/..
|
|
72
|
+
# load_path: ../lib
|
|
73
|
+
# verbose: true
|
|
74
|
+
#
|
|
75
|
+
# This file is extracted from the TTK's minimal test suite
|
|
76
|
+
# (test/ttk-minimal/unit_test.yml). The strategy upon it is based (Glob)
|
|
77
|
+
# looks for every file ending by `_test.rb' in a particular directory
|
|
78
|
+
# relative to the place the TTK YAML input file is located (<<pwd>>). All
|
|
79
|
+
# these files are loaded as RUnit strategy with a verbose mode on, the TTK
|
|
80
|
+
# library loaded in the $LOAD_PATH Ruby variable, and the correct working
|
|
81
|
+
# directory. Thus, every unit test files are embedded in a TTK suite.
|
|
82
|
+
#
|
|
83
|
+
class RUnit < Strategy #FIXME: inherit from CmdBase
|
|
84
|
+
include Concrete
|
|
85
|
+
|
|
86
|
+
protected
|
|
87
|
+
def prologue
|
|
88
|
+
super
|
|
89
|
+
@outfile = TempPath.new
|
|
90
|
+
@errfile = TempPath.new
|
|
91
|
+
unless File.directory?(@work_dir) and File.readable?(@work_dir)
|
|
92
|
+
raise "`#@work_dir' - is not a valid directory"
|
|
93
|
+
end
|
|
94
|
+
work_dir = Pathname.new(@work_dir)
|
|
95
|
+
p = work_dir + Pathname.new(@unit_file)
|
|
96
|
+
unless p.file? and p.readable?
|
|
97
|
+
raise "`#{p}' - is not a readable regular file"
|
|
98
|
+
end
|
|
99
|
+
@load_path.each do |dir|
|
|
100
|
+
p = work_dir + Pathname.new(dir)
|
|
101
|
+
unless p.directory? and p.readable?
|
|
102
|
+
raise "`#{dir}' - is not a valid directory"
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
ruby_bin = Config::CONFIG["RUBY_INSTALL_NAME"]
|
|
106
|
+
@cmd = "cd #@work_dir && #{ruby_bin} "
|
|
107
|
+
@cmd += '-w ' if @verbose
|
|
108
|
+
@cmd += "-I#{ABS_RUBY_EX_DIR} "
|
|
109
|
+
@load_path.each { |x| @cmd += "-I#{x} " }
|
|
110
|
+
@cmd += "#@unit_file "
|
|
111
|
+
@cmd += "> #@outfile 2> #@errfile"
|
|
112
|
+
@log.log_debug{@cmd}
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
protected
|
|
116
|
+
def run_impl
|
|
117
|
+
system(@cmd)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
protected
|
|
121
|
+
def assertion
|
|
122
|
+
result = nil
|
|
123
|
+
if @errfile.zero?
|
|
124
|
+
if @outfile.zero?
|
|
125
|
+
skip('No result has been collected probably because no test ' +
|
|
126
|
+
'suite has been run')
|
|
127
|
+
else
|
|
128
|
+
@outfile.open { |io| result = YAML.load(io) }
|
|
129
|
+
@log[:result] = result
|
|
130
|
+
if result['failures_number'] != 0 or result['errors_number'] != 0
|
|
131
|
+
if result['failures_number'] == 0
|
|
132
|
+
fail('there are errors')
|
|
133
|
+
elsif result['errors_number'] == 0
|
|
134
|
+
fail('there are failures')
|
|
135
|
+
else
|
|
136
|
+
fail('there are failures and errors')
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
pass
|
|
140
|
+
end
|
|
141
|
+
else
|
|
142
|
+
@errfile.open { |io| result = io.read }
|
|
143
|
+
raise "Some error occures while running the unit test:\n" + result
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
protected
|
|
148
|
+
def epilogue
|
|
149
|
+
@outfile.clean
|
|
150
|
+
@errfile.clean
|
|
151
|
+
super
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
attribute :unit_file, 'files which contains the runit test class to run',
|
|
155
|
+
:mandatory
|
|
156
|
+
attribute :work_dir, 'directory where the test must be run',
|
|
157
|
+
'.', :invisible
|
|
158
|
+
attribute :load_path, 'directories to add to the $LOAD_PATH variable',
|
|
159
|
+
:invisible do [] end
|
|
160
|
+
attribute :verbose, 'turn on/off the ruby verbose mode',
|
|
161
|
+
false, :invisible
|
|
162
|
+
|
|
163
|
+
end # class RUnit
|
|
164
|
+
|
|
165
|
+
end # module Strategies
|
|
166
|
+
|
|
167
|
+
end # module TTK
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Author:: Nicolas Pouillard <ertai@lrde.epita.fr>.
|
|
2
|
+
# Copyright:: Copyright (c) 2004, 2005 TTK team. All rights reserved.
|
|
3
|
+
# License:: LGPL
|
|
4
|
+
# $Id: RemoteCmd.rb 567 2005-04-13 08:00:06Z polrop $
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
require 'ttk/Tools/HostDispatcher'
|
|
8
|
+
|
|
9
|
+
module TTK
|
|
10
|
+
|
|
11
|
+
module Strategies
|
|
12
|
+
|
|
13
|
+
# I'm not maintained any more, don't use me.
|
|
14
|
+
class RemoteCmd < Cmd
|
|
15
|
+
|
|
16
|
+
def prologue
|
|
17
|
+
if @dispatcher
|
|
18
|
+
conf = @dispatcher.aConf
|
|
19
|
+
@login, @port, @hostname = conf.values_at :login, :port, :hostname
|
|
20
|
+
end
|
|
21
|
+
super
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def mk_command
|
|
25
|
+
cmd = 'ssh'
|
|
26
|
+
cmd += " -l '#@login'" if @login
|
|
27
|
+
cmd += " -p '#@port'" if @port
|
|
28
|
+
cmd += " #@hostname #{super}"
|
|
29
|
+
end
|
|
30
|
+
protected :mk_command
|
|
31
|
+
|
|
32
|
+
def dispatcher=(doc)
|
|
33
|
+
raise ArgumentError, "require a `hosts' attribute" if doc[:hosts].nil?
|
|
34
|
+
@dispatcher = TTK::Tools::HostDispatcher.instance
|
|
35
|
+
@dispatcher.hosts = doc[:hosts]
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
attribute :hostname, 'the machine hostname where launch the command',
|
|
39
|
+
:mandatory
|
|
40
|
+
attribute :port, 'the port for the remote connection'
|
|
41
|
+
attribute :login, 'the login for the remote connection'
|
|
42
|
+
attribute :dispatcher, 'the host dispatcher', :invisible
|
|
43
|
+
|
|
44
|
+
end # class RemoteCmd
|
|
45
|
+
|
|
46
|
+
end # module Strategies
|
|
47
|
+
|
|
48
|
+
end # module TTK
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Author:: Vincent CUISSARD <cuissa_v@epita.fr>.
|
|
2
|
+
# Copyright:: Copyright (c) 2005 TTK Team. All rights reserved.
|
|
3
|
+
# License:: LGPL
|
|
4
|
+
# $Id: SignalCmd.rb 572 2005-04-13 14:53:54Z ertai $
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module TTK
|
|
8
|
+
|
|
9
|
+
module Strategies
|
|
10
|
+
|
|
11
|
+
class SignalCmd < Cmd
|
|
12
|
+
include Concrete
|
|
13
|
+
|
|
14
|
+
@@signal_names = nil
|
|
15
|
+
|
|
16
|
+
#
|
|
17
|
+
# Methods
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
def run_impl
|
|
21
|
+
super
|
|
22
|
+
|
|
23
|
+
# Check if command has exited normaly
|
|
24
|
+
case
|
|
25
|
+
when @my_status.exited?
|
|
26
|
+
# Process run successfully
|
|
27
|
+
@my_signaled = false
|
|
28
|
+
when @my_status.signaled?
|
|
29
|
+
# Process was signaled
|
|
30
|
+
@my_signaled = true
|
|
31
|
+
@my_exit = 128 + @my_status.termsig
|
|
32
|
+
else
|
|
33
|
+
# Problem on process
|
|
34
|
+
fail('process may be ill')
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
protected :run_impl
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def assertion
|
|
41
|
+
case
|
|
42
|
+
when (@my_signaled and not @signaled)
|
|
43
|
+
fail("command was signaled by #{SignalCmd.signal_name(@my_exit)}")
|
|
44
|
+
when (not @my_signaled and @signaled)
|
|
45
|
+
fail("command wasn't signaled by #@signal")
|
|
46
|
+
when (@my_signaled == @signaled and @signaled)
|
|
47
|
+
sig_name = SignalCmd.signal_name(@my_exit)
|
|
48
|
+
unless sig_name == signal
|
|
49
|
+
err = "command signaled by #{sig_name}, "
|
|
50
|
+
err << "must be signaled by #@signal"
|
|
51
|
+
fail(err)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
super
|
|
55
|
+
end
|
|
56
|
+
protected :assertion
|
|
57
|
+
|
|
58
|
+
def SignalCmd.signal_name ( status )
|
|
59
|
+
signal = status - 128
|
|
60
|
+
if @@signal_names.nil?
|
|
61
|
+
@@signal_names = { }
|
|
62
|
+
Signal.list.each do |key, value|
|
|
63
|
+
@@signal_names[value] = key
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
@@signal_names[signal]
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def signal= ( signal_name )
|
|
70
|
+
@signal = signal_name
|
|
71
|
+
@signaled = true
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
#
|
|
75
|
+
# Attributes
|
|
76
|
+
#
|
|
77
|
+
|
|
78
|
+
attribute :signal, 'the signal name', nil
|
|
79
|
+
attribute :signaled, 'process must be signaled', false
|
|
80
|
+
|
|
81
|
+
end # class SignalCmd
|
|
82
|
+
|
|
83
|
+
end # module Strategies
|
|
84
|
+
|
|
85
|
+
end # module TTK
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Author:: Nicolas Despres <nicolas.despres@gmail.com>.
|
|
2
|
+
# Copyright:: Copyright (c) 2004, 2005 TTK team. All rights reserved.
|
|
3
|
+
# License:: LGPL
|
|
4
|
+
# $Id: Sleep.rb 567 2005-04-13 08:00:06Z polrop $
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module TTK
|
|
8
|
+
|
|
9
|
+
module Strategies
|
|
10
|
+
|
|
11
|
+
# A test strategy class that only sleep for a moment before to pass.
|
|
12
|
+
class Sleep < Strategy
|
|
13
|
+
include Concrete
|
|
14
|
+
|
|
15
|
+
def delay=(other)
|
|
16
|
+
other = other.to_f
|
|
17
|
+
if other >= 0
|
|
18
|
+
@delay = other
|
|
19
|
+
else
|
|
20
|
+
raise(ArgumentError, "`#{other}' - sleep delay must be >= 0")
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
protected
|
|
25
|
+
def run_impl
|
|
26
|
+
sleep(@delay)
|
|
27
|
+
pass
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
attribute :delay, 'Delay in second to sleep', 0
|
|
31
|
+
|
|
32
|
+
end # class Sleep
|
|
33
|
+
|
|
34
|
+
end # module Strategies
|
|
35
|
+
|
|
36
|
+
end # module TTK
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Author:: Vincent Cuissard <cuissa_v@epita.fr>
|
|
2
|
+
# Copyright:: Copyright (c) 2004, 2005 TTK team. All rights reserved.
|
|
3
|
+
# License:: LGPL
|
|
4
|
+
# $Id: SqlQuery.rb 567 2005-04-13 08:00:06Z polrop $
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module TTK
|
|
8
|
+
|
|
9
|
+
module Strategies
|
|
10
|
+
|
|
11
|
+
#
|
|
12
|
+
# This strategy manage _SQL_ base tests.
|
|
13
|
+
# It use unit testing (EXCEPT ALL query) for checking results.
|
|
14
|
+
# To use it, you need to have _dbi_ installed on your test system
|
|
15
|
+
# and have a database with these things:
|
|
16
|
+
# * a test schema (MY)
|
|
17
|
+
# * a reference schema (REF)
|
|
18
|
+
#
|
|
19
|
+
# After that you have just to write all queries that you want to test.
|
|
20
|
+
# Queries will be called on each schema by applying a delta operation:
|
|
21
|
+
# (REF ` MY) U (MY ` REF).
|
|
22
|
+
#
|
|
23
|
+
# In queries, %s will be replaced by given schemas.
|
|
24
|
+
#
|
|
25
|
+
|
|
26
|
+
class SqlQuery < Strategy
|
|
27
|
+
include Concrete
|
|
28
|
+
|
|
29
|
+
@@db = nil
|
|
30
|
+
|
|
31
|
+
#
|
|
32
|
+
# Methods
|
|
33
|
+
#
|
|
34
|
+
|
|
35
|
+
def prologue
|
|
36
|
+
super
|
|
37
|
+
if @@db.nil?
|
|
38
|
+
require 'dbi'
|
|
39
|
+
# Check if driver is available
|
|
40
|
+
if DBI.available_drivers.to_s !~ /#@driver/
|
|
41
|
+
raise_error("Unknown driver: #@driver")
|
|
42
|
+
else
|
|
43
|
+
# Start DB connection
|
|
44
|
+
@@db = DBI.connect("DBI:#@driver:host=#@host;database=#@database",
|
|
45
|
+
@user, @passwd)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
protected :prologue
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def run_impl
|
|
53
|
+
@delta = nil
|
|
54
|
+
begin
|
|
55
|
+
@delta = perform_delta
|
|
56
|
+
rescue DBI::DatabaseError => ex
|
|
57
|
+
fail(ex)
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
protected :run_impl
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def assertion
|
|
64
|
+
unless @delta.nil?
|
|
65
|
+
@log.diff_output = @delta
|
|
66
|
+
fail('Delta not empty')
|
|
67
|
+
end
|
|
68
|
+
super
|
|
69
|
+
end
|
|
70
|
+
protected :assertion
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def perform_delta
|
|
74
|
+
output_a = []
|
|
75
|
+
output_b = []
|
|
76
|
+
|
|
77
|
+
# Make queries
|
|
78
|
+
ref_query = @query.gsub(/%s/, @ref_schema)
|
|
79
|
+
my_query = @query.gsub(/%s/, @my_schema)
|
|
80
|
+
|
|
81
|
+
# Perform REF ` MY
|
|
82
|
+
@@db.execute("#{ref_query} EXCEPT ALL #{my_query}").fetch do |row|
|
|
83
|
+
output_a << row.join(' | ')
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# Perform MY ` REF
|
|
87
|
+
@@db.execute("#{my_query} EXCEPT ALL #{ref_query}").fetch do |row|
|
|
88
|
+
output_b << row.join(' | ')
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# REF DELTA MY => (REF ` MY) U (MY ` REF) = {}
|
|
92
|
+
# Check this
|
|
93
|
+
return nil if output_a.empty? and output_b.empty?
|
|
94
|
+
|
|
95
|
+
# Make report
|
|
96
|
+
{ :'REF ` MY' => output_a.join("\n"),
|
|
97
|
+
:'MY ` REF' => output_b.join("\n") }
|
|
98
|
+
end
|
|
99
|
+
private :perform_delta
|
|
100
|
+
|
|
101
|
+
#
|
|
102
|
+
# Attributes
|
|
103
|
+
#
|
|
104
|
+
|
|
105
|
+
attribute :my_schema, 'Test schema', 'my'
|
|
106
|
+
attribute :ref_schema, 'Reference schema', 'ref'
|
|
107
|
+
attribute :query, 'SQL query (%s for the schema)', :mandatory
|
|
108
|
+
attribute :driver, 'SQL server driver', :mandatory
|
|
109
|
+
attribute :database, 'SQL database name', :mandatory
|
|
110
|
+
attribute :host, 'SQL server host', :mandatory
|
|
111
|
+
attribute :user, 'SQL user', :mandatory
|
|
112
|
+
attribute :passwd, 'SQL pass', :mandatory
|
|
113
|
+
|
|
114
|
+
end # class SqlQuery
|
|
115
|
+
|
|
116
|
+
end # module Strategies
|
|
117
|
+
|
|
118
|
+
end # module TTK
|
|
119
|
+
|
|
120
|
+
|