-
-
Notifications
You must be signed in to change notification settings - Fork 925
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2430 from jruby/truffle-jt
[Truffle] jt tool.
- 9.4.12.0
- 9.4.11.0
- 9.4.10.0
- 9.4.9.0
- 9.4.8.0
- 9.4.7.0
- 9.4.6.0
- 9.4.5.0
- 9.4.4.0
- 9.4.3.0
- 9.4.2.0
- 9.4.1.0
- 9.4.0.0
- 9.3.15.0
- 9.3.14.0
- 9.3.13.0
- 9.3.12.0
- 9.3.11.0
- 9.3.10.0
- 9.3.9.0
- 9.3.8.0
- 9.3.7.0
- 9.3.6.0
- 9.3.5.0
- 9.3.4.0
- 9.3.3.0
- 9.3.2.0
- 9.3.1.0
- 9.3.0.0
- 9.2.21.0
- 9.2.20.1
- 9.2.20.0
- 9.2.19.0
- 9.2.18.0
- 9.2.17.0
- 9.2.16.0
- 9.2.15.0
- 9.2.14.0
- 9.2.13.0
- 9.2.12.0
- 9.2.11.1
- 9.2.11.0
- 9.2.10.0
- 9.2.9.0
- 9.2.8.0
- 9.2.7.0
- 9.2.6.0
- 9.2.5.0
- 9.2.4.1
- 9.2.4.0
- 9.2.3.0
- 9.2.2.0
- 9.2.1.0
- 9.2.0.0
- 9.1.17.0
- 9.1.16.0
- 9.1.15.0
- 9.1.14.0
- 9.1.13.0
- 9.1.12.0
- 9.1.11.0
- 9.1.10.0
- 9.1.9.0
- 9.1.8.0
- 9.1.7.0
- 9.1.6.0
- 9.1.5.0
- 9.1.4.0
- 9.1.3.0
- 9.1.2.0
- 9.1.1.0
- 9.1.0.0
- 9.0.5.0
- 9.0.4.0
- 9.0.3.0
- 9.0.1.0
- 9.0.0.0
- 9.0.0.0.rc2
- 9.0.0.0.rc1
- 9.0.0.0.pre2
- 9.0.0.0.pre1
Showing
1 changed file
with
117 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
# Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. This | ||
# code is released under a tri EPL/GPL/LGPL license. You can use it, | ||
# redistribute it and/or modify it under the terms of the: | ||
# | ||
# Eclipse Public License version 1.0 | ||
# GNU General Public License version 2 | ||
# GNU Lesser General Public License version 2.1 | ||
|
||
# A workflow tool for JRuby+Truffle development | ||
|
||
# Recommended: function jt { ruby tool/jt.rb $@; } | ||
|
||
def sh(*args) | ||
system args.join(' ') | ||
raise "failed" unless $? == 0 | ||
end | ||
|
||
def mvn(*args) | ||
sh 'mvn', *args | ||
end | ||
|
||
def mspec(command, *args) | ||
sh 'ruby', 'spec/mspec/bin/mspec', command, '--config', 'spec/truffle/truffle.mspec', *args | ||
end | ||
|
||
def help | ||
puts 'jt build build' | ||
puts 'jt clean clean' | ||
puts 'jt rebuild clean and build' | ||
puts 'jt test run all specs' | ||
puts 'jt test spec/ruby/language run specs in this directory' | ||
puts 'jt test spec/ruby/language/while_spec.rb run specs in this file' | ||
puts 'jt tag spec/ruby/language tag failing specs in this directory' | ||
puts 'jt tag spec/ruby/language/while_spec.rb tag failing specs in this file' | ||
puts 'jt untag spec/ruby/language untag passing specs in this directory' | ||
puts 'jt untag spec/ruby/language/while_spec.rb untag passing specs in this file' | ||
puts 'jt findbugs run findbugs' | ||
end | ||
|
||
def build | ||
mvn 'package' | ||
end | ||
|
||
def clean | ||
mvn 'clean' | ||
end | ||
|
||
def rebuild | ||
clean | ||
build | ||
end | ||
|
||
def test(path=nil) | ||
if path.nil? | ||
mspec 'run', '--excl-tag', 'fails', ':language', ':core' | ||
elsif path.start_with? 'spec/ruby' | ||
mspec 'run', '--excl-tag', 'fails', path | ||
else | ||
raise "don't know how to test #{path}" | ||
end | ||
end | ||
|
||
def tag(path) | ||
mspec 'tag', '--add', 'fails', '--fail', path | ||
end | ||
|
||
def untag(path) | ||
puts | ||
puts "WARNING: untag is currently not very reliable - run test #{path} after and manually annotate any new failures" | ||
puts | ||
mspec 'tag', '--del', 'fails', '--pass', path | ||
end | ||
|
||
def findbugs | ||
sh 'tool/truffle-findbugs.sh' | ||
end | ||
|
||
COMMANDS = [ | ||
['help'], | ||
['build'], | ||
['clean'], | ||
['rebuild'], | ||
['test'], | ||
['test', :path], | ||
['tag', :path], | ||
['untag', :path], | ||
['findbugs'] | ||
] | ||
|
||
if [[], ['-h'], ['-help'], ['--help']].include? ARGV | ||
help | ||
exit | ||
end | ||
|
||
def match(args, command) | ||
return false if ARGV.size != command.size | ||
|
||
impl_args = [] | ||
|
||
command.zip(ARGV).each do |expected, actual| | ||
if expected.is_a? String | ||
return false if expected != actual | ||
elsif expected.is_a? Symbol | ||
impl_args.push actual | ||
end | ||
end | ||
|
||
send command[0], *impl_args | ||
|
||
exit | ||
end | ||
|
||
COMMANDS.each do |command| | ||
match(ARGV, command) | ||
end | ||
|
||
raise "no command matched" |