summaryrefslogtreecommitdiff
path: root/test/irb/test_ruby-lex.rb
diff options
context:
space:
mode:
authoraycabta <aycabta@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-04-20 09:32:44 +0000
committeraycabta <aycabta@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-04-20 09:32:44 +0000
commit3863b7776f68821e5a873fd3a73886a2eb377845 (patch)
treef146d9fc2360c39f8dce4472d24aecc5284bcfb9 /test/irb/test_ruby-lex.rb
parent66ae3bd5599186599af5041dced836087cdeb3bd (diff)
Remove IRB's old test files
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/irb/test_ruby-lex.rb')
-rw-r--r--test/irb/test_ruby-lex.rb108
1 files changed, 0 insertions, 108 deletions
diff --git a/test/irb/test_ruby-lex.rb b/test/irb/test_ruby-lex.rb
deleted file mode 100644
index b07b4a2eb6..0000000000
--- a/test/irb/test_ruby-lex.rb
+++ /dev/null
@@ -1,108 +0,0 @@
-# frozen_string_literal: false
-require 'test/unit'
-require 'irb/ruby-lex'
-require 'stringio'
-
-module TestIRB
- class TestRubyLex < Test::Unit::TestCase
- def setup
- @scanner = RubyLex.new
- end
-
- def teardown
- RubyLex.debug_level = 0
- end
-
- def test_set_input_proc
- called = false
- @scanner.set_input(nil) {called = true; nil}
- @scanner.each_top_level_statement {}
- assert(called)
- end
-
- def test_comment
- assert_equal([["#\n", 1]], top_level_statement("#\n"))
- end
-
- def test_top_level_statement
- result = top_level_statement("#{<<-"begin;"}#{<<~"end;"}")
- begin;
- begin
- end
- begin
- end
- end;
- assert_equal([
- ["begin\n""end\n", 1],
- ["begin\n""end\n", 3],
- ],
- result)
- end
-
- def test_immature_statement
- src = "if false\n"
- assert_equal([[src, 1]], top_level_statement(src))
- end
-
- def test_prompt
- prompts = []
- @scanner.set_prompt {|*a|
- a << @scanner.instance_variable_get(:@lex_state)
- unless prompts.last == a
- prompts << a
- end
- }
- src, lineno = "#{<<-"begin;"}#{<<~'end;'}", __LINE__+1
- begin;
- # #;# LTYPE:INDENT:CONTINUE
- x #;# -:0:-
- x( #;# -:0:-
- ) #;# -:1:*
- a \ #;# -:0:-
- #;# -:0:*
- a; #;# -:0:-
- a #;# -:0:-
- #;# -:0:-
- a #;# -:0:-
- a = #;# -:0:-
- ' #;# -:0:*
- ' #;# ':0:*
- if false or #;# -:0:-
- true #;# -:1:*
- a #;# -:1:-
- " #;# -:1:-
- " #;# ":1:-
- begin #;# -:1:-
- a #;# -:2:-
- a #;# -:2:-
- end #;# -:2:-
- else #;# -:1:-
- nil #;# -:1:-
- end #;# -:1:-
- end;
- top_level_statement(src.gsub(/[ \t]*#;#.*/, ''))
- src.each_line.with_index(1) do |line, i|
- p = prompts.shift
- next unless /#;#\s*(?:-|(?<ltype>\S)):(?<indent>\d+):(?:(?<cont>\*)|-)(?:.*FIXME:(?<fixme>.*))?/ =~ line
- indent = indent.to_i
- cont = (fixme && /`continue'/.match?(fixme)) ^ cont
- assert_equal([ltype, indent, cont, i], p[0..3], "#{lineno+i}:#{p[4]}: #{line}")
- end
- end
-
- def top_level_statement(lines)
- input = InputLines.new(lines, "r")
- scanned = []
- @scanner.set_input(input)
- @scanner.each_top_level_statement {|*e|
- scanned << e
- yield(*e) if defined?(yield)
- }
- scanned
- end
-
- class InputLines < StringIO
- alias encoding external_encoding
- end
- end
-end