adlint-benchmark 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS +25 -0
- data/COPYING +674 -0
- data/ChangeLog +5 -0
- data/INSTALL +54 -0
- data/MANIFEST +15 -0
- data/NEWS +31 -0
- data/README +57 -0
- data/Rakefile +84 -0
- data/bin/adlint_bm +99 -0
- data/lib/adlint/benchmark/driver.rb +71 -0
- data/lib/adlint/benchmark/target/screen_4_0_3_process_c.rb +33063 -0
- data/lib/adlint/benchmark/target/screen_4_0_3_process_c_small.rb +27065 -0
- data/lib/adlint/benchmark/target.rb +209 -0
- data/lib/adlint/benchmark/version.rb +73 -0
- data/lib/adlint/benchmark.rb +41 -0
- metadata +82 -0
data/INSTALL
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
--
|
2
|
+
___ ____ __ ___ _________
|
3
|
+
/ | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
|
4
|
+
/ /| | / / / / / / / |/ / / / AdLint - Advanced Lint
|
5
|
+
/ __ |/ /_/ / /___/ / /| / / /
|
6
|
+
/_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
|
7
|
+
|
8
|
+
This file is part of adlint-benchmark.
|
9
|
+
|
10
|
+
adlint-benchmark is free software: you can redistribute it and/or modify it
|
11
|
+
under the terms of the GNU General Public License as published by the Free
|
12
|
+
Software Foundation, either version 3 of the License, or (at your option) any
|
13
|
+
later version.
|
14
|
+
|
15
|
+
adlint-benchmark is distributed in the hope that it will be useful, but
|
16
|
+
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
18
|
+
details.
|
19
|
+
|
20
|
+
You should have received a copy of the GNU General Public License along with
|
21
|
+
adlint-benchmark. If not, see <http://www.gnu.org/licenses/>.
|
22
|
+
|
23
|
+
++
|
24
|
+
|
25
|
+
=== Requirements
|
26
|
+
|
27
|
+
* \AdLint 2.6.10 or later [*mandatory*]
|
28
|
+
|
29
|
+
|
30
|
+
=== Installation
|
31
|
+
|
32
|
+
You can install adlint-benchmark by following command.
|
33
|
+
|
34
|
+
If \AdLint 2.6.10 or later version has not been installed, it will be installed
|
35
|
+
automatically before installing adlint-benchmark.
|
36
|
+
|
37
|
+
% gem install adlint-benchmark
|
38
|
+
or
|
39
|
+
% sudo gem install adlint-benchmark
|
40
|
+
|
41
|
+
|
42
|
+
=== Usage
|
43
|
+
|
44
|
+
Run benchmark using Ruby's benchmark library.
|
45
|
+
|
46
|
+
% adlint_bm -p
|
47
|
+
user system total real
|
48
|
+
screen-4.0.3/process.c.small 16.190000 0.040000 16.230000 ( 16.376713)
|
49
|
+
16.600s user, 0.060s system, 00:00:16.66 total
|
50
|
+
|
51
|
+
Run benchmark using time(1).
|
52
|
+
|
53
|
+
% time adlint_bm
|
54
|
+
adlint_bm 0.54s user 0.04s system 99% cpu 0.584 total
|
data/MANIFEST
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
AUTHORS
|
2
|
+
COPYING
|
3
|
+
ChangeLog
|
4
|
+
INSTALL
|
5
|
+
MANIFEST
|
6
|
+
NEWS
|
7
|
+
README
|
8
|
+
Rakefile
|
9
|
+
bin/adlint_bm
|
10
|
+
lib/adlint/benchmark.rb
|
11
|
+
lib/adlint/benchmark/driver.rb
|
12
|
+
lib/adlint/benchmark/target.rb
|
13
|
+
lib/adlint/benchmark/target/screen_4_0_3_process_c.rb
|
14
|
+
lib/adlint/benchmark/target/screen_4_0_3_process_c_small.rb
|
15
|
+
lib/adlint/benchmark/version.rb
|
data/NEWS
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
--
|
2
|
+
___ ____ __ ___ _________
|
3
|
+
/ | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
|
4
|
+
/ /| | / / / / / / / |/ / / / AdLint - Advanced Lint
|
5
|
+
/ __ |/ /_/ / /___/ / /| / / /
|
6
|
+
/_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
|
7
|
+
|
8
|
+
This file is part of adlint-benchmark.
|
9
|
+
|
10
|
+
adlint-benchmark is free software: you can redistribute it and/or modify it
|
11
|
+
under the terms of the GNU General Public License as published by the Free
|
12
|
+
Software Foundation, either version 3 of the License, or (at your option) any
|
13
|
+
later version.
|
14
|
+
|
15
|
+
adlint-benchmark is distributed in the hope that it will be useful, but
|
16
|
+
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
18
|
+
details.
|
19
|
+
|
20
|
+
You should have received a copy of the GNU General Public License along with
|
21
|
+
adlint-benchmark. If not, see <http://www.gnu.org/licenses/>.
|
22
|
+
|
23
|
+
++
|
24
|
+
|
25
|
+
=== 1.0.0 is released (2012-11-27)
|
26
|
+
|
27
|
+
This is the initial GA release of adlint-benchmark.
|
28
|
+
|
29
|
+
==== Implemented features
|
30
|
+
|
31
|
+
* \Benchmark for \AdLint's single module analysis of `screen-4.0.3/process.c'
|
data/README
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
--
|
2
|
+
___ ____ __ ___ _________
|
3
|
+
/ | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
|
4
|
+
/ /| | / / / / / / / |/ / / / AdLint - Advanced Lint
|
5
|
+
/ __ |/ /_/ / /___/ / /| / / /
|
6
|
+
/_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
|
7
|
+
|
8
|
+
This file is part of adlint-benchmark.
|
9
|
+
|
10
|
+
adlint-benchmark is free software: you can redistribute it and/or modify it
|
11
|
+
under the terms of the GNU General Public License as published by the Free
|
12
|
+
Software Foundation, either version 3 of the License, or (at your option) any
|
13
|
+
later version.
|
14
|
+
|
15
|
+
adlint-benchmark is distributed in the hope that it will be useful, but
|
16
|
+
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
18
|
+
details.
|
19
|
+
|
20
|
+
You should have received a copy of the GNU General Public License along with
|
21
|
+
adlint-benchmark. If not, see <http://www.gnu.org/licenses/>.
|
22
|
+
|
23
|
+
++
|
24
|
+
|
25
|
+
== What is
|
26
|
+
|
27
|
+
adlint-benchmark is a simple benchmark of \AdLint.
|
28
|
+
|
29
|
+
== News
|
30
|
+
|
31
|
+
:include:NEWS
|
32
|
+
|
33
|
+
== How to Install
|
34
|
+
|
35
|
+
:include:INSTALL
|
36
|
+
|
37
|
+
== License
|
38
|
+
|
39
|
+
Copyright (C) 2010-2012, {OGIS-RI}[http://www.ogis-ri.co.jp/] Co.,Ltd.
|
40
|
+
|
41
|
+
adlint-postfilter is free software: you can redistribute it and/or modify it
|
42
|
+
under the terms of the GNU General Public License as published by the Free
|
43
|
+
Software Foundation, either version 3 of the License, or (at your option) any
|
44
|
+
later version.
|
45
|
+
|
46
|
+
adlint-postfilter is distributed in the hope that it will be useful, but
|
47
|
+
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
48
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
49
|
+
details.
|
50
|
+
|
51
|
+
You should have received a copy of the GNU General Public License along with
|
52
|
+
adlint-postfilter. If not, see
|
53
|
+
<{http\://www.gnu.org/licenses/}[http://www.gnu.org/licenses/]>.
|
54
|
+
|
55
|
+
== Authors
|
56
|
+
|
57
|
+
:include:AUTHORS
|
data/Rakefile
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
#--
|
2
|
+
# ___ ____ __ ___ _________
|
3
|
+
# / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
|
4
|
+
# / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
|
5
|
+
# / __ |/ /_/ / /___/ / /| / / /
|
6
|
+
# /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
|
7
|
+
#
|
8
|
+
# This file is part of adlint-benchmark.
|
9
|
+
#
|
10
|
+
# adlint-benchmark is free software: you can redistribute it and/or modify it
|
11
|
+
# under the terms of the GNU General Public License as published by the Free
|
12
|
+
# Software Foundation, either version 3 of the License, or (at your option) any
|
13
|
+
# later version.
|
14
|
+
#
|
15
|
+
# adlint-benchmark is distributed in the hope that it will be useful, but
|
16
|
+
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
18
|
+
# more details.
|
19
|
+
#
|
20
|
+
# You should have received a copy of the GNU General Public License along with
|
21
|
+
# adlint-benchmark. If not, see <http://www.gnu.org/licenses/>.
|
22
|
+
#
|
23
|
+
#++
|
24
|
+
|
25
|
+
require "rubygems/package_task"
|
26
|
+
require "rdoc/task"
|
27
|
+
|
28
|
+
$: << File.expand_path("lib", File.dirname(__FILE__))
|
29
|
+
require "adlint/benchmark/version"
|
30
|
+
|
31
|
+
task :default => [:gem]
|
32
|
+
task :clobber => [:clobber_package, :clobber_rdoc]
|
33
|
+
|
34
|
+
gemspec = Gem::Specification.new do |s|
|
35
|
+
s.name = "adlint-benchmark"
|
36
|
+
s.version = AdLint::Benchmark::SHORT_VERSION
|
37
|
+
s.date = AdLint::Benchmark::RELEASE_DATE
|
38
|
+
s.homepage = "http://adlint-goodies.sourceforge.net/"
|
39
|
+
s.licenses = ["GPLv3+: GNU General Public License version 3 or later"]
|
40
|
+
s.author = "Yutaka Yanoh"
|
41
|
+
s.email = "yanoh@users.sourceforge.net"
|
42
|
+
s.summary = "Simple benchmark of AdLint"
|
43
|
+
s.description = "Simple benchmark of AdLint"
|
44
|
+
|
45
|
+
s.required_ruby_version = Gem::Requirement.new(">= 1.9.3")
|
46
|
+
|
47
|
+
s.executables = %w(adlint_bm)
|
48
|
+
s.require_paths = %w(lib)
|
49
|
+
manifest_fpath = File.expand_path("MANIFEST", File.dirname(__FILE__))
|
50
|
+
s.files = File.readlines(manifest_fpath).map { |str| str.chomp }
|
51
|
+
|
52
|
+
s.has_rdoc = true
|
53
|
+
s.extra_rdoc_files = %w(README)
|
54
|
+
s.rdoc_options = ["--main", "README", "--charset", "utf-8"]
|
55
|
+
|
56
|
+
s.add_dependency("adlint", ">= 2.6.10")
|
57
|
+
end
|
58
|
+
|
59
|
+
Gem::PackageTask.new(gemspec) do |pkg|
|
60
|
+
pkg.need_zip = true
|
61
|
+
pkg.need_tar_bz2 = true
|
62
|
+
end
|
63
|
+
|
64
|
+
RDoc::Task.new(:rdoc) do |rd|
|
65
|
+
rd.rdoc_dir = "rdoc"
|
66
|
+
rd.title = "adlint-benchmark #{AdLint::Benchmark::SHORT_VERSION}"
|
67
|
+
rd.main = "README"
|
68
|
+
rd.rdoc_files.include("README")
|
69
|
+
rd.rdoc_files.include("bin/*")
|
70
|
+
rd.rdoc_files.include("lib/**/*.rb")
|
71
|
+
rd.options << "--charset=utf-8" << "--all"
|
72
|
+
end
|
73
|
+
|
74
|
+
desc "Remove package products and RDoc HTML files"
|
75
|
+
task :clobber
|
76
|
+
|
77
|
+
desc "Generate tags file"
|
78
|
+
task :tags do
|
79
|
+
ctags *Dir["bin/*", "lib/**/*.rb"]
|
80
|
+
end
|
81
|
+
|
82
|
+
def ctags(*files)
|
83
|
+
sh "ctags " + files.join(" ")
|
84
|
+
end
|
data/bin/adlint_bm
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
#
|
4
|
+
# Simple benchmark of AdLint.
|
5
|
+
#
|
6
|
+
# Author:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
|
7
|
+
# Copyright:: Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
|
8
|
+
# License:: GPLv3+: GNU General Public License version 3 or later
|
9
|
+
#
|
10
|
+
# Owner:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
|
11
|
+
|
12
|
+
#--
|
13
|
+
# ___ ____ __ ___ _________
|
14
|
+
# / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
|
15
|
+
# / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
|
16
|
+
# / __ |/ /_/ / /___/ / /| / / /
|
17
|
+
# /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
|
18
|
+
#
|
19
|
+
# This file is part of adlint-benchmark.
|
20
|
+
#
|
21
|
+
# adlint-benchmark is free software: you can redistribute it and/or modify it
|
22
|
+
# under the terms of the GNU General Public License as published by the Free
|
23
|
+
# Software Foundation, either version 3 of the License, or (at your option) any
|
24
|
+
# later version.
|
25
|
+
#
|
26
|
+
# adlint-benchmark is distributed in the hope that it will be useful, but
|
27
|
+
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
28
|
+
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
29
|
+
# more details.
|
30
|
+
#
|
31
|
+
# You should have received a copy of the GNU General Public License along with
|
32
|
+
# adlnt-benchmark. If not, see <http://www.gnu.org/licenses/>.
|
33
|
+
#
|
34
|
+
#++
|
35
|
+
|
36
|
+
require "pathname"
|
37
|
+
|
38
|
+
BENCHMARK_BINDIR = Pathname.new(__FILE__).realpath.dirname
|
39
|
+
BENCHMARK_PREFIX = Pathname.new("..").expand_path(BENCHMARK_BINDIR)
|
40
|
+
BENCHMARK_LIBDIR = Pathname.new("lib").expand_path(BENCHMARK_PREFIX)
|
41
|
+
|
42
|
+
$:.unshift(BENCHMARK_LIBDIR.to_s)
|
43
|
+
|
44
|
+
require "adlint/benchmark"
|
45
|
+
|
46
|
+
BENCHMARK_VERSION = "adlint-benchmark #{AdLint::Benchmark::VERSION}"
|
47
|
+
|
48
|
+
USAGE = <<EOS
|
49
|
+
Usage: adlint_bm [options]
|
50
|
+
|
51
|
+
Benchmark Options:
|
52
|
+
-t, --target [NAME] Analysis target name (screen-4.0.3/process.c.small)
|
53
|
+
-p, --print-time Display elapsed time
|
54
|
+
|
55
|
+
Other Options:
|
56
|
+
--version Display version information
|
57
|
+
--copyright Display copyright information
|
58
|
+
--prefix Display prefix directory of adlint-benchmark
|
59
|
+
-h, --help Display this message
|
60
|
+
EOS
|
61
|
+
|
62
|
+
require "getoptlong"
|
63
|
+
|
64
|
+
parser = GetoptLong.new(["--target", "-t", GetoptLong::REQUIRED_ARGUMENT],
|
65
|
+
["--print-time", "-p", GetoptLong::NO_ARGUMENT],
|
66
|
+
["--version", GetoptLong::NO_ARGUMENT],
|
67
|
+
["--copyright", GetoptLong::NO_ARGUMENT],
|
68
|
+
["--prefix", GetoptLong::NO_ARGUMENT],
|
69
|
+
["--help", "-h", GetoptLong::NO_ARGUMENT])
|
70
|
+
|
71
|
+
begin
|
72
|
+
target_name = "screen-4.0.3/process.c.small"
|
73
|
+
print_time = false
|
74
|
+
parser.each_option do |optname, optarg|
|
75
|
+
case optname
|
76
|
+
when "--target"
|
77
|
+
target_name = optarg
|
78
|
+
when "--print-time"
|
79
|
+
print_time = true
|
80
|
+
when "--version"
|
81
|
+
puts BENCHMARK_VERSION, AdLint::Benchmark::AUTHOR
|
82
|
+
exit 0
|
83
|
+
when "--copyright"
|
84
|
+
puts AdLint::Benchmark::COPYRIGHT
|
85
|
+
exit 0
|
86
|
+
when "--prefix"
|
87
|
+
puts BENCHMARK_PREFIX
|
88
|
+
exit 0
|
89
|
+
when "--help"
|
90
|
+
puts USAGE
|
91
|
+
exit 0
|
92
|
+
end
|
93
|
+
end
|
94
|
+
rescue
|
95
|
+
end
|
96
|
+
|
97
|
+
AdLint::Benchmark.run(target_name, print_time)
|
98
|
+
|
99
|
+
exit 0
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# Benchmark driver.
|
2
|
+
#
|
3
|
+
# Author:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
|
4
|
+
# Copyright:: Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
|
5
|
+
# License:: GPLv3+: GNU General Public License version 3 or later
|
6
|
+
#
|
7
|
+
# Owner:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
|
8
|
+
|
9
|
+
#--
|
10
|
+
# ___ ____ __ ___ _________
|
11
|
+
# / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
|
12
|
+
# / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
|
13
|
+
# / __ |/ /_/ / /___/ / /| / / /
|
14
|
+
# /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
|
15
|
+
#
|
16
|
+
# This file is part of adlint-benchmark.
|
17
|
+
#
|
18
|
+
# adlint-benchmark is free software: you can redistribute it and/or modify it
|
19
|
+
# under the terms of the GNU General Public License as published by the Free
|
20
|
+
# Software Foundation, either version 3 of the License, or (at your option) any
|
21
|
+
# later version.
|
22
|
+
#
|
23
|
+
# adlint-benchmark is distributed in the hope that it will be useful, but
|
24
|
+
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
25
|
+
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
26
|
+
# more details.
|
27
|
+
#
|
28
|
+
# You should have received a copy of the GNU General Public License along with
|
29
|
+
# adlnt-benchmark. If not, see <http://www.gnu.org/licenses/>.
|
30
|
+
#
|
31
|
+
#++
|
32
|
+
|
33
|
+
module AdLint #:nodoc:
|
34
|
+
|
35
|
+
module Benchmark
|
36
|
+
def run(target_name, print_time = false)
|
37
|
+
if print_time
|
38
|
+
require "benchmark"
|
39
|
+
::Benchmark.bm(target_name.length) do |x|
|
40
|
+
x.report(target_name) { _run(target_name) }
|
41
|
+
end
|
42
|
+
else
|
43
|
+
_run(target_name)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
module_function :run
|
47
|
+
|
48
|
+
def _run(target_name)
|
49
|
+
if target = AnalysisTarget.load(target_name)
|
50
|
+
_nullify_console_output { target.analyze }
|
51
|
+
else
|
52
|
+
raise "no such target `#{target_name}'"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
module_function :_run
|
56
|
+
|
57
|
+
def _nullify_console_output(&block)
|
58
|
+
orig_stdout = $stdout.dup
|
59
|
+
orig_stderr = $stderr.dup
|
60
|
+
dev_null = File.open(File::NULL, "w")
|
61
|
+
$stdout.reopen(dev_null)
|
62
|
+
$stderr.reopen(dev_null)
|
63
|
+
yield
|
64
|
+
ensure
|
65
|
+
$stdout.reopen(orig_stdout)
|
66
|
+
$stderr.reopen(orig_stderr)
|
67
|
+
end
|
68
|
+
module_function :_nullify_console_output
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|