diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2023-08-15 10:00:54 -0700 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2023-08-16 17:47:32 -0700 |
commit | 3873b1eb39a2070937dc62ac47f8b96df54a72fc (patch) | |
tree | 42d174abb24a5addef2e854882191dec48f27229 /test/yarp/parse_serialize_test.rb | |
parent | 957cd369fa38915241e0b66e852f66ac516de664 (diff) | |
download | ruby-3873b1eb39a2070937dc62ac47f8b96df54a72fc.tar.gz |
Resync YARP
Diffstat (limited to 'test/yarp/parse_serialize_test.rb')
-rw-r--r-- | test/yarp/parse_serialize_test.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/yarp/parse_serialize_test.rb b/test/yarp/parse_serialize_test.rb new file mode 100644 index 0000000000..6789ba9c43 --- /dev/null +++ b/test/yarp/parse_serialize_test.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +require "yarp_test_helper" + +return if YARP::BACKEND == :FFI + +class ParseSerializeTest < Test::Unit::TestCase + def test_parse_serialize + dumped = YARP.const_get(:Debug).parse_serialize_file(__FILE__) + result = YARP.load(File.read(__FILE__), dumped) + + assert_kind_of YARP::ParseResult, result, "Expected the return value to be a ParseResult" + assert_equal __FILE__, find_file_node(result)&.filepath, "Expected the filepath to be set correctly" + end + + private + + def find_file_node(result) + queue = [result.value] + + while (node = queue.shift) + return node if node.is_a?(YARP::SourceFileNode) + queue.concat(node.child_nodes.compact) + end + end +end |