ciat 0.4.8 → 0.4.9
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +4 -4
- data/lib/ciat.rb +3 -5
- data/lib/ciat/differs/html_differ.rb +3 -4
- data/lib/ciat/erb_helpers.rb +6 -4
- data/lib/ciat/feedback/composite.rb +2 -2
- data/lib/ciat/feedback/feedback_counter.rb +2 -2
- data/lib/ciat/feedback/html_feedback.rb +25 -8
- data/lib/ciat/feedback/html_feedback_builder.rb +28 -0
- data/lib/ciat/feedback/return_status.rb +1 -1
- data/lib/ciat/feedback/standard_output.rb +1 -1
- data/lib/ciat/io.rb +17 -0
- data/lib/ciat/processors/basic_processing.rb +21 -30
- data/lib/ciat/{executors → processors}/java.rb +7 -8
- data/lib/ciat/{executors → processors}/parrot.rb +9 -10
- data/lib/ciat/rake_task.rb +1 -1
- data/lib/ciat/subresult.rb +20 -0
- data/lib/ciat/suite.rb +27 -38
- data/lib/ciat/suite_builder.rb +54 -0
- data/lib/ciat/test.rb +32 -18
- data/lib/ciat/test_element.rb +7 -2
- data/lib/ciat/{crate.rb → test_file.rb} +24 -16
- data/lib/ciat/test_result.rb +24 -0
- data/lib/ciat/traffic_light.rb +6 -0
- data/lib/templates/detail_row.html.erb +5 -4
- data/lib/templates/group_header.html.erb +2 -2
- data/lib/templates/report.html.erb +1 -1
- data/lib/templates/summary_row.html.erb +4 -4
- data/spec/ciat/erb_helpers_spec.rb +71 -0
- data/spec/ciat/feedback/composite_spec.rb +28 -0
- data/spec/ciat/feedback/feedback_counter_spec.rb +91 -0
- data/spec/ciat/feedback/html_feedback_spec.rb +48 -0
- data/spec/ciat/feedback/return_status_spec.rb +90 -0
- data/spec/ciat/feedback/standard_output_spec.rb +109 -0
- data/spec/ciat/processors/basic_processing_spec.rb +146 -0
- data/spec/ciat/processors/java_spec.rb +31 -0
- data/spec/ciat/processors/parrot_spec.rb +40 -0
- data/spec/ciat/subresult_spec.rb +40 -0
- data/spec/ciat/suite_builder_spec.rb +70 -0
- data/spec/ciat/suite_spec.rb +64 -0
- data/spec/ciat/test_element_spec.rb +78 -0
- data/spec/ciat/test_file_spec.rb +96 -0
- data/spec/ciat/test_spec.rb +127 -0
- data/spec/ciat/traffic_light_spec.rb +41 -0
- data/spec/ciat_spec.rb +2 -0
- data/spec/spec_helper.rb +134 -0
- data/spec/templates/detail_row/elements_html_erb_spec.rb +60 -0
- data/spec/templates/detail_row_html_erb_spec.rb +73 -0
- data/spec/templates/elements/diff_html_erb_spec.rb +28 -0
- data/spec/templates/elements/plain_element_html_erb_spec.rb +36 -0
- data/spec/templates/report_html_erb_spec.rb +85 -0
- data/spec/templates/summary_row_html_erb_spec.rb +93 -0
- data/spec/templates/test_numbers_html_erb_spec.rb +82 -0
- metadata +54 -32
- data/History.txt +0 -96
- data/Rakefile +0 -40
- data/ciat.gemspec +0 -53
- data/lib/ciat/cargo.rb +0 -55
- data/lib/ciat/compilers/java.rb +0 -54
- data/lib/ciat/processors/copy.rb +0 -37
- data/lib/ciat/version.rb +0 -7
data/lib/ciat/cargo.rb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
class CIAT::Cargo #:nodoc:all
|
2
|
-
OUTPUT_FOLDER = "temp"
|
3
|
-
REPORT_FILENAME = "report.html"
|
4
|
-
|
5
|
-
attr_reader :output_folder
|
6
|
-
attr_reader :crates
|
7
|
-
attr_reader :report_filename
|
8
|
-
|
9
|
-
def initialize(options={})
|
10
|
-
@output_folder = options[:output_folder] || OUTPUT_FOLDER
|
11
|
-
if options[:files]
|
12
|
-
filenames = options[:files]
|
13
|
-
else
|
14
|
-
folder = options[:folder] || "ciat"
|
15
|
-
pattern = options[:pattern] || "*.ciat"
|
16
|
-
filenames = Dir[File.join(folder, "**", pattern)]
|
17
|
-
end
|
18
|
-
@crates = filenames.map { |filename| CIAT::Crate.new(filename, @output_folder) }
|
19
|
-
@report_filename = File.join(@output_folder, options[:report_filename] || REPORT_FILENAME)
|
20
|
-
end
|
21
|
-
|
22
|
-
def size
|
23
|
-
crates.size
|
24
|
-
end
|
25
|
-
|
26
|
-
def copy_suite_data
|
27
|
-
FileUtils.mkdir_p(output_folder)
|
28
|
-
FileUtils.cp(File.join(File.dirname(__FILE__), "..", "data", "ciat.css"), output_folder)
|
29
|
-
FileUtils.cp(File.join(File.dirname(__FILE__), "..", "data", "prototype.js"), output_folder)
|
30
|
-
end
|
31
|
-
|
32
|
-
# TODO: get rid of this in favor of the class method
|
33
|
-
def write_file(filename, content)
|
34
|
-
FileUtils.mkdir_p(File.dirname(filename))
|
35
|
-
File.open(filename, "w") do |file|
|
36
|
-
file.write content
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
# TODO: get rid of this in favor of the class method
|
41
|
-
def read_file(filename)
|
42
|
-
File.read(filename)
|
43
|
-
end
|
44
|
-
|
45
|
-
def self.write_file(filename, content)
|
46
|
-
FileUtils.mkdir_p(File.dirname(filename))
|
47
|
-
File.open(filename, "w") do |file|
|
48
|
-
file.write content
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def self.read_file(filename)
|
53
|
-
File.read(filename)
|
54
|
-
end
|
55
|
-
end
|
data/lib/ciat/compilers/java.rb
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
module CIAT
|
2
|
-
module Compilers
|
3
|
-
# Implements a processor written in Java.
|
4
|
-
#
|
5
|
-
# It requires <code>source</code> and <code>compilation</code> elements.
|
6
|
-
# * <code>source</code> is used as source to the Java compiler.
|
7
|
-
# * <code>compilation</code> is used for comparsion.
|
8
|
-
#
|
9
|
-
# == Best Practices
|
10
|
-
#
|
11
|
-
# Suppose you use Eclipse to develop your compiler or interpreter, and you
|
12
|
-
# have this folder structure:
|
13
|
-
# * +bin+ stores your compiled classes (under test)
|
14
|
-
# * +lib+ contains support JAR files
|
15
|
-
# * +acceptance+ is a root folder for your CIAT tests with your +Rakefile+
|
16
|
-
# You may find this classpath useful:
|
17
|
-
# Dir.glob('../lib/*.jar').join(':') + ":../bin"
|
18
|
-
class Java
|
19
|
-
include CIAT::Processors::BasicProcessing
|
20
|
-
include CIAT::Differs::HtmlDiffer
|
21
|
-
|
22
|
-
# The traffic light to indicate the success or failure of the processor.
|
23
|
-
attr :light, true
|
24
|
-
attr_reader :processor_kind
|
25
|
-
|
26
|
-
# Constructs a "Java compiler" object. +classpath+ is the complete
|
27
|
-
# classpath to execute the compiler. +compiler_class+ is the fully
|
28
|
-
# qualified name of the class that executes your compiler; this driver
|
29
|
-
# should take two command-line arguments: the name of the source file
|
30
|
-
# and the name of the generated target-code file.
|
31
|
-
#
|
32
|
-
# Possible options:
|
33
|
-
# * <code>description</code> specifies a descriptive name for your
|
34
|
-
# compiler; used in the HTML report.
|
35
|
-
def initialize(classpath, compiler_class, options={})
|
36
|
-
@processor_kind = options[:processor_kind] || CIAT::Processors::Compiler.new
|
37
|
-
@classpath = classpath
|
38
|
-
@compiler_class = compiler_class
|
39
|
-
@descriptions = {}
|
40
|
-
@description = options[:description] || "compiler (implemented in Java)"
|
41
|
-
@light = options[:light] || TrafficLight.new
|
42
|
-
end
|
43
|
-
|
44
|
-
# Return a description of the processor.
|
45
|
-
def describe
|
46
|
-
@description
|
47
|
-
end
|
48
|
-
|
49
|
-
def executable
|
50
|
-
"java -cp '#{@classpath}' #{@compiler_class}"
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
data/lib/ciat/processors/copy.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
module CIAT
|
2
|
-
module Processors
|
3
|
-
# A simple processor that just simply copies the code from one file to the other
|
4
|
-
# using the Unix +cp+ command.
|
5
|
-
class Copy
|
6
|
-
attr :light, true
|
7
|
-
|
8
|
-
def initialize(original, copy)
|
9
|
-
@original = original
|
10
|
-
@copy = copy
|
11
|
-
@light = CIAT::TrafficLight.new
|
12
|
-
end
|
13
|
-
|
14
|
-
def for_test
|
15
|
-
copy = clone
|
16
|
-
copy.light = light.clone
|
17
|
-
copy
|
18
|
-
end
|
19
|
-
|
20
|
-
def describe
|
21
|
-
"copy processor"
|
22
|
-
end
|
23
|
-
|
24
|
-
def process(crate)
|
25
|
-
if system( "cp '#{crate.element(@original).as_file}' '#{crate.element(@copy).as_file}'")
|
26
|
-
light.green!
|
27
|
-
else
|
28
|
-
light.red!
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def relevant_elements(crate)
|
33
|
-
[@original, @copy].map { |e| crate.element(e) }
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|