diff options
Diffstat (limited to 'misc/gen_call_test.rb')
-rw-r--r-- | misc/gen_call_test.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/misc/gen_call_test.rb b/misc/gen_call_test.rb new file mode 100644 index 0000000000..206beda22e --- /dev/null +++ b/misc/gen_call_test.rb @@ -0,0 +1,47 @@ +NUM_LEVELS = 30 +FNS_PER_LEVEL = 1000 + +$out = "" + +def addln(str = "") + $out << str << "\n" +end + +NUM_LEVELS.times do |l_no| + FNS_PER_LEVEL.times do |f_no| + f_name = "fun_l#{l_no}_n#{f_no}" + + if l_no < NUM_LEVELS - 1 + callee_no = rand(0...FNS_PER_LEVEL) + callee_name = "fun_l#{l_no+1}_n#{callee_no}" + else + callee_name = "inc" + end + + addln("def #{f_name}()") + addln(" #{callee_name}") + addln("end") + addln() + end +end + +addln("@a = 0") +addln("@b = 0") +addln("@c = 0") +addln("@d = 0") +addln("@count = 0") +addln("def inc()") +addln(" @count += 1") +addln("end") + +# 100K times +addln("100000.times do") + FNS_PER_LEVEL.times do |f_no| + f_name = "fun_l0_n#{f_no}" + addln(" #{f_name}") + end +addln("end") + +addln("puts @count") + +puts($out)
\ No newline at end of file |