[wesnoth-commits] [wesnoth/wesnoth] 0f6a94: Unit tests for [drains], [poison] and [slow], with...

Steve Cotton noreply at github.com
Tue Apr 19 13:28:00 UTC 2022


  Branch: refs/heads/master
  Home:   https://github.com/wesnoth/wesnoth
  Commit: 0f6a94f2a79b5a2908a8acafd6b7cdba33474fdf
      https://github.com/wesnoth/wesnoth/commit/0f6a94f2a79b5a2908a8acafd6b7cdba33474fdf
  Author: Steve Cotton <steve at octalot.co.uk>
  Date:   2022-04-19 (Tue, 19 Apr 2022)

  Changed paths:
    A data/test/macros/start_position_common_keep_a_b.cfg
    A data/test/maps/2p_single_castle.map
    A data/test/scenarios/reflexive_drains.cfg
    A data/test/scenarios/reflexive_poison.cfg
    A data/test/scenarios/reflexive_slow.cfg
    M wml_test_schedule

  Log Message:
  -----------
  Unit tests for [drains], [poison] and [slow], with apply_to=opponent

Slightly different to PR #6582, which was the 1.16 version of this. The five
lines that were labelled `preserving known bug` are changed to test that it's
been fixed.

Here `apply_to=opponent` means that the weapon special gives the opponent the
ability, the unit that should get poisoned or slowed is the unit that has the
weapon special.

There's a known bug in 1.16, that `apply_to=opponent` check the wrong unit to
see it it's `unpoisonable`, `undrainable` etc. It also checks the wrong unit to
see if it's already poisoned or slowed, so a battle between two units that both
have reverse-poison results in at most one being poisoned.

Most of the credit for this is Newfrenchy's, as he's already written a fix
and a WML based test. This commit uses a Lua test instead to test more
combinations of statuses.

This adds a `COMMON_KEEP_A_B_UNIT_TEST` macro, which is a counterpart to the
`GENERIC_UNIT_TEST` macro that starts the leaders next to each other, ready
to attack. The `A_B` is because I'm planning a multiple-side variant too.

There's no test for [petrify], as simulate_combat doesn't provide a stat for it.

This tests only 3 of the 6 abilities whose behavior changed in 650f70405ff.
My thoughts on testing the others are:
* [firststrike]'s test is in 650f70405ff.
* [drains], [poison] and [slow] are tested here.
* [petrify] ends combat, it's also not exposed in simulate_combat's stats.
* [plague] triggers after combat ends.





More information about the Commits mailing list