source: EcnlProtoTool/trunk/mruby-1.3.0/test/t/codegen.rb@ 331

Last change on this file since 331 was 331, checked in by coas-nagasima, 6 years ago

prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-ruby
File size: 1.9 KB
Line 
1##
2# Codegen tests
3
4assert('peephole optimization does not eliminate move whose result is reused') do
5 assert_raise LocalJumpError do
6 def method
7 yield
8 end
9 method(&a &&= 0)
10 end
11end
12
13assert('empty condition in ternary expression parses correctly') do
14 assert_equal(() ? 1 : 2, 2)
15end
16
17assert('method call with exactly 127 arguments') do
18 def args_to_ary(*args)
19 args
20 end
21
22 assert_equal [0]*127, args_to_ary(
23 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
24 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
25 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
26 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
27 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
28 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
29 )
30end
31
32assert('nested empty heredoc') do
33 _, a = nil, <<B
34#{<<A}
35A
36B
37 assert_equal "\n", a
38end
39
40assert('splat in case splat') do
41 a = *case
42 when 0
43 * = 1
44 end
45
46 assert_equal [1], a
47end
48
49assert('undef with 127 or more arguments') do
50 assert_raise NameError do
51 undef
52 a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
53 a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
54 a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a,
55 a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a
56 end
57end
58
59assert('next in normal loop with 127 arguments') do
60 assert_raise NameError do
61 while true
62 next A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A
63 end
64 end
65end
66
67assert('negate literal register alignment') do
68 a = *case
69 when 0
70 -0.0
71 2
72 end
73
74 assert_equal [2], a
75end
Note: See TracBrowser for help on using the repository browser.