Revision: 1256 http://trac.macosforge.org/projects/ruby/changeset/1256 Author: eloy.de.enige@gmail.com Date: 2009-03-29 03:46:50 -0700 (Sun, 29 Mar 2009) Log Message: ----------- Commented a require statement in constants_spec.rb which does not compile yet, tagged remaining failing examples. Now that we can at least load all language spec files, I removed the partially green files and simply load "spec/frozen/language" instead of every single spec file. I might bring this back when we need so for the other spec suites. Use spec:partially_green to run the spec files which are not fully green yet without any tags. Modified Paths: -------------- MacRuby/branches/experimental/rakelib/spec.rake MacRuby/branches/experimental/spec/frozen/language/constants_spec.rb Added Paths: ----------- MacRuby/branches/experimental/spec/frozen/tags/macruby/language/constants_tags.txt Modified: MacRuby/branches/experimental/rakelib/spec.rake =================================================================== --- MacRuby/branches/experimental/rakelib/spec.rake 2009-03-29 10:46:34 UTC (rev 1255) +++ MacRuby/branches/experimental/rakelib/spec.rake 2009-03-29 10:46:50 UTC (rev 1256) @@ -27,59 +27,28 @@ while } - KNOWN_PARTIALLY_GOOD = %w{ - alias - block - break - catch - class - def - eigenclass - encoding - ensure - for - loop - magic_comment - metaclass - method - next - predefined - private - regexp - rescue - return - throw - undef - variables - yield - } - - KNOWN_GOOD_AND_PARTIALLY_GOOD_FILES = - FileList["spec/frozen/language/{#{(KNOWN_GOOD + KNOWN_PARTIALLY_GOOD).join(',')}}_spec.rb"] - - desc "Run all language known good spec files which should be fully green" + desc "Run all language known good spec files which should be fully green (does not use tags)" task :green do files = FileList["spec/frozen/language/{#{KNOWN_GOOD.join(',')}}_spec.rb"] sh "./miniruby -v -I./mspec/lib -I./lib ./mspec/bin/mspec-run #{files.join(' ')}" end + desc "Run all partially good language spec files which are not yet fully green (does not use tags)" + task :partially_green do + files = Dir["spec/frozen/language/*_spec.rb"] - FileList["spec/frozen/language/{#{KNOWN_GOOD.join(',')}}_spec.rb"] + sh "./miniruby -v -I./mspec/lib -I./lib ./mspec/bin/mspec-run #{files.join(' ')}" + end + desc "Run continuous integration language examples (all known good examples)" task :ci do - sh "./mspec/bin/mspec ci -B ./spec/frozen/macruby.mspec #{KNOWN_GOOD_AND_PARTIALLY_GOOD_FILES.join(' ')}" + sh "./mspec/bin/mspec ci -B ./spec/frozen/macruby.mspec spec/frozen/language" end desc "Run language examples that are known to fail" task :fails do - sh "./mspec/bin/mspec run -g fails -B ./spec/frozen/macruby.mspec #{KNOWN_GOOD_AND_PARTIALLY_GOOD_FILES.join(' ')}" + sh "./mspec/bin/mspec run -g fails -B ./spec/frozen/macruby.mspec spec/frozen/language" end - namespace :list do - desc "List all spec language spec files which do not load yet" - task :not_loadable do - puts((Dir['spec/frozen/language/*_spec.rb'] - KNOWN_GOOD_AND_PARTIALLY_GOOD_FILES).join("\n")) - end - end - %w{ fails critical }.each do |tag| namespace :list do # We cheat by using the fact that currently the ruby.1.9.mspec script uses the macruby tags, @@ -93,7 +62,7 @@ namespace :"1.9" do desc "Run roxor language specs tagged `#{tag}' against Ruby 1.9 (use this to look for possible 1.8/1.9 incompatibility bugs)" task tag do - sh "./mspec/bin/mspec run -g #{tag} -B ./spec/frozen/ruby.1.9.mspec #{KNOWN_GOOD_AND_PARTIALLY_GOOD_FILES.join(' ')}" + sh "./mspec/bin/mspec run -g #{tag} -B ./spec/frozen/ruby.1.9.mspec spec/frozen/language" end end end Modified: MacRuby/branches/experimental/spec/frozen/language/constants_spec.rb =================================================================== --- MacRuby/branches/experimental/spec/frozen/language/constants_spec.rb 2009-03-29 10:46:34 UTC (rev 1255) +++ MacRuby/branches/experimental/spec/frozen/language/constants_spec.rb 2009-03-29 10:46:50 UTC (rev 1256) @@ -1,6 +1,8 @@ require File.dirname(__FILE__) + '/../spec_helper' -require File.dirname(__FILE__) + '/../fixtures/constants' +# MacRuby TODO: This file does not compile yet, causing most examples to fail. +#require File.dirname(__FILE__) + '/../fixtures/constants' + # Read the documentation in fixtures/constants.rb for the guidelines and # rationale for the structure and organization of these specs. Added: MacRuby/branches/experimental/spec/frozen/tags/macruby/language/constants_tags.txt =================================================================== --- MacRuby/branches/experimental/spec/frozen/tags/macruby/language/constants_tags.txt (rev 0) +++ MacRuby/branches/experimental/spec/frozen/tags/macruby/language/constants_tags.txt 2009-03-29 10:46:50 UTC (rev 1256) @@ -0,0 +1,39 @@ +fails:Literal (A::X) constant resolution sends #const_missing to the original class or module scope +fails:Literal (A::X) constant resolution evaluates the qualifier +fails:Literal (A::X) constant resolution raises a TypeError if a non-class or non-module qualifier is given +fails:Literal (A::X) constant resolution with statically assigned constants searches the immediate class or module scope first +fails:Literal (A::X) constant resolution with statically assigned constants searches a module included in the immediate class before the superclass +fails:Literal (A::X) constant resolution with statically assigned constants searches the superclass before a module included in the superclass +fails:Literal (A::X) constant resolution with statically assigned constants searches a module included in the superclass +fails:Literal (A::X) constant resolution with statically assigned constants searches the superclass chain +fails:Literal (A::X) constant resolution with statically assigned constants searches Object if no class or module qualifier is given +fails:Literal (A::X) constant resolution with statically assigned constants searches Object if a toplevel qualifier (::X) is given +fails:Literal (A::X) constant resolution with dynamically assigned constants searches the immediate class or module scope first +fails:Literal (A::X) constant resolution with dynamically assigned constants searches a module included in the immediate class before the superclass +fails:Literal (A::X) constant resolution with dynamically assigned constants searches the superclass before a module included in the superclass +fails:Literal (A::X) constant resolution with dynamically assigned constants searches a module included in the superclass +fails:Literal (A::X) constant resolution with dynamically assigned constants searches the superclass chain +fails:Literal (A::X) constant resolution with dynamically assigned constants does not search the singleton class of the class or module +fails:Literal (A::X) constant resolution with dynamically assigned constants returns the updated value when a constant is reassigned +fails:Constant resolution within methods sends #const_missing to the original class or module scope +fails:Constant resolution within methods with statically assigned constants searches the immediate class or module scope first +fails:Constant resolution within methods with statically assigned constants searches a module included in the immediate class before the superclass +fails:Constant resolution within methods with statically assigned constants searches the superclass before a module included in the superclass +fails:Constant resolution within methods with statically assigned constants searches a module included in the superclass +fails:Constant resolution within methods with statically assigned constants searches the superclass chain +fails:Constant resolution within methods with statically assigned constants searches the lexical scope of the method not the receiver's immediate class +fails:Constant resolution within methods with statically assigned constants searches the lexical scope of a singleton method +fails:Constant resolution within methods with statically assigned constants searches the lexical scope of a block +fails:Constant resolution within methods with statically assigned constants searches Object as a lexical scope only if Object is explicitly opened +fails:Constant resolution within methods with dynamically assigned constants searches the immediate class or module scope first +fails:Constant resolution within methods with dynamically assigned constants searches a module included in the immediate class before the superclass +fails:Constant resolution within methods with dynamically assigned constants searches the superclass before a module included in the superclass +fails:Constant resolution within methods with dynamically assigned constants searches a module included in the superclass +fails:Constant resolution within methods with dynamically assigned constants searches the superclass chain +fails:Constant resolution within methods with dynamically assigned constants searches the lexical scope of the method not the receiver's immediate class +fails:Constant resolution within methods with dynamically assigned constants searches the lexical scope of a singleton method +fails:Constant resolution within methods with dynamically assigned constants does not search the lexical scope of the caller +fails:Constant resolution within methods with dynamically assigned constants searches the lexical scope of a block +fails:Constant resolution within methods with dynamically assigned constants searches Object as a lexical scope only if Object is explicitly opened +fails:Constant resolution within methods with dynamically assigned constants returns the updated value when a constant is reassigned +fails:Constant resolution within methods with dynamically assigned constants does not search the lexical scope of qualifying modules \ No newline at end of file