summaryrefslogtreecommitdiff
path: root/test/ripper/test_parser_events.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ripper/test_parser_events.rb')
-rw-r--r--test/ripper/test_parser_events.rb489
1 files changed, 489 insertions, 0 deletions
diff --git a/test/ripper/test_parser_events.rb b/test/ripper/test_parser_events.rb
new file mode 100644
index 0000000000..512cf377e7
--- /dev/null
+++ b/test/ripper/test_parser_events.rb
@@ -0,0 +1,489 @@
+#
+# test_parser_events.rb
+#
+
+require 'ripper.so'
+require 'dummyparser'
+raise "ripper version differ" unless Ripper::Version == '0.1.0'
+require 'test/unit'
+
+
+class TestRipper_ParserEvents < Test::Unit::TestCase
+
+ def parse(str)
+ DummyParser.new(str).parse.to_s
+ end
+
+ $thru_program = false
+
+ def test_program
+ assert_equal '[void()]', parse('')
+ assert_equal true, $thru_program
+ end
+
+ def test_stmts_new
+ assert_equal '[void()]', parse('')
+ end
+
+ def test_stmts_add
+ assert_equal '[ref(nil)]', parse('nil')
+ assert_equal '[ref(nil),ref(nil)]', parse('nil;nil')
+ assert_equal '[ref(nil),ref(nil),ref(nil)]', parse('nil;nil;nil')
+ end
+
+ def test_void_stmt
+ assert_equal '[void()]', parse('')
+ assert_equal '[void()]', parse(';;')
+ end
+
+ def test_var_ref
+ assert_equal '[ref(a)]', parse('a')
+ assert_equal '[ref(nil)]', parse('nil')
+ assert_equal '[ref(true)]', parse('true')
+ end
+
+ def test_BEGIN
+ assert_equal '[BEGIN([void()])]', parse('BEGIN{}')
+ assert_equal '[BEGIN([ref(nil)])]', parse('BEGIN{nil}')
+ end
+
+ def test_END
+ assert_equal '[END([void()])]', parse('END{}')
+ assert_equal '[END([ref(nil)])]', parse('END{nil}')
+ end
+
+ def test_alias
+ assert_equal '[alias(a,b)]', parse('alias a b')
+ end
+
+ def test_var_alias
+ assert_equal '[valias($a,$g)]', parse('alias $a $g')
+ end
+
+ def test_alias_error
+ assert_equal '[aliaserr(valias($a,$1))]', parse('alias $a $1')
+ end
+
+ def test_arglist
+ assert_equal '[fcall(m,[])]', parse('m()')
+ assert_equal '[fcall(m,[1])]', parse('m(1)')
+ assert_equal '[fcall(m,[1,2])]', parse('m(1,2)')
+ assert_equal '[fcall(m,[*ref(r)])]', parse('m(*r)')
+ assert_equal '[fcall(m,[1,*ref(r)])]', parse('m(1,*r)')
+ assert_equal '[fcall(m,[1,2,*ref(r)])]', parse('m(1,2,*r)')
+ assert_equal '[fcall(m,[&ref(r)])]', parse('m(&r)')
+ assert_equal '[fcall(m,[1,&ref(r)])]', parse('m(1,&r)')
+ assert_equal '[fcall(m,[1,2,&ref(r)])]', parse('m(1,2,&r)')
+ assert_equal '[fcall(m,[*ref(a),&ref(b)])]', parse('m(*a,&b)')
+ assert_equal '[fcall(m,[1,*ref(a),&ref(b)])]', parse('m(1,*a,&b)')
+ assert_equal '[fcall(m,[1,2,*ref(a),&ref(b)])]', parse('m(1,2,*a,&b)')
+ end
+
+ def test_arg_paren
+ # FIXME
+ end
+
+ def test_aref
+ assert_equal '[aref(ref(v),[1])]', parse('v[1]')
+ assert_equal '[aref(ref(v),[1,2])]', parse('v[1,2]')
+ end
+
+ def test_assocs
+ assert_equal '[fcall(m,[assocs(assoc(1,2))])]', parse('m(1=>2)')
+ assert_equal '[fcall(m,[assocs(assoc(1,2),assoc(3,4))])]', parse('m(1=>2,3=>4)')
+ assert_equal '[fcall(m,[3,assocs(assoc(1,2))])]', parse('m(3,1=>2)')
+ end
+
+ def test_aref_field
+ assert_equal '[assign(aref_field(ref(a),[1]),2)]', parse('a[1]=2')
+ end
+
+=begin
+ def test_arg_ambiguous
+ assert_equal true, $thru__arg_ambiguous
+ end
+=end
+
+ def test_array # array literal
+ assert_equal '[array([1,2,3])]', parse('[1,2,3]')
+ end
+
+ def test_assign # generic assignment
+ assert_equal '[assign(var_field(v),1)]', parse('v=1')
+ end
+
+=begin
+ def test_assign_error
+ assert_equal true, $thru__assign_error
+ end
+
+ def test_begin
+ assert_equal true, $thru__begin
+ end
+
+ def test_binary
+ assert_equal true, $thru__binary
+ end
+
+ def test_block_var
+ assert_equal true, $thru__block_var
+ end
+
+ def test_bodystmt
+ assert_equal true, $thru__bodystmt
+ end
+
+ def test_brace_block
+ assert_equal true, $thru__brace_block
+ end
+
+ def test_break
+ assert_equal true, $thru__break
+ end
+
+ def test_call
+ assert_equal true, $thru__call
+ end
+
+ def test_case
+ assert_equal true, $thru__case
+ end
+
+ def test_class
+ assert_equal true, $thru__class
+ end
+
+ def test_class_name_error
+ assert_equal true, $thru__class_name_error
+ end
+
+ def test_command
+ assert_equal true, $thru__command
+ end
+
+ def test_command_call
+ assert_equal true, $thru__command_call
+ end
+
+ def test_const_ref
+ assert_equal true, $thru__const_ref
+ end
+
+ def test_constpath_field
+ assert_equal true, $thru__constpath_field
+ end
+
+ def test_constpath_ref
+ assert_equal true, $thru__constpath_ref
+ end
+
+ def test_def
+ assert_equal true, $thru__def
+ end
+
+ def test_defined
+ assert_equal true, $thru__defined
+ end
+
+ def test_defs
+ assert_equal true, $thru__defs
+ end
+
+ def test_do_block
+ assert_equal true, $thru__do_block
+ end
+
+ def test_dot2
+ assert_equal true, $thru__dot2
+ end
+
+ def test_dot3
+ assert_equal true, $thru__dot3
+ end
+
+ def test_dyna_symbol
+ assert_equal true, $thru__dyna_symbol
+ end
+
+ def test_else
+ assert_equal true, $thru__else
+ end
+
+ def test_elsif
+ assert_equal true, $thru__elsif
+ end
+
+ def test_ensure
+ assert_equal true, $thru__ensure
+ end
+
+ def test_fcall
+ assert_equal true, $thru__fcall
+ end
+
+ def test_field
+ assert_equal true, $thru__field
+ end
+
+ def test_for
+ assert_equal true, $thru__for
+ end
+
+ def test_hash
+ assert_equal true, $thru__hash
+ end
+
+ def test_if
+ assert_equal true, $thru__if
+ end
+
+ def test_if_mod
+ assert_equal true, $thru__if_mod
+ end
+
+ def test_ifop
+ assert_equal true, $thru__ifop
+ end
+
+ def test_iter_block
+ assert_equal true, $thru__iter_block
+ end
+
+ def test_massign
+ assert_equal true, $thru__massign
+ end
+
+ def test_method_add_arg
+ assert_equal true, $thru__method_add_arg
+ end
+
+ def test_mlhs_add
+ assert_equal true, $thru__mlhs_add
+ end
+
+ def test_mlhs_add_star
+ assert_equal true, $thru__mlhs_add_star
+ end
+
+ def test_mlhs_new
+ assert_equal true, $thru__mlhs_new
+ end
+
+ def test_mlhs_paren
+ assert_equal true, $thru__mlhs_paren
+ end
+
+ def test_module
+ assert_equal true, $thru__module
+ end
+
+ def test_mrhs_add
+ assert_equal true, $thru__mrhs_add
+ end
+
+ def test_mrhs_add_star
+ assert_equal true, $thru__mrhs_add_star
+ end
+
+ def test_mrhs_new
+ assert_equal true, $thru__mrhs_new
+ end
+
+ def test_mrhs_new_from_arglist
+ assert_equal true, $thru__mrhs_new_from_arglist
+ end
+
+ def test_next
+ assert_equal true, $thru__next
+ end
+
+ def test_opassign
+ assert_equal true, $thru__opassign
+ end
+
+ def test_param_error
+ assert_equal true, $thru__param_error
+ end
+
+ def test_params
+ assert_equal true, $thru__params
+ end
+
+ def test_paren
+ assert_equal true, $thru__paren
+ end
+
+ def test_parse_error
+ assert_equal true, $thru__parse_error
+ end
+
+ def test_qwords_add
+ assert_equal true, $thru__qwords_add
+ end
+
+ def test_qwords_new
+ assert_equal true, $thru__qwords_new
+ end
+
+ def test_redo
+ assert_equal true, $thru__redo
+ end
+
+ def test_regexp_literal
+ assert_equal true, $thru__regexp_literal
+ end
+
+ def test_rescue
+ assert_equal true, $thru__rescue
+ end
+
+ def test_rescue_mod
+ assert_equal true, $thru__rescue_mod
+ end
+
+ def test_restparam
+ assert_equal true, $thru__restparam
+ end
+
+ def test_retry
+ assert_equal true, $thru__retry
+ end
+
+ def test_return
+ assert_equal true, $thru__return
+ end
+
+ def test_return0
+ assert_equal true, $thru__return0
+ end
+
+ def test_sclass
+ assert_equal true, $thru__sclass
+ end
+
+ def test_space
+ assert_equal true, $thru__space
+ end
+
+ def test_string_add
+ assert_equal true, $thru__string_add
+ end
+
+ def test_string_concat
+ assert_equal true, $thru__string_concat
+ end
+
+ def test_string_content
+ assert_equal true, $thru__string_content
+ end
+
+ def test_string_dvar
+ assert_equal true, $thru__string_dvar
+ end
+
+ def test_string_embexpr
+ assert_equal true, $thru__string_embexpr
+ end
+
+ def test_string_literal
+ assert_equal true, $thru__string_literal
+ end
+
+ def test_super
+ assert_equal true, $thru__super
+ end
+
+ def test_symbol
+ assert_equal true, $thru__symbol
+ end
+
+ def test_symbol_literal
+ assert_equal true, $thru__symbol_literal
+ end
+
+ def test_topconst_field
+ assert_equal true, $thru__topconst_field
+ end
+
+ def test_topconst_ref
+ assert_equal true, $thru__topconst_ref
+ end
+
+ def test_unary
+ assert_equal true, $thru__unary
+ end
+
+ def test_undef
+ assert_equal true, $thru__undef
+ end
+
+ def test_unless
+ assert_equal true, $thru__unless
+ end
+
+ def test_unless_mod
+ assert_equal true, $thru__unless_mod
+ end
+
+ def test_until_mod
+ assert_equal true, $thru__until_mod
+ end
+
+ def test_var_field
+ assert_equal true, $thru__var_field
+ end
+
+ def test_when
+ assert_equal true, $thru__when
+ end
+
+ def test_while
+ assert_equal true, $thru__while
+ end
+
+ def test_while_mod
+ assert_equal true, $thru__while_mod
+ end
+
+ def test_word_add
+ assert_equal true, $thru__word_add
+ end
+
+ def test_word_new
+ assert_equal true, $thru__word_new
+ end
+
+ def test_words_add
+ assert_equal true, $thru__words_add
+ end
+
+ def test_words_new
+ assert_equal true, $thru__words_new
+ end
+
+ def test_xstring_add
+ assert_equal true, $thru__xstring_add
+ end
+
+ def test_xstring_literal
+ assert_equal true, $thru__xstring_literal
+ end
+
+ def test_xstring_new
+ assert_equal true, $thru__xstring_new
+ end
+
+ def test_yield
+ assert_equal true, $thru__yield
+ end
+
+ def test_yield0
+ assert_equal true, $thru__yield0
+ end
+
+ def test_zsuper
+ assert_equal true, $thru__zsuper
+ end
+=end
+
+end