aboutsummaryrefslogtreecommitdiffstats
path: root/test/yarp/parse_serialize_test.rb
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2023-08-15 10:00:54 -0700
committerTakashi Kokubun <takashikkbn@gmail.com>2023-08-16 17:47:32 -0700
commit3873b1eb39a2070937dc62ac47f8b96df54a72fc (patch)
tree42d174abb24a5addef2e854882191dec48f27229 /test/yarp/parse_serialize_test.rb
parent957cd369fa38915241e0b66e852f66ac516de664 (diff)
downloadruby-3873b1eb39a2070937dc62ac47f8b96df54a72fc.tar.gz
Resync YARP
Diffstat (limited to 'test/yarp/parse_serialize_test.rb')
-rw-r--r--test/yarp/parse_serialize_test.rb26
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