bashcov 0.0.2 → 0.0.3
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/.rspec +1 -0
- data/README.md +1 -1
- data/Rakefile +3 -1
- data/bashcov.gemspec +1 -0
- data/bin/bashcov +2 -7
- data/lib/bashcov/lexer.rb +1 -1
- data/lib/bashcov/runner.rb +45 -22
- data/lib/bashcov/version.rb +1 -1
- data/lib/bashcov/xtrace.rb +8 -4
- data/lib/bashcov.rb +55 -5
- data/spec/bashcov/lexer_spec.rb +12 -14
- data/spec/bashcov/runner_spec.rb +30 -4
- data/spec/bashcov/xtrace_spec.rb +2 -2
- data/spec/bashcov_spec.rb +68 -0
- data/spec/spec_helper.rb +7 -0
- data/spec/support/common.rb +10 -0
- data/spec/support/test_app.rb +10 -7
- data/spec/test_app/README.md +1 -0
- data/spec/test_app/scripts/README.md +1 -0
- data/spec/test_app/scripts/case.sh +15 -0
- data/spec/test_app/scripts/stdin.sh +6 -0
- data/spec/test_app/test_suite.sh +3 -1
- metadata +28 -2
data/.rspec
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Bashcov [](https://travis-ci.org/infertux/bashcov)
|
1
|
+
# Bashcov [](https://travis-ci.org/infertux/bashcov) [](https://codeclimate.com/github/infertux/bashcov)
|
2
2
|
|
3
3
|
[bashcov] is [simplecov] for Bash.
|
4
4
|
|
data/Rakefile
CHANGED
data/bashcov.gemspec
CHANGED
data/bin/bashcov
CHANGED
@@ -5,14 +5,9 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
6
6
|
require 'bashcov'
|
7
7
|
|
8
|
-
|
9
|
-
$stderr.puts "#{File.basename(__FILE__)} takes exactly one argument."
|
10
|
-
exit 1
|
11
|
-
end
|
8
|
+
Bashcov.parse_options! ARGV
|
12
9
|
|
13
|
-
|
14
|
-
|
15
|
-
runner = Bashcov::Runner.new filename
|
10
|
+
runner = Bashcov::Runner.new Bashcov.options.filename
|
16
11
|
runner.run
|
17
12
|
coverage = runner.result
|
18
13
|
|
data/lib/bashcov/lexer.rb
CHANGED
@@ -26,7 +26,7 @@ module Bashcov
|
|
26
26
|
|
27
27
|
# Lines containing only one of these keywords are irrelevant for coverage
|
28
28
|
def is
|
29
|
-
%w(esac fi then do done else { })
|
29
|
+
%w(esac fi then do done else { } ;;)
|
30
30
|
end
|
31
31
|
|
32
32
|
# Lines starting with one of these tokens are irrelevant for coverage
|
data/lib/bashcov/runner.rb
CHANGED
@@ -1,24 +1,46 @@
|
|
1
|
-
require '
|
1
|
+
require 'open4'
|
2
2
|
|
3
3
|
module Bashcov
|
4
4
|
class Runner
|
5
|
-
attr_reader :
|
5
|
+
attr_reader :stdout, :stderr
|
6
6
|
|
7
7
|
def initialize filename
|
8
8
|
@filename = File.expand_path(filename)
|
9
9
|
end
|
10
10
|
|
11
11
|
def run
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
setup
|
13
|
+
|
14
|
+
Open4::popen4(@command) do |pid, stdin, stdout, stderr|
|
15
|
+
stdin = $stdin # bind stdin
|
16
|
+
|
17
|
+
[ # we need threads here to stream output in realtime
|
18
|
+
Thread.new { # stdout
|
19
|
+
stdout.each do |line|
|
20
|
+
$stdout.puts line unless Bashcov.options.mute
|
21
|
+
@stdout << line
|
22
|
+
end
|
23
|
+
},
|
24
|
+
Thread.new { # stderr
|
25
|
+
stderr.each do |line|
|
26
|
+
unless Bashcov.options.mute
|
27
|
+
xtrace = Xtrace.new [line]
|
28
|
+
$stderr.puts line if xtrace.xtrace_output.empty?
|
29
|
+
end
|
30
|
+
@stderr << line
|
31
|
+
end
|
32
|
+
}
|
33
|
+
].map(&:join)
|
34
|
+
end
|
18
35
|
end
|
19
36
|
|
20
37
|
def result
|
21
|
-
|
38
|
+
if Bashcov.options.skip_uncovered
|
39
|
+
files = {}
|
40
|
+
else
|
41
|
+
files = find_bash_files "#{Bashcov.root_directory}/**/*.sh"
|
42
|
+
end
|
43
|
+
|
22
44
|
files = add_coverage_result files
|
23
45
|
files = ignore_irrelevant_lines files
|
24
46
|
end
|
@@ -27,7 +49,7 @@ module Bashcov
|
|
27
49
|
files = {}
|
28
50
|
|
29
51
|
# grab all bash files in project root and mark them uncovered
|
30
|
-
|
52
|
+
Dir[directory].each do |file|
|
31
53
|
absolute_path = File.expand_path(file)
|
32
54
|
next unless File.file?(absolute_path)
|
33
55
|
|
@@ -38,12 +60,11 @@ module Bashcov
|
|
38
60
|
end
|
39
61
|
|
40
62
|
def add_coverage_result files
|
41
|
-
xtraced_files = Xtrace.new(@
|
42
|
-
xtraced_files.delete @filename # drop the test suite file
|
63
|
+
xtraced_files = Xtrace.new(@stderr).files
|
43
64
|
|
44
65
|
xtraced_files.each do |file, lines|
|
45
66
|
lines.each_with_index do |line, lineno|
|
46
|
-
files[file] ||= Bashcov.coverage_array(file)
|
67
|
+
files[file] ||= Bashcov.coverage_array(file)
|
47
68
|
files[file][lineno] = line if line
|
48
69
|
end
|
49
70
|
end
|
@@ -62,18 +83,20 @@ module Bashcov
|
|
62
83
|
|
63
84
|
private
|
64
85
|
|
65
|
-
def
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
86
|
+
def setup
|
87
|
+
inject_xtrace_flag
|
88
|
+
|
89
|
+
@stdout = []
|
90
|
+
@stderr = []
|
70
91
|
|
71
|
-
|
72
|
-
%w(verbose xtrace)
|
92
|
+
@command = "PS4='#{Xtrace.ps4}' #{@filename}"
|
73
93
|
end
|
74
94
|
|
75
|
-
def
|
76
|
-
'
|
95
|
+
def inject_xtrace_flag
|
96
|
+
# SHELLOPTS must be exported so we use Ruby's ENV variable
|
97
|
+
existing_flags = (ENV['SHELLOPTS'] || '').split(':')
|
98
|
+
ENV['SHELLOPTS'] = (existing_flags | ['xtrace']).join(':')
|
77
99
|
end
|
78
100
|
end
|
79
101
|
end
|
102
|
+
|
data/lib/bashcov/version.rb
CHANGED
data/lib/bashcov/xtrace.rb
CHANGED
@@ -1,15 +1,19 @@
|
|
1
1
|
module Bashcov
|
2
2
|
class Xtrace
|
3
3
|
def initialize output
|
4
|
-
|
4
|
+
raise "#{output} must be an array" unless output.is_a? Array
|
5
|
+
@lines = output
|
6
|
+
end
|
7
|
+
|
8
|
+
def xtrace_output
|
9
|
+
@lines.select { |line| line =~ Xtrace.line_regexp }
|
5
10
|
end
|
6
11
|
|
7
12
|
def files
|
8
13
|
files = {}
|
9
14
|
|
10
|
-
|
11
|
-
|
12
|
-
|
15
|
+
xtrace_output.each do |line|
|
16
|
+
match = line.match(Xtrace.line_regexp)
|
13
17
|
filename = File.expand_path(match[:filename], Bashcov.root_directory)
|
14
18
|
next if File.directory? filename
|
15
19
|
raise "#{filename} is not a file" unless File.file? filename
|
data/lib/bashcov.rb
CHANGED
@@ -1,11 +1,58 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
1
|
+
require 'optparse'
|
2
|
+
require 'ostruct'
|
3
|
+
require 'bashcov/version'
|
4
|
+
require 'bashcov/lexer'
|
5
|
+
require 'bashcov/line'
|
6
|
+
require 'bashcov/runner'
|
7
|
+
require 'bashcov/xtrace'
|
6
8
|
|
7
9
|
module Bashcov
|
8
10
|
class << self
|
11
|
+
attr_reader :options
|
12
|
+
|
13
|
+
def set_default_options!
|
14
|
+
@options ||= OpenStruct.new
|
15
|
+
@options.skip_uncovered = false
|
16
|
+
@options.mute = false
|
17
|
+
end
|
18
|
+
|
19
|
+
def parse_options! args
|
20
|
+
OptionParser.new do |opts|
|
21
|
+
opts.banner = "Usage: #{opts.program_name} [options] <filename>"
|
22
|
+
opts.version = Bashcov::VERSION
|
23
|
+
|
24
|
+
opts.separator ""
|
25
|
+
opts.separator "Specific options:"
|
26
|
+
|
27
|
+
opts.on("-s", "--skip-uncovered", "Do not report uncovered files") do |s|
|
28
|
+
@options.skip_uncovered = s
|
29
|
+
end
|
30
|
+
|
31
|
+
opts.on("-m", "--mute", "Do not print script output") do |m|
|
32
|
+
@options.mute = m
|
33
|
+
end
|
34
|
+
|
35
|
+
opts.separator ""
|
36
|
+
opts.separator "Common options:"
|
37
|
+
|
38
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
39
|
+
abort(opts.help)
|
40
|
+
end
|
41
|
+
|
42
|
+
opts.on_tail("--version", "Show version") do
|
43
|
+
puts opts.ver
|
44
|
+
exit
|
45
|
+
end
|
46
|
+
|
47
|
+
end.parse!(args)
|
48
|
+
|
49
|
+
if args.one?
|
50
|
+
@options.filename = args.shift
|
51
|
+
else
|
52
|
+
abort("You must give exactly one file to execute.")
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
9
56
|
def root_directory
|
10
57
|
Dir.getwd
|
11
58
|
end
|
@@ -20,3 +67,6 @@ module Bashcov
|
|
20
67
|
end
|
21
68
|
end
|
22
69
|
end
|
70
|
+
|
71
|
+
Bashcov.set_default_options!
|
72
|
+
|
data/spec/bashcov/lexer_spec.rb
CHANGED
@@ -3,26 +3,24 @@ require 'spec_helper'
|
|
3
3
|
shared_examples "a bash file" do
|
4
4
|
describe "#irrelevant_lines" do
|
5
5
|
it "returns irrelevant lines" do
|
6
|
-
|
6
|
+
coverage = expected_coverage[filename]
|
7
|
+
irrelevant_lines = 0.upto(coverage.size - 1).select do |idx|
|
8
|
+
coverage[idx].nil?
|
9
|
+
end
|
10
|
+
|
11
|
+
lexer = Bashcov::Lexer.new filename
|
7
12
|
lexer.irrelevant_lines.should =~ irrelevant_lines
|
8
13
|
end
|
9
14
|
end
|
10
15
|
end
|
11
16
|
|
12
17
|
describe Bashcov::Lexer do
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
let(:filename) { 'function.sh' }
|
20
|
-
let(:irrelevant_lines) { [0, 1, 2, 4, 5, 6, 9, 10, 13] }
|
21
|
-
end
|
22
|
-
|
23
|
-
it_behaves_like "a bash file" do
|
24
|
-
let(:filename) { 'sourced.txt' }
|
25
|
-
let(:irrelevant_lines) { [0, 1, 3] }
|
18
|
+
expected_coverage.keys.each do |filename|
|
19
|
+
context filename do
|
20
|
+
it_behaves_like "a bash file" do
|
21
|
+
let(:filename) { filename }
|
22
|
+
end
|
23
|
+
end
|
26
24
|
end
|
27
25
|
end
|
28
26
|
|
data/spec/bashcov/runner_spec.rb
CHANGED
@@ -12,18 +12,18 @@ describe Bashcov::Runner do
|
|
12
12
|
|
13
13
|
it "adds the flags" do
|
14
14
|
runner.run
|
15
|
-
ENV['SHELLOPTS'].should == '
|
15
|
+
ENV['SHELLOPTS'].should == 'xtrace'
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
context "with an existing SHELLOPTS variable" do
|
20
20
|
before do
|
21
|
-
ENV['SHELLOPTS'] = 'posix
|
21
|
+
ENV['SHELLOPTS'] = 'posix'
|
22
22
|
end
|
23
23
|
|
24
24
|
it "merges the flags" do
|
25
25
|
runner.run
|
26
|
-
ENV['SHELLOPTS'].should == 'posix:
|
26
|
+
ENV['SHELLOPTS'].should == 'posix:xtrace'
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
@@ -56,7 +56,7 @@ describe Bashcov::Runner do
|
|
56
56
|
it { should be_a Hash }
|
57
57
|
|
58
58
|
it "contains all files" do
|
59
|
-
subject.keys.should =~
|
59
|
+
subject.keys.should =~ bash_files | executed_files
|
60
60
|
end
|
61
61
|
|
62
62
|
it "adds correct coverage results" do
|
@@ -77,5 +77,31 @@ describe Bashcov::Runner do
|
|
77
77
|
|
78
78
|
runner.result.should == expected_coverage
|
79
79
|
end
|
80
|
+
|
81
|
+
context "with options.skip_uncovered = true" do
|
82
|
+
before do
|
83
|
+
Bashcov.options.skip_uncovered = true
|
84
|
+
end
|
85
|
+
|
86
|
+
it "does not include uncovered files" do
|
87
|
+
runner.run
|
88
|
+
(runner.result.keys & uncovered_files).should be_empty
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
context "with options.mute = false" do
|
93
|
+
before do
|
94
|
+
Bashcov.options.mute = false
|
95
|
+
end
|
96
|
+
|
97
|
+
it "does not print xtrace output" do
|
98
|
+
$stderr.should_receive(:puts).at_least(:once) do |line|
|
99
|
+
line.should_not match Bashcov::Xtrace.line_regexp
|
100
|
+
end
|
101
|
+
|
102
|
+
runner.run
|
103
|
+
end
|
104
|
+
end
|
80
105
|
end
|
81
106
|
end
|
107
|
+
|
data/spec/bashcov/xtrace_spec.rb
CHANGED
@@ -4,7 +4,7 @@ describe Bashcov::Xtrace do
|
|
4
4
|
let(:xtrace) {
|
5
5
|
runner = Bashcov::Runner.new test_suite
|
6
6
|
runner.run
|
7
|
-
Bashcov::Xtrace.new runner.
|
7
|
+
Bashcov::Xtrace.new runner.stderr
|
8
8
|
}
|
9
9
|
|
10
10
|
describe "#files" do
|
@@ -14,7 +14,7 @@ describe Bashcov::Xtrace do
|
|
14
14
|
it { should be_a Hash }
|
15
15
|
|
16
16
|
it "contains expected files" do
|
17
|
-
subject.keys.should =~ executed_files
|
17
|
+
subject.keys.should =~ executed_files
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
data/spec/bashcov_spec.rb
CHANGED
@@ -1,6 +1,74 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
+
shared_examples "a fatal error" do
|
4
|
+
it "outputs to stderr" do
|
5
|
+
$stderr.should_receive(:write).at_least(:once)
|
6
|
+
ignore_exception { subject }
|
7
|
+
end
|
8
|
+
|
9
|
+
it "exits with non-zero" do
|
10
|
+
expect { subject }.to raise_error { |error|
|
11
|
+
error.should be_a SystemExit
|
12
|
+
error.status.should_not == 0
|
13
|
+
}
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
3
17
|
describe Bashcov do
|
18
|
+
describe ".parse_options!" do
|
19
|
+
before { @args = [] }
|
20
|
+
|
21
|
+
subject { Bashcov.parse_options! @args }
|
22
|
+
|
23
|
+
context "without any options" do
|
24
|
+
it_behaves_like "a fatal error"
|
25
|
+
end
|
26
|
+
|
27
|
+
context "with a filename" do
|
28
|
+
before { @args << 'script.sh' }
|
29
|
+
|
30
|
+
context "with the --skip-uncovered flag" do
|
31
|
+
before { @args << '--skip-uncovered' }
|
32
|
+
|
33
|
+
it "sets it properly" do
|
34
|
+
subject
|
35
|
+
Bashcov.options.skip_uncovered.should be_true
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "with the --mute flag" do
|
40
|
+
before { @args << '--mute' }
|
41
|
+
|
42
|
+
it "sets it properly" do
|
43
|
+
subject
|
44
|
+
Bashcov.options.mute.should be_true
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context "with the --help flag" do
|
49
|
+
before { @args << '--help' }
|
50
|
+
|
51
|
+
it_behaves_like "a fatal error"
|
52
|
+
end
|
53
|
+
|
54
|
+
context "with the --version flag" do
|
55
|
+
before { @args << '--version' }
|
56
|
+
|
57
|
+
it "outputs to stdout" do
|
58
|
+
$stdout.should_receive(:write).at_least(:once)
|
59
|
+
ignore_exception { subject }
|
60
|
+
end
|
61
|
+
|
62
|
+
it "exits with zero" do
|
63
|
+
expect { subject }.to raise_error { |error|
|
64
|
+
error.should be_a SystemExit
|
65
|
+
error.status.should == 0
|
66
|
+
}
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
4
72
|
describe ".link" do
|
5
73
|
it "includes the version" do
|
6
74
|
Bashcov.link.should include Bashcov::VERSION
|
data/spec/spec_helper.rb
CHANGED
data/spec/support/test_app.rb
CHANGED
@@ -10,16 +10,16 @@ def test_suite
|
|
10
10
|
"#{test_app}/test_suite.sh"
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
14
|
-
|
13
|
+
def uncovered_files
|
14
|
+
["#{test_app}/never_called.sh"]
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
18
|
-
|
17
|
+
def executed_files
|
18
|
+
bash_files - uncovered_files + ["#{scripts}/sourced.txt"]
|
19
19
|
end
|
20
20
|
|
21
|
-
def
|
22
|
-
files_in("#{test_app}
|
21
|
+
def bash_files
|
22
|
+
files_in("#{test_app}/**/*.sh")
|
23
23
|
end
|
24
24
|
|
25
25
|
def files_in directory
|
@@ -29,13 +29,16 @@ end
|
|
29
29
|
def expected_coverage
|
30
30
|
{
|
31
31
|
"#{test_app}/never_called.sh" => [nil, nil, 0, nil],
|
32
|
+
"#{test_app}/scripts/case.sh" => [nil, nil, nil, 2, 1, nil, 0, 0, 1, nil, nil, nil, 1, 1, nil],
|
32
33
|
"#{test_app}/scripts/function.sh" => [nil, nil, nil, 2, nil, nil, nil, 1, 1, nil, nil, 1, 1, nil],
|
33
34
|
"#{test_app}/scripts/long_line.sh" => [nil, nil, 1, 1, 1, 0, nil],
|
34
35
|
"#{test_app}/scripts/nested/simple.sh" => [nil, nil, nil, nil, 1, 1, nil, 0, nil, nil, 1, nil, nil],
|
35
36
|
"#{test_app}/scripts/one_liner.sh" => [nil, nil, 2, nil, 1, nil, 0, nil, nil],
|
36
37
|
"#{test_app}/scripts/simple.sh" => [nil, nil, nil, nil, 1, 1, nil, 0, nil, nil, 1, nil, nil],
|
37
38
|
"#{test_app}/scripts/source.sh" => [nil, nil, 1, nil, 2, nil],
|
38
|
-
"#{test_app}/scripts/sourced.txt" => [nil, nil, 1, nil]
|
39
|
+
"#{test_app}/scripts/sourced.txt" => [nil, nil, 1, nil],
|
40
|
+
"#{test_app}/scripts/stdin.sh" => [nil, nil, 1, 1, 1, nil],
|
41
|
+
"#{test_app}/test_suite.sh" => [nil, nil, 2, nil, nil, 2, nil]
|
39
42
|
}
|
40
43
|
end
|
41
44
|
|
@@ -0,0 +1 @@
|
|
1
|
+
I'm just a README, I shouldn't interfere with anything.
|
@@ -0,0 +1 @@
|
|
1
|
+
I'm just a README, I shouldn't interfere with anything.
|
data/spec/test_app/test_suite.sh
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bashcov
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: simplecov
|
@@ -27,6 +27,22 @@ dependencies:
|
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: open4
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
30
46
|
- !ruby/object:Gem::Dependency
|
31
47
|
name: rake
|
32
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -121,9 +137,13 @@ files:
|
|
121
137
|
- spec/bashcov/xtrace_spec.rb
|
122
138
|
- spec/bashcov_spec.rb
|
123
139
|
- spec/spec_helper.rb
|
140
|
+
- spec/support/common.rb
|
124
141
|
- spec/support/test_app.rb
|
125
142
|
- spec/test_app/.simplecov
|
143
|
+
- spec/test_app/README.md
|
126
144
|
- spec/test_app/never_called.sh
|
145
|
+
- spec/test_app/scripts/README.md
|
146
|
+
- spec/test_app/scripts/case.sh
|
127
147
|
- spec/test_app/scripts/function.sh
|
128
148
|
- spec/test_app/scripts/long_line.sh
|
129
149
|
- spec/test_app/scripts/nested/simple.sh
|
@@ -131,6 +151,7 @@ files:
|
|
131
151
|
- spec/test_app/scripts/simple.sh
|
132
152
|
- spec/test_app/scripts/source.sh
|
133
153
|
- spec/test_app/scripts/sourced.txt
|
154
|
+
- spec/test_app/scripts/stdin.sh
|
134
155
|
- spec/test_app/test_suite.sh
|
135
156
|
homepage: https://github.com/infertux/bashcov
|
136
157
|
licenses: []
|
@@ -162,9 +183,13 @@ test_files:
|
|
162
183
|
- spec/bashcov/xtrace_spec.rb
|
163
184
|
- spec/bashcov_spec.rb
|
164
185
|
- spec/spec_helper.rb
|
186
|
+
- spec/support/common.rb
|
165
187
|
- spec/support/test_app.rb
|
166
188
|
- spec/test_app/.simplecov
|
189
|
+
- spec/test_app/README.md
|
167
190
|
- spec/test_app/never_called.sh
|
191
|
+
- spec/test_app/scripts/README.md
|
192
|
+
- spec/test_app/scripts/case.sh
|
168
193
|
- spec/test_app/scripts/function.sh
|
169
194
|
- spec/test_app/scripts/long_line.sh
|
170
195
|
- spec/test_app/scripts/nested/simple.sh
|
@@ -172,4 +197,5 @@ test_files:
|
|
172
197
|
- spec/test_app/scripts/simple.sh
|
173
198
|
- spec/test_app/scripts/source.sh
|
174
199
|
- spec/test_app/scripts/sourced.txt
|
200
|
+
- spec/test_app/scripts/stdin.sh
|
175
201
|
- spec/test_app/test_suite.sh
|