diff options
| author | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2023-06-08 10:31:46 +0900 |
|---|---|---|
| committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2023-06-08 10:31:46 +0900 |
| commit | 182d3262fb4147d3bdc5c1970b00f165bdb59ae9 (patch) | |
| tree | 264abb78ddc6ae8008aba739dcfc9e8d4fd98775 | |
| parent | 7ef1a2387e7fb8f80e217a20678031153814ab72 (diff) | |
Sample files of racc is not available in ruby/ruby
| -rw-r--r-- | test/racc/test_sample.rb | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/test/racc/test_sample.rb b/test/racc/test_sample.rb deleted file mode 100644 index 2c7813f50c..0000000000 --- a/test/racc/test_sample.rb +++ /dev/null @@ -1,80 +0,0 @@ -require File.expand_path('lib/helper', __dir__) - -module Racc - class TestSample < TestCase - # working samples - [ - { - grammar_file: "array.y", - parser_class: :ArrayParser, - testcases: [ - { input: "[1]", expected: ["1"] }, - { input: "[1, 2]", expected: ["1", "2"] }, - ] - }, - { - grammar_file: "array2.y", - parser_class: :ArrayParser2, - testcases: [ - { input: "[1]", expected: ["1"] }, - { input: "[1, 2]", expected: ["1", "2"] }, - ] - }, - { - grammar_file: "calc.y", - parser_class: :Calcp, - testcases: [ - { input: "1", expected: 1 }, - { input: "10", expected: 10 }, - { input: "2 + 1", expected: 3 }, - { input: "2 - 1", expected: 1 }, - { input: "3 * 4", expected: 12 }, - { input: "4 / 2", expected: 2 }, - { input: "3 / 2", expected: 1 }, - { input: "2 + 3 * 4", expected: 14 }, - { input: "(2 + 3) * 4", expected: 20 }, - { input: "2 + (3 * 4)", expected: 14 }, - ] - }, - { - grammar_file: "hash.y", - parser_class: :HashParser, - testcases: [ - { input: "{}", expected: {} }, - { input: "{ a => b }", expected: { "a" => "b" } }, - { input: "{ a => b, 1 => 2 }", expected: { "a" => "b", "1" => "2" } }, - ] - }, - ].each do |data| - define_method "test_#{data[:grammar_file]}" do - outfile = compile_sample(data[:grammar_file]) - - load(outfile) - - parser_class = Object.const_get(data[:parser_class]) - data[:testcases].each do |testcase| - input = testcase[:input] - actual = parser_class.new.parse(input) - expected = testcase[:expected] - assert_equal(expected, actual, "expected #{expected} but got #{actual} when input is #{input}") - end - ensure - remove_const_f(data[:parser_class]) - end - end - - private - - # returns the generated file's path - def compile_sample(yfile) - file = File.basename(yfile, '.y') - out = File.join(@OUT_DIR, file) - ruby "-I#{LIB_DIR}", RACC, File.join(SAMPLE_DIR, yfile), "-o#{out}" - out - end - - def remove_const_f(const_name) - Object.send(:remove_const, const_name) if Object.const_defined?(const_name, false) - end - end -end |
