Skip to content

Full Canvas Test Suite#290

Draft
BaconCat1 wants to merge 12 commits into
CraftCanvasMC:mainfrom
BaconCat1:feat/tests
Draft

Full Canvas Test Suite#290
BaconCat1 wants to merge 12 commits into
CraftCanvasMC:mainfrom
BaconCat1:feat/tests

Conversation

@BaconCat1

@BaconCat1 BaconCat1 commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

This pull request is a work in progress and is not ready to merge.

The initial commit wires Canvas-specific server tests into JUnit. Individual
tests and test infrastructure will be added over time.

Below is a list of planned tests.

API Events and Lifecycle

  • World unload result status
  • Async entity portal event state
  • Post-portal event state
  • Async entity teleport event state
  • Post-teleport event state
  • Player save event reason
  • End credits event decisions
  • Async world unload event state
  • Async player respawn event state
  • Post-respawn event state

General Utilities

  • Region section coordinate packing
  • Canonical reference initialization
  • Collecting list operations
  • Locked reference concurrency
  • Time span parsing and serialization
  • Time span validation
  • Time span instant calculations
  • Weak concurrent collection operations
  • Faster random source determinism
  • Utility time formatting
  • Utility string and flag handling
  • Utility future waiting
  • Utility directory cleanup
  • Utility text gradients
  • Silent logger behavior
  • CPU information reporting
  • Collecting list cast failure
  • Faster random bounds
  • Faster random positional formula
  • Flowable fluid utilities
  • Time span large units
  • Time span overflow
  • Utility random derivation
  • Utility target time
  • Canvas version fetcher basics

Collections, Maps, and Tickets

  • Fast heap priority queue operations
  • Activity bit-set semantics
  • Activity array-map semantics
  • Behavior control array-set semantics
  • Ticket holder lifecycle
  • Weak concurrent collection array contract
  • Weak concurrent collection compaction
  • Fast heap priority queue differential
  • Activity array-map differential
  • Behavior control array-set iteration
  • Trojan array list
  • Ticket record callback

Structures and Migrations

  • Structure utility helpers
  • Box octree spatial queries
  • Legacy pearl tag migration
  • Compressed pearl file migration
  • Paletted structure block compression
  • Pearls migration corrupt file
  • Box octree boundary
  • Box octree cross-octant behavior
  • Paletted structure block info empty state
  • Paletted structure block info identity
  • Paletted structure block info packing
  • Structure template optimizer bounds
  • Structure template optimizer fallback
  • Structure template optimizer transform

SIMD

  • SIMD Java version detection
  • SIMD map-palette parity
  • Vector map-palette boundary length
  • Vector map-palette randomized behavior

Spark and Commands

  • Unsupported Folia duration statistics
  • Folia platform metadata
  • Folia player ping snapshots
  • Folia class-source lookup
  • Folia server configuration inventory
  • Folia server configuration YAML parser
  • Folia world information counts
  • Subcommand metadata
  • Subcommand tree
  • World distance type

World, Blocks, Bars, and Chunks

  • Per-world distance configuration
  • Natural spawn chunk-map coverage
  • Combined heightmap updates
  • Cached block-state tags
  • Region resource-bar codec
  • Region resource-bar display manager
  • Region resource-bar format
  • Region resource-bar tick
  • Regionized bar normalization
  • Sleep-until-time block-entity tick invoker
  • Sleeping ticker
  • Balanced chunk-system lifecycle
  • Balanced chunk-system priority
  • Combined heightmap bottom boundary
  • Natural spawn chunk-map radius

Region-Threading

  • Same region never ticks concurrently
  • Independent regions tick concurrently
  • Region split transfers scheduled work exactly once
  • Region merge transfers scheduled work exactly once
  • Region retirement rejects new work
  • Scheduler exception isolation
  • Scheduler shutdown drains accepted work
  • Scheduler shutdown rejects late work
  • Affinity scheduler preserves region ownership
  • Cross-region entity movement
  • Cross-region player teleport
  • Cross-world player teleport
  • Portal event ordering across regions
  • Respawn event ordering across regions
  • Player disconnect during teleport
  • Player save racing with world unload
  • Entity removal racing with region transfer
  • Regionized scoreboard snapshot consistency
  • Region profiler registration and cleanup
  • Region watchdog detection
  • World shutdown with multiple active regions

Persistence and Recovery

  • Ender pearl save and restart restoration
  • Ender pearl migration idempotence
  • Interrupted migration recovery
  • Corrupt migration input preserves the original file
  • Atomic player-save replacement
  • Crash during player save
  • Crash during world save
  • Restart after an unclean shutdown
  • World-folder migration collision handling
  • Configuration write interruption recovery
  • Malformed configuration fallback
  • Per-world configuration isolation

Networking and Commands

  • Alternative keepalive normal response
  • Alternative keepalive timeout
  • Disconnect during keepalive
  • Signed chat packet processing on the correct region
  • Signed command packet processing on the correct region
  • Command execution permission checks
  • Command execution from console
  • Command execution from a region-owned player
  • Command callback after sender disconnect
  • Invalid command argument reporting
  • Region-bar command lifecycle
  • Reload command failure rollback
  • Maximum-player command boundaries

Chunk and World Behavior

  • Chunk task priority ordering
  • Chunk task cancellation
  • Chunk executor exception isolation
  • Chunk executor shutdown
  • Stream-group completion
  • Stream-group partial failure
  • Natural spawning across region boundaries
  • Heightmap updates at world minimum and maximum
  • Sleeping block entity wake-up
  • Sleeping block entity removal while queued
  • Region resource-bar cleanup after logout
  • Region resource-bar transfer between worlds
  • Region resource-bar invalid persisted data
  • World unload with pending chunk work

@BaconCat1 BaconCat1 changed the title Wire Canvas server tests into JUnit Full Canvas Test Suite Jul 14, 2026
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

Successfully merging this pull request may close these issues.

1 participant