Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: e792a66f1e4a
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0b67c3497de6
Choose a head ref
  • 6 commits
  • 20 files changed
  • 1 contributor

Commits on Feb 13, 2015

  1. Copy the full SHA
    b154084 View commit details
  2. Copy the full SHA
    e9662f0 View commit details
  3. Copy the full SHA
    26e816b View commit details
  4. Copy the full SHA
    7c5f229 View commit details
  5. Copy the full SHA
    36d25de View commit details
  6. [Truffle] Classify the rest.

    * Signal.list should be fine now.
    eregon committed Feb 13, 2015
    Copy the full SHA
    0b67c34 View commit details
10 changes: 10 additions & 0 deletions spec/truffle/tags/core/enumerable/find_index_tags.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
fails:Enumerable#find_index passes each entry in enum to block while block when block is false
fails:Enumerable#find_index returns nil when the block is false
fails:Enumerable#find_index returns the first index for which the block is not false
fails:Enumerable#find_index returns the first index found
fails:Enumerable#find_index returns nil when the element not found
fails:Enumerable#find_index ignores the block if an argument is given
fails:Enumerable#find_index returns an Enumerator if no block given
fails:Enumerable#find_index without block gathers whole arrays as elements when each yields multiple
fails:Enumerable#find_index with block given a single yield parameter passes first element to the parameter
fails:Enumerable#find_index with block given a greedy yield parameter passes a gathered array to the parameter
3 changes: 3 additions & 0 deletions spec/truffle/tags/core/enumerable/to_a_tags.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
fails:Enumerable#to_a returns a tainted array if self is tainted
fails:Enumerable#to_a returns an untrusted array if self is untrusted
fails:Enumerable#to_a returns an array containing the elements
fails:Enumerable#to_a passes through the values yielded by #each_with_index
fails:Enumerable#to_a passes arguments to each
7 changes: 7 additions & 0 deletions spec/truffle/tags/core/enumerable/to_h_tags.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
fails:Enumerable#to_h converts empty enumerable to empty hash
fails:Enumerable#to_h converts yielded [key, value] pairs to a hash
fails:Enumerable#to_h uses the last value of a duplicated key
fails:Enumerable#to_h calls #to_ary on contents
fails:Enumerable#to_h forwards arguments to #each
fails:Enumerable#to_h raises TypeError if an element is not an array
fails:Enumerable#to_h raises ArgumentError if an element is not a [key, value] pair
3 changes: 3 additions & 0 deletions spec/truffle/tags/core/file/stat/sticky_tags.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
fails:File::Stat#sticky? returns true if the named file has the sticky bit, otherwise false
fails:File::Stat#sticky? accepts an object that has a #to_path method
fails:File::Stat#sticky? needs to be reviewed for spec completeness
3 changes: 3 additions & 0 deletions spec/truffle/tags/core/file/sticky_tags.txt
Original file line number Diff line number Diff line change
@@ -2,3 +2,6 @@ fails:File.sticky? returns false if the file dies not exist
fails:File.sticky? returns false if file does not exist
fails:File.sticky? returns false if the file has not sticky bit set
fails:File.sticky? returns true if the file has sticky bit set
fails:File.sticky? returns true if the named file has the sticky bit, otherwise false
fails:File.sticky? accepts an object that has a #to_path method
fails:File.sticky? cannot set sticky bit to a normal file
5 changes: 5 additions & 0 deletions spec/truffle/tags/core/filetest/file_tags.txt
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
fails:File.file? accepts an object that has a #to_path method
fails:File.file? returns true if the named file exists and is a regular file.
fails:File.file? returns true if the null device exists and is a regular file.
fails:File.file? raises an ArgumentError if not passed one argument
fails:File.file? raises a TypeError if not passed a String type
fails:FileTest.file? needs to be reviewed for spec completeness
1 change: 1 addition & 0 deletions spec/truffle/tags/core/filetest/owned_tags.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
fails:FileTest.owned? accepts an object that has a #to_path method
fails:FileTest.owned? needs to be reviewed for spec completeness
1 change: 1 addition & 0 deletions spec/truffle/tags/core/filetest/pipe_tags.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
fails:FileTest.pipe? accepts an object that has a #to_path method
fails:FileTest.pipe? needs to be reviewed for spec completeness
1 change: 1 addition & 0 deletions spec/truffle/tags/core/filetest/setgid_tags.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fails:FileTest.setgid? needs to be reviewed for spec completeness
1 change: 1 addition & 0 deletions spec/truffle/tags/core/filetest/setuid_tags.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fails:FileTest.setuid? needs to be reviewed for spec completeness
1 change: 1 addition & 0 deletions spec/truffle/tags/core/filetest/socket_tags.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
fails:FileTest.socket? accepts an object that has a #to_path method
fails:FileTest.socket? needs to be reviewed for spec completeness
1 change: 1 addition & 0 deletions spec/truffle/tags/core/filetest/symlink_tags.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
fails:FileTest.symlink? returns true if the file is a link
fails:FileTest.symlink? accepts an object that has a #to_path method
fails:FileTest.symlink? returns false if the file does not exist
1 change: 1 addition & 0 deletions spec/truffle/tags/core/filetest/world_readable_tags.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fails:FileTest.world_readable? needs to be reviewed for spec completeness
1 change: 1 addition & 0 deletions spec/truffle/tags/core/filetest/world_writable_tags.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fails:FileTest.world_writable? needs to be reviewed for spec completeness
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/signal/list_tags.txt

This file was deleted.

1 change: 1 addition & 0 deletions spec/truffle/tags/core/string/crypt_tags.txt
Original file line number Diff line number Diff line change
@@ -5,3 +5,4 @@ fails:String#crypt calls #to_str to converts the salt arg to a String
fails:String#crypt raises a type error when the salt arg can't be converted to a string
fails:String#crypt taints the result if either salt or self is tainted
fails:String#crypt doesn't return subclass instances
fails:String#crypt returns NULL bytes prepended to the string when the salt contains NULL bytes
5 changes: 5 additions & 0 deletions spec/truffle/tags/core/string/gsub_tags.txt
Original file line number Diff line number Diff line change
@@ -63,3 +63,8 @@ fails:String#gsub! with pattern and block uses the compatible encoding if they a
fails:String#gsub! with pattern and block raises an Encoding::CompatibilityError if the encodings are not compatible
fails:String#gsub! with pattern and block replaces the incompatible part properly even if the encodings are not compatible
fails:String#gsub! with pattern and block raises an ArgumentError if encoding is not valid
fails:String#gsub with pattern and replacement respects $KCODE when the pattern collapses
fails:String#gsub with pattern and replacement handles pattern collapse without $KCODE
fails:String#gsub with pattern and block returns a copy of self with all occurrences of pattern replaced with the block's return value
fails:String#gsub with pattern and block doesn't interpolate special sequences like \1 for the block's return value
fails:String#gsub with pattern and block converts the block's return value to a string using to_s
6 changes: 6 additions & 0 deletions spec/truffle/tags/core/string/modulo_tags.txt
Original file line number Diff line number Diff line change
@@ -95,3 +95,9 @@ fails:String#% when format string contains %{} sections should raise ArgumentErr
fails:String#% when format string contains %<> formats uses the named argument for the format's value
fails:String#% when format string contains %<> formats raises KeyError if key is missing from passed-in hash
fails:String#% when format string contains %<> formats should raise ArgumentError if no hash given
fails:String#% raises an error if NULL or \n appear anywhere else in the format string
fails:String#% calls #to_ary to convert the argument
fails:String#% wraps the object in an Array if #to_ary returns nil
fails:String#% raises a TypeError if #to_ary does not return an Array
fails:String#% supports float formats using %e, but Inf, -Inf, and NaN are not floats
fails:String#% supports float formats using %E, but Inf, -Inf, and NaN are not floats
108 changes: 64 additions & 44 deletions spec/truffle/truffle.mspec
Original file line number Diff line number Diff line change
@@ -16,72 +16,92 @@ class MSpecScript
"spec/ruby/language"
]

set :core, [
core = [
"spec/ruby/core",

# Can't load these - so tags aren't enough to exclude them. The problem is
# either fixtures or syntax. Some of them are probably easy fixes.

"^spec/ruby/core/enumerable/find_index_spec.rb",
"^spec/ruby/core/enumerable/to_a_spec.rb",
"^spec/ruby/core/enumerable/to_h_spec.rb",
# as_superuser, as_user, Process.euid
"^spec/ruby/core/file/chown_spec.rb",
"^spec/ruby/core/file/lchown_spec.rb",
"^spec/ruby/core/process/euid_spec.rb",
"^spec/ruby/core/process/kill_spec.rb",
"^spec/ruby/core/process/setpriority_spec.rb",
"^spec/ruby/core/process/uid_spec.rb",

# require 'socket'
"^spec/ruby/core/file/socket_spec.rb",
"^spec/ruby/core/file/stat/sticky_spec.rb",
"^spec/ruby/core/file/sticky_spec.rb",

# FileTest in describe
"^spec/ruby/core/filetest",

# STDOUT.tty?
"^spec/ruby/core/io/tty_spec.rb",
"^spec/ruby/core/io/isatty_spec.rb",

# require 'fcntl'
"^spec/ruby/core/io/reopen_spec.rb",
"^spec/ruby/core/io/tty_spec.rb",

# __method__ in fixtures
"^spec/ruby/core/kernel/__method___spec.rb",

# autoload in describe
"^spec/ruby/core/kernel/autoload_spec.rb",

# seem side-effecting when not run in isolation
"^spec/ruby/core/marshal/dump_spec.rb",
"^spec/ruby/core/marshal/float_spec.rb",
"^spec/ruby/core/marshal/load_spec.rb",
"^spec/ruby/core/marshal/restore_spec.rb",
"^spec/ruby/core/method/source_location_spec.rb", # Windows
"^spec/ruby/core/numeric/denominator_spec.rb",
"^spec/ruby/core/numeric/numerator_spec.rb",
"^spec/ruby/core/numeric/to_c_spec.rb",

# require 'timeout'
"^spec/ruby/core/process/detach_spec.rb",
"^spec/ruby/core/process/euid_spec.rb",
"^spec/ruby/core/process/kill_spec.rb",
"^spec/ruby/core/process/setpriority_spec.rb",
"^spec/ruby/core/process/uid_spec.rb",

# problems with comparing special characters and tags
"^spec/ruby/core/regexp/compile_spec.rb",
"^spec/ruby/core/string/chomp_spec.rb",
"^spec/ruby/core/string/modulo_spec.rb",

# NullPointerException on load
"^spec/ruby/core/regexp/encoding_spec.rb",

# error compiling regex on load
"^spec/ruby/core/regexp/source_spec.rb",
"^spec/ruby/core/signal/list_spec.rb",
"^spec/ruby/core/string/chomp_spec.rb",
"^spec/ruby/core/string/crypt_spec.rb",
"^spec/ruby/core/string/gsub_spec.rb",
"^spec/ruby/core/string/match_spec.rb",
"^spec/ruby/core/string/modulo_spec.rb",
"^spec/ruby/core/struct/each_spec.rb", # Windows
"^spec/ruby/core/struct/element_reference_spec.rb", # Windows
"^spec/ruby/core/struct/element_set_spec.rb", # Windows
"^spec/ruby/core/struct/eql_spec.rb", # Windows
"^spec/ruby/core/struct/equal_value_spec.rb", # Windows
"^spec/ruby/core/struct/hash_spec.rb", # Windows
"^spec/ruby/core/struct/initialize_copy_spec.rb", # Windows
"^spec/ruby/core/struct/initialize_spec.rb", # Windows
"^spec/ruby/core/struct/inspect_spec.rb", # Windows
"^spec/ruby/core/struct/instance_variables_spec.rb", # Windows
"^spec/ruby/core/struct/length_spec.rb", # Windows
"^spec/ruby/core/struct/members_spec.rb", # Windows
"^spec/ruby/core/struct/new_spec.rb", # Windows
"^spec/ruby/core/struct/select_spec.rb", # Windows
"^spec/ruby/core/struct/size_spec.rb", # Windows
"^spec/ruby/core/struct/struct_spec.rb", # Windows
"^spec/ruby/core/struct/to_a_spec.rb", # Windows
"^spec/ruby/core/struct/to_h_spec.rb", # Windows
"^spec/ruby/core/struct/to_s_spec.rb", # Windows
"^spec/ruby/core/struct/values_at_spec.rb", # Windows
"^spec/ruby/core/struct/values_spec.rb", # Windows
"^spec/ruby/core/symbol/versions/encoding_1.9_spec.rb", # Windows
"^spec/ruby/core/unboundmethod/source_location_spec.rb" # Windows
]

# infinite loop on some examples
# "^spec/ruby/core/string/gsub_spec.rb",
]

core += [
# Windows
"^spec/ruby/core/method/source_location_spec.rb",
"^spec/ruby/core/struct/each_spec.rb",
"^spec/ruby/core/struct/element_reference_spec.rb",
"^spec/ruby/core/struct/element_set_spec.rb",
"^spec/ruby/core/struct/eql_spec.rb",
"^spec/ruby/core/struct/equal_value_spec.rb",
"^spec/ruby/core/struct/hash_spec.rb",
"^spec/ruby/core/struct/initialize_copy_spec.rb",
"^spec/ruby/core/struct/initialize_spec.rb",
"^spec/ruby/core/struct/inspect_spec.rb",
"^spec/ruby/core/struct/instance_variables_spec.rb",
"^spec/ruby/core/struct/length_spec.rb",
"^spec/ruby/core/struct/members_spec.rb",
"^spec/ruby/core/struct/new_spec.rb",
"^spec/ruby/core/struct/select_spec.rb",
"^spec/ruby/core/struct/size_spec.rb",
"^spec/ruby/core/struct/struct_spec.rb",
"^spec/ruby/core/struct/to_a_spec.rb",
"^spec/ruby/core/struct/to_h_spec.rb",
"^spec/ruby/core/struct/to_s_spec.rb",
"^spec/ruby/core/struct/values_at_spec.rb",
"^spec/ruby/core/struct/values_spec.rb",
"^spec/ruby/core/symbol/versions/encoding_1.9_spec.rb",
"^spec/ruby/core/unboundmethod/source_location_spec.rb",
] if windows?
set :core, core

set :rubysl, [
"spec/truffle/spec/rubysl/rubysl-erb/spec",
7 changes: 7 additions & 0 deletions tool/jt.rb
Original file line number Diff line number Diff line change
@@ -169,9 +169,16 @@ def test_pe
private :test_pe

def tag(path, *args)
return tag_all(*args) if path == 'all'
mspec 'tag', '--add', 'fails', '--fail', path, *args
end

# Add tags to all given examples without running them. Useful to avoid file exclusions.
def tag_all(*args)
mspec('tag', *%w[--unguarded --all --dry-run --add fails], *args)
end
private :tag_all

def untag(path, *args)
puts
puts "WARNING: untag is currently not very reliable - run `jt test #{path} #{args * ' '}` after and manually annotate any new failures"