Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Increase specificity of integration tests

Aperta
#554 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
50/100
Tipo di issue
Refactoring
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
lua
Ambito
testing-qa

Direzione di ricerca

Identify the integration test files containing the listed tests (e.g., testChainingPropagationThroughSwap1, testFirstHoverFrameMatch, frameTricksTest). For each, replace full replay loading with minimal puzzle setups using scheduled garbage and replay inputs. Run the relevant test files to confirm behavior is preserved. Done when all scoped tests are converted and the test suite passes.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Cleanup engine priority: 0 - high

Our current integration tests for engine functionality are very broad in the manner that they load up an entire replay and play it, only pausing at specific moments to verify behaviour.
As the engine changes over time to provide a better gameplay experience, replays used in integration tests may break for reasons unrelated to the actual change in the engine.
For most of these integration tests it should be possible to verify the behaviour by creating a puzzle with extra steps e.g. garbage scheduled to fall at specific times along with replay inputs that mimic the actions in the original replay.
This way the approximately 99% of each replay that aren't relevant for the behaviour verification can be eliminated and integration tests are likely to hold even through engine changes.

List of tests for conversion within the scope of this issue:

  • testChainingPropagationThroughSwap1
  • testFirstHoverFrameMatch
  • testHoverChainOverGarbageClear
  • horizontalSwapIntoHoverTest
  • noInputsInVsIsDrawTest
  • frameTricksTest; should be divided into multiple:
    • stealth
    • insert
    • outsert
    • platform
    • catch
    • grounded catch
    • DAS catch
    • stealth catch
    • grounded stealth catch
    • slide
    • bloop
    • yoschi's dumptruck
    • tornado
    • mato special
  • catchAndSyncTest (only the sync)
  • downStackDropsSandwichedGarbageAllTogether
  • matchMetalAndGarbageClearsAllMetalTest
  • fallingWhileHoverBeginsDoesNotChain
  • StackRollbackReplayTests
    • rollback from death
    • rolling back around attack timings in all discrete configurations
  • simpleTouchTest; all variations mentioned in the comments in separate tests
  • GarbageQueue tests; these should be remade to only feature the GarbageQueue interface instead of Match
  • testHoverInheritanceOverSwapOverGarbageHover (for the hover)
  • testHoverInheritanceOverSwapOverGarbageHover (for shock panel generation; that cannot be easily replicated with the kind of test demanded by this issue; get creative and probably do this last)

The following tests are intentionally unspecific in nature; we cannot really do anything but replace them when implementing breaking changes that affect a wider array of replays:

  • basicEndlessTest
  • basicTimeAttackTest
  • basicVsTest
  • basicVsTest2

The following tests will just become plain obsolete when implementing breaking changes that affect a wider array of replays, usually because they are testing for compatibility with older engine versions:

  • movingBeforeInPositionDisallowedPriorToTouch

Non-maintenance issues that would make this a lot easier to implement:

  • #137
  • #202

High priority as it is blocking several engine changes and bugfixes, including:

  • #663
  • #634
  • #624
Lingua principale
Lua
Stelle
30
Fork
20
Merge medio
6g 12h
PR unite (30g)
6

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di panel-attack/panel-game

Tutte le issue di panel-attack/panel-game

Issue simili

Altre issue su Lua

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.