[ruby/yarp] Move tests from test/* to test/yarp/* to match CRuby
This should make it easier on the sync to determine what changed and hopefully result in fewer merge conflicts that have to be manually resolved. https://github.com/ruby/yarp/commit/17d82afbfc
This commit is contained in:
parent
9b8602dd90
commit
439f069b4b
@ -4,7 +4,7 @@
|
|||||||
# test.
|
# test.
|
||||||
return if RUBY_ENGINE == "jruby" || RUBY_ENGINE == "truffleruby"
|
return if RUBY_ENGINE == "jruby" || RUBY_ENGINE == "truffleruby"
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
class BOMTest < Test::Unit::TestCase
|
class BOMTest < Test::Unit::TestCase
|
||||||
def test_ident
|
def test_ident
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
class CommentsTest < Test::Unit::TestCase
|
class CommentsTest < Test::Unit::TestCase
|
||||||
include ::YARP::DSL
|
include ::YARP::DSL
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
class DesugarVisitorTest < Test::Unit::TestCase
|
class DesugarVisitorTest < Test::Unit::TestCase
|
||||||
def test_and_write
|
def test_and_write
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
class EncodingTest < Test::Unit::TestCase
|
class EncodingTest < Test::Unit::TestCase
|
||||||
%w[
|
%w[
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
class ErrorsTest < Test::Unit::TestCase
|
class ErrorsTest < Test::Unit::TestCase
|
||||||
include ::YARP::DSL
|
include ::YARP::DSL
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
module YARP
|
module YARP
|
||||||
class HeredocDedentTest < Test::Unit::TestCase
|
class HeredocDedentTest < Test::Unit::TestCase
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
if RUBY_PLATFORM =~ /linux/
|
if RUBY_PLATFORM =~ /linux/
|
||||||
#
|
#
|
||||||
|
@ -13,7 +13,7 @@ return if !defined?(RubyVM::InstructionSequence) || RUBY_VERSION < "3.2"
|
|||||||
# Ruby is handling large ISeqs on 32-bit machines
|
# Ruby is handling large ISeqs on 32-bit machines
|
||||||
return if RUBY_PLATFORM =~ /i686/
|
return if RUBY_PLATFORM =~ /i686/
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
class LocalsTest < Test::Unit::TestCase
|
class LocalsTest < Test::Unit::TestCase
|
||||||
invalid = []
|
invalid = []
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
module YARP
|
module YARP
|
||||||
class LocationTest < Test::Unit::TestCase
|
class LocationTest < Test::Unit::TestCase
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
return if YARP::BACKEND == :FFI
|
return if YARP::BACKEND == :FFI
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
return unless defined?(RubyVM::InstructionSequence)
|
return unless defined?(RubyVM::InstructionSequence)
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
return if YARP::BACKEND == :FFI
|
return if YARP::BACKEND == :FFI
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
class ParseTest < Test::Unit::TestCase
|
class ParseTest < Test::Unit::TestCase
|
||||||
# When we pretty-print the trees to compare against the snapshots, we want to
|
# When we pretty-print the trees to compare against the snapshots, we want to
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
return if YARP::BACKEND == :FFI
|
return if YARP::BACKEND == :FFI
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
module YARP
|
module YARP
|
||||||
class RipperCompatTest < Test::Unit::TestCase
|
class RipperCompatTest < Test::Unit::TestCase
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
class YARPRubyAPITest < Test::Unit::TestCase
|
class YARPRubyAPITest < Test::Unit::TestCase
|
||||||
def test_ruby_api
|
def test_ruby_api
|
||||||
|
100
test/yarp/test_helper.rb
Normal file
100
test/yarp/test_helper.rb
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "yarp"
|
||||||
|
require "ripper"
|
||||||
|
require "pp"
|
||||||
|
require "test/unit"
|
||||||
|
require "tempfile"
|
||||||
|
|
||||||
|
puts "Using YARP backend: #{YARP::BACKEND}" if ENV["YARP_FFI_BACKEND"]
|
||||||
|
|
||||||
|
module YARP
|
||||||
|
module Assertions
|
||||||
|
private
|
||||||
|
|
||||||
|
def assert_equal_nodes(expected, actual, compare_location: true, parent: nil)
|
||||||
|
assert_equal expected.class, actual.class
|
||||||
|
|
||||||
|
case expected
|
||||||
|
when Array
|
||||||
|
assert_equal(
|
||||||
|
expected.size,
|
||||||
|
actual.size,
|
||||||
|
-> { "Arrays were different sizes. Parent: #{parent.pretty_inspect}" }
|
||||||
|
)
|
||||||
|
|
||||||
|
expected.zip(actual).each do |(expected_element, actual_element)|
|
||||||
|
assert_equal_nodes(
|
||||||
|
expected_element,
|
||||||
|
actual_element,
|
||||||
|
compare_location: compare_location,
|
||||||
|
parent: actual
|
||||||
|
)
|
||||||
|
end
|
||||||
|
when YARP::SourceFileNode
|
||||||
|
deconstructed_expected = expected.deconstruct_keys(nil)
|
||||||
|
deconstructed_actual = actual.deconstruct_keys(nil)
|
||||||
|
assert_equal deconstructed_expected.keys, deconstructed_actual.keys
|
||||||
|
|
||||||
|
# Filepaths can be different if test suites were run
|
||||||
|
# on different machines.
|
||||||
|
# We accommodate for this by comparing the basenames,
|
||||||
|
# and not the absolute filepaths
|
||||||
|
assert_equal deconstructed_expected.except(:filepath), deconstructed_actual.except(:filepath)
|
||||||
|
assert_equal File.basename(deconstructed_expected[:filepath]), File.basename(deconstructed_actual[:filepath])
|
||||||
|
when YARP::Node
|
||||||
|
deconstructed_expected = expected.deconstruct_keys(nil)
|
||||||
|
deconstructed_actual = actual.deconstruct_keys(nil)
|
||||||
|
assert_equal deconstructed_expected.keys, deconstructed_actual.keys
|
||||||
|
|
||||||
|
deconstructed_expected.each_key do |key|
|
||||||
|
assert_equal_nodes(
|
||||||
|
deconstructed_expected[key],
|
||||||
|
deconstructed_actual[key],
|
||||||
|
compare_location: compare_location,
|
||||||
|
parent: actual
|
||||||
|
)
|
||||||
|
end
|
||||||
|
when YARP::Location
|
||||||
|
assert_operator actual.start_offset, :<=, actual.end_offset, -> {
|
||||||
|
"start_offset > end_offset for #{actual.inspect}, parent is #{parent.pretty_inspect}"
|
||||||
|
}
|
||||||
|
if compare_location
|
||||||
|
assert_equal(
|
||||||
|
expected.start_offset,
|
||||||
|
actual.start_offset,
|
||||||
|
-> { "Start locations were different. Parent: #{parent.pretty_inspect}" }
|
||||||
|
)
|
||||||
|
|
||||||
|
assert_equal(
|
||||||
|
expected.end_offset,
|
||||||
|
actual.end_offset,
|
||||||
|
-> { "End locations were different. Parent: #{parent.pretty_inspect}" }
|
||||||
|
)
|
||||||
|
|
||||||
|
end
|
||||||
|
else
|
||||||
|
assert_equal expected, actual
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def assert_valid_locations(value, parent: nil)
|
||||||
|
case value
|
||||||
|
when Array
|
||||||
|
value.each do |element|
|
||||||
|
assert_valid_locations(element, parent: value)
|
||||||
|
end
|
||||||
|
when YARP::Node
|
||||||
|
value.deconstruct_keys(nil).each_value do |field|
|
||||||
|
assert_valid_locations(field, parent: value)
|
||||||
|
end
|
||||||
|
when YARP::Location
|
||||||
|
assert_operator value.start_offset, :<=, value.end_offset, -> {
|
||||||
|
"start_offset > end_offset for #{value.inspect}, parent is #{parent.pretty_inspect}"
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Test::Unit::TestCase.include(YARP::Assertions)
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
return if YARP::BACKEND == :FFI
|
return if YARP::BACKEND == :FFI
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require "yarp_test_helper"
|
require_relative "test_helper"
|
||||||
|
|
||||||
class VersionTest < Test::Unit::TestCase
|
class VersionTest < Test::Unit::TestCase
|
||||||
def test_version_is_set
|
def test_version_is_set
|
||||||
|
Loading…
x
Reference in New Issue
Block a user