Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port tests to common Kotlin #269

Open
krzema12 opened this issue Nov 11, 2024 · 2 comments
Open

Port tests to common Kotlin #269

krzema12 opened this issue Nov 11, 2024 · 2 comments
Assignees

Comments

@krzema12
Copy link
Owner

krzema12 commented Nov 11, 2024

To be able to run the tests for all supported platforms, let's first convert them from Java to Kotlin.

Focusing on tests that use some files from the resources, starting from the tests that have most LoC:

Harder ones:

Tests not relying on test resources:






  • 228 ./org/snakeyaml/engine/v2/comments/ProblematicYamlTest.java

  • 188 ./org/snakeyaml/engine/v2/api/LoadTest.java
  • 179 ./org/snakeyaml/engine/v2/api/dump/DumpSettingsTest.java


  • 129 ./org/snakeyaml/engine/schema/NumberCoreTest.java
  • 128 ./org/snakeyaml/engine/usecases/env/EnvFormatTest.java

  • 126 ./org/snakeyaml/engine/v2/api/DumpTest.java
  • 125 ./org/snakeyaml/engine/usecases/tags/TimestampTagTest.java

  • 120 ./org/snakeyaml/engine/v2/api/LoadSettingsTest.java
  • 118 ./org/snakeyaml/engine/v2/emitter/AnchorUnicodeTest.java

  • 114 ./org/snakeyaml/engine/v2/api/types/OptionalTest.java
  • 113 ./org/snakeyaml/engine/schema/NumberJsonTest.java
  • 112 ./org/snakeyaml/engine/usecases/untrusted/DocumentSizeLimitTest.java

  • 112 ./org/snakeyaml/engine/usecases/external_test_suite/SuiteUtils.java - Remove Java-based YAML test suite #370
  • 109 ./org/snakeyaml/engine/usecases/external_test_suite/EventRepresentation.java - Remove Java-based YAML test suite #370
  • 108 ./org/snakeyaml/engine/v2/exceptions/MarkTest.java
  • 108 ./org/snakeyaml/engine/issues/issue46/JRubyPsychTest.java
  • 105 ./org/snakeyaml/engine/usecases/binary/BinaryRoundTripTest.java


  • 90 ./org/snakeyaml/engine/usecases/references/BillionLaughsAttackTest.java
  • 89 ./org/snakeyaml/engine/usecases/recursive/RecursiveMapTest.java
  • 83 ./org/snakeyaml/engine/v2/emitter/FlexSimleKeyTest.java

  • 83 ./org/snakeyaml/engine/issues/issue544/DoubleQuoteTest.java
  • 80 ./org/snakeyaml/engine/v2/common/CharConstantsTest.java
  • 77 ./org/snakeyaml/engine/usecases/references/NonAsciiAnchorTest.java

  • 75 ./org/snakeyaml/engine/issues/issue17/WindowsTest.java
  • 74 ./org/snakeyaml/engine/issues/issue23/EmptyStringOutputTest.java
  • 72 ./org/snakeyaml/engine/v2/scanner/FuzzYAMLRead50431Test.java

  • 72 ./org/snakeyaml/engine/v2/api/ConstructNodeTest.java
  • 71 ./org/snakeyaml/engine/issues/issue36/EmitCommentTest.java
  • 70 ./org/snakeyaml/engine/v2/common/SpecVersionTest.java

  • 69 ./org/snakeyaml/engine/v2/common/AnchorTest.java
  • 68 ./org/snakeyaml/engine/v2/api/types/UuidTest.java
  • 64 ./org/snakeyaml/engine/v2/constructor/DefaultConstructorTest.java
  • 64 ./org/snakeyaml/engine/usecases/untrusted/ByteLimitTest.java

  • 64 ./org/snakeyaml/engine/issues/issue1/NullConstructorTest.java
  • 61 ./org/snakeyaml/engine/usecases/custom_collections/CustomDefaultCollectionsTest.java
  • 59 ./org/snakeyaml/engine/v2/parser/ParserTest.java
  • 59 ./org/snakeyaml/engine/v2/api/lowlevel/ComposeTest.java

  • 58 ./org/snakeyaml/engine/schema/BooleanCoreTest.java
  • 57 ./org/snakeyaml/engine/usecases/external_test_suite/SuiteData.java - Remove Java-based YAML test suite #370
  • 56 ./org/snakeyaml/engine/usecases/fuzzy/FuzzYAMLRead56902Test.java
  • 55 ./org/snakeyaml/engine/issues/issue25/DumpToStringTest.java
  • 53 ./org/snakeyaml/engine/v2/utils/TestUtils.java

  • 53 ./org/snakeyaml/engine/v2/composer/ComposerTest.java
  • 53 ./org/snakeyaml/engine/v2/api/lowlevel/ParseTest.java
  • 53 ./org/snakeyaml/engine/usecases/external_test_suite/EmitSuiteTest.java - Remove Java-based YAML test suite #370
  • 52 ./org/snakeyaml/engine/issues/issue11/TabInFlowContextTest.java
  • 51 ./org/snakeyaml/engine/v2/nodes/MappingNodeTest.java

  • 50 ./org/snakeyaml/engine/v2/nodes/NodeTest.java
  • 50 ./org/snakeyaml/engine/v2/api/lowlevel/SerializeTest.java
  • 50 ./org/snakeyaml/engine/schema/FailsafeTest.java
  • 47 ./org/snakeyaml/engine/issues/issue51/LoadSettingsBufferSizeTest.java

  • 46 ./org/snakeyaml/engine/usecases/colon_in_flow_context/ColonInFlowContextInMapTest.java
  • 46 ./org/snakeyaml/engine/usecases/colon_in_flow_context/ColonInFlowContextInListTest.java
  • 46 ./org/snakeyaml/engine/schema/NullCoreTest.java
  • 46 ./org/snakeyaml/engine/issues/issue3/ExceptionTest.java

  • 45 ./org/snakeyaml/engine/v2/events/EventTest.java
  • 45 ./org/snakeyaml/engine/usecases/fuzzy/FuzzyCollectionTest.java
  • 44 ./org/snakeyaml/engine/v2/emitter/UseUnicodeEncodingTest.java
  • 44 ./org/snakeyaml/engine/schema/BooleanJsonTest.java

  • 43 ./org/snakeyaml/engine/v2/common/UriEncoderTest.java
  • 43 ./org/snakeyaml/engine/usecases/tags/SetsTagTest.java
  • 43 ./org/snakeyaml/engine/usecases/tags/LocalTagTest.java
  • 42 ./org/snakeyaml/engine/usecases/tags/ExplicitRootTagTest.java

  • 40 ./org/snakeyaml/engine/schema/NullJsonTest.java
  • 39 ./org/snakeyaml/engine/issues/issue44/ProtectedClassesTest.java
  • 37 ./org/snakeyaml/engine/v2/resolver/CoreScalarResolverTest.java - Kotlinize and commonize CoreScalarResolverTest #397
  • 36 ./org/snakeyaml/engine/usecases/references/RestrictAliasNamesTest.java

  • 35 ./org/snakeyaml/engine/usecases/env/SetEnvVariableTest.java
  • 35 ./org/snakeyaml/engine/usecases/env/EnvTagTest.java
  • 35 ./org/snakeyaml/engine/issues/issue17/WindowsLinesTest.java
  • 35 ./org/snakeyaml/engine/internal/SystemPropertyExtension.java

  • 33 ./org/snakeyaml/engine/v2/resolver/ScalarResolverTupleTest.java
  • 32 ./org/snakeyaml/engine/v2/scanner/SimpleKeyTest.java
  • 31 ./org/snakeyaml/engine/v2/parser/VersionTagsTupleTest.java
  • 31 ./org/snakeyaml/engine/usecases/tags/CustomConstructor.java

  • 30 ./org/snakeyaml/engine/v2/tokens/TokenTest.java
  • 30 ./org/snakeyaml/engine/usecases/tags/ImportValueImpl.java
  • 30 ./org/snakeyaml/engine/internal/SystemProperty.java
  • 29 ./org/snakeyaml/engine/v2/events/ImplicitTupleTest.java
  • 17 ./org/snakeyaml/engine/internal/TestConstructNode.java
krzema12 added a commit that referenced this issue Nov 12, 2024
Part of #269.

The first commit is the output from Java-to-Kotlin converter, along with
necessary fixes to make the tests pass.
The second commit cleans the file up a bit and brings Kotlin-specific
style.
These can be squashed upon merging.
@krzema12
Copy link
Owner Author

This task is becoming more important as we need to add platform-specific logic, and ensure things still work. See e. g. #272.

krzema12 pushed a commit that referenced this issue Dec 16, 2024
This PR migrates tests for the `representer` package to common sources.
This should provide some coverage for `identityHashCode` function that
does not work correctly on all platforms.

Part of #269 and
#279.
krzema12 added a commit that referenced this issue Jan 3, 2025
krzema12 added a commit that referenced this issue Jan 3, 2025
krzema12 added a commit that referenced this issue Jan 3, 2025
krzema12 added a commit that referenced this issue Jan 3, 2025
krzema12 added a commit that referenced this issue Jan 4, 2025
@krzema12 krzema12 self-assigned this Jan 4, 2025
krzema12 added a commit that referenced this issue Jan 8, 2025
krzema12 added a commit that referenced this issue Jan 9, 2025
krzema12 added a commit that referenced this issue Jan 9, 2025
krzema12 added a commit that referenced this issue Jan 9, 2025
krzema12 added a commit that referenced this issue Jan 10, 2025
Part of #269

---------

Co-authored-by: Oleg Smirnov <[email protected]>
@krzema12 krzema12 changed the title Port tests to Kotlin Port tests to common Kotlin Jan 15, 2025
@mervyn-mccreight
Copy link

I'll happily support here when I find the time to do so :)

krzema12 added a commit that referenced this issue Jan 15, 2025
Part of #269.

Focuses just on porting a group of related tests (with a common parent
class) to Kotlin, for now JVM-specific. Commonization will be done in a
separate change.
krzema12 added a commit that referenced this issue Jan 16, 2025
Part of #269.

I'm planning to implement Okio's file system to reflect the common test
resources, so this refactoring brings us closer to this idea.
krzema12 added a commit that referenced this issue Jan 16, 2025
Part of #269.

This change focuses solely on moving the resource files, and any
adjustments that have to happen for it to work. It's a step towards
commonization of the inherited tests.
krzema12 added a commit that referenced this issue Jan 17, 2025
…ringFromResources (#365)

Part of #269.

It's a step towards using other common test resources. It focuses on
implementing the custom Okio file system, and while we're doing it, we
can reuse it for retrieving a single common test resource to avoid
duplication.
krzema12 added a commit that referenced this issue Jan 17, 2025
Part of #269.

It was necessary to adjust the code a bit since some functions were
still JVM-specific.
krzema12 added a commit that referenced this issue Jan 17, 2025
Part of #269.

It's not used anywhere, after migrating tests that use resources to
common Kotlin.
krzema12 added a commit that referenced this issue Jan 19, 2025
krzema12 added a commit that referenced this issue Jan 27, 2025
krzema12 added a commit that referenced this issue Feb 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants