Skip to content

test: get rid of long tests#11043

Merged
Buristan merged 7 commits intotarantool:masterfrom
ligurio:ligurio/gh-10840-long-tests
Mar 3, 2025
Merged

test: get rid of long tests#11043
Buristan merged 7 commits intotarantool:masterfrom
ligurio:ligurio/gh-10840-long-tests

Conversation

@ligurio
Copy link
Member

@ligurio ligurio commented Jan 23, 2025

Blocked by:


See details in #10840, in short:

  • There is no precise criteria to distinguish long tests from other tests. Often it's a matter of taste: it feels like some tests take longer than others.
  • The mark "long" will not be likely be removed, even if it is no longer such.
  • Splitting tests into long and short makes testing more difficult and reduces the frequency of running some tests.

The patch removes long markers in tests and merge test suite engine_long with "long" tests together with engine suite.

Closes #10840

NO_CHANGELOG=testing
NO_DOC=testing
NO_TEST=testing

@ligurio ligurio force-pushed the ligurio/gh-10840-long-tests branch 2 times, most recently from a01cf28 to 297e521 Compare January 23, 2025 12:45
@Buristan Buristan self-assigned this Jan 23, 2025
@coveralls
Copy link

coveralls commented Jan 23, 2025

Coverage Status

coverage: 87.439% (-0.02%) from 87.455%
when pulling cf8d76b on ligurio:ligurio/gh-10840-long-tests
into a1dae91
on tarantool:master
.

Copy link
Collaborator

@Buristan Buristan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, Sergey!
There are no objections from my side, so LGTM.

However, I'm a little bit confused by changes in <test/engine/box.lua>. Are they needed for the long test setup? If so, please mention this in the commit message.

  • There is no precise criteria to distinguish long tests from

Typo: s/is/are/

  • The mark "long" will not be likely be removed, even if it is

Typo: s/likely be/likely to be/

The patch removes long markers in tests and merge test suite

Typo: s/merge/merges/

engine_long with "long" tests together with engine suite.

Typo: s/engine suite/the engine suite/

@Buristan Buristan removed their assignment Jan 23, 2025
Copy link
Contributor

@Totktonada Totktonada left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good movement! LGTM after resolving two small questions above.

@locker locker removed their assignment Jan 24, 2025
@Totktonada Totktonada added the full-ci Enables all tests for a pull request label Jan 24, 2025
@Totktonada
Copy link
Contributor

The following long tests are failed in CI (with ASAN):

  • replication/prune.test.lua (segfault!)
  • sql-luatest/ghs_119_too_long_mem_values_test.lua (310 seconds timeout)
  • sql-luatest/ghs_122_allocations_in_printf_test.lua (not ok)

It seems they need a special glance.

@ligurio ligurio force-pushed the ligurio/gh-10840-long-tests branch 5 times, most recently from d888ecf to 4936d86 Compare February 21, 2025 11:18
Copy link
Collaborator

@ImeevMA ImeevMA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looked at the SQL related fixes and they LGTM!

ligurio and others added 4 commits February 27, 2025 15:32
The patch fix testcase names in
`sql-luatest/ghs_119_too_long_mem_values_test.lua`.

NO_CHANGELOG=testing
NO_DOC=testing
The test `replication/prune.test.lua` is failed when running by tarantool
built with enabled UndefinedBehaviourSanitizer:

NO_WRAP
[002] /home/sergeyb/sources/MRG/tarantool/src/box/xrow.c:2333:26: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
[002] SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/sergeyb/sources/MRG/tarantool/src/box/xrow.c:2333:26
[001] [ fail ]
NO_WRAP

The patch fixes that.

Fixes tarantool#11045
Part of tarantool#10840

NO_CHANGELOG=fix UB
NO_DOC=fix UB
NO_TEST=not required
The patch cast variable `N` to int64 to fix signed integer
overflow. The issue was found by regression test
`sql-luatest/ghs_122_allocations_in_printf_test.lua`, so
an additional test is not required.

Fixes tarantool#11176
Part of tarantool#10840

NO_CHANGELOG=fix UB
NO_DOC=fix UB
NO_TEST=not required
The patch speeding up test ghs_119_too_long_mem_values_test in
about 2-2.5 times (16 sec vs. 7 sec).

Part of tarantool#10840

NO_CHANGELOG=testing
NO_DOC=testing
@ligurio ligurio force-pushed the ligurio/gh-10840-long-tests branch 5 times, most recently from 93c4969 to 9f7878f Compare February 27, 2025 14:48
@Buristan Buristan self-assigned this Feb 27, 2025
ligurio added 3 commits March 1, 2025 20:34
The patch makes possible running test previously marked as "long"
with timeouts suitable for other tests even with ASAN build.

The test `sql-luatest/ghs_119_too_long_mem_values_test.lua`
generates data for checking limits and appropriate error message
in SQL. The testcases `replace` and `concat` are the slowest and
with enabled ASAN requires more than 310 sec for execution, so
these testcases are skipped when build instrumented by ASAN. Also,
the tag `parallel` was added, `test-run.py` will run testcases in
parallel.

Part of tarantool#10840

NO_CHANGELOG=testing
NO_DOC=testing
There are two tests that marked as "long": delete_insert.test.lua
and delete_replace_update.test.lua. Both tests cannot be executed
on AArch64 because execution time is exceeded timeout (320 sec).
Both tests runs a function many times, so these tests were
designed as a load tests, not a functional. Mixing load and
functional test is a bad idea, to allow executing these tests on
AArch64 the patch reduces a number of iterations and overall
times is reduced in 10 times. As a mitigation we have performance
tests that used as a load and performance tests.

Needed for the following patch.

Part of tarantool#10840

NO_CHANGELOG=testing
NO_DOC=testing
See details in tarantool#10840, in short:

- There are no precise criteria to distinguish long tests from
  other tests. Often it's a matter of taste: it feels like some
  tests take longer than others.
- The mark "long" will not be likely to be removed, even if it is
  no longer such.
- Splitting tests into long and short makes testing more difficult
  and reduces the frequency of running some tests.

The patch removes `long` markers in tests and merges test suite
`engine_long` with "long" tests together with the `engine` suite.

Note, the test `vinyl/select_consistency.test.lua` was marked as
"long", it is gone in commit 153463d
("test: drop vinyl/select_consistency.test.lua").

Closes tarantool#10840

NO_CHANGELOG=testing
NO_DOC=testing
@ligurio ligurio force-pushed the ligurio/gh-10840-long-tests branch from 9f7878f to cf8d76b Compare March 1, 2025 17:34
@ligurio ligurio removed the do not merge Not ready to be merged label Mar 1, 2025
@Totktonada Totktonada removed their request for review March 3, 2025 10:44
@Buristan Buristan merged commit 26b5079 into tarantool:master Mar 3, 2025
62 checks passed
@ligurio ligurio deleted the ligurio/gh-10840-long-tests branch March 3, 2025 11:08
@Buristan Buristan mentioned this pull request Mar 4, 2025
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

full-ci Enables all tests for a pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Marking tests as "long" is outdated

6 participants