libvips/test
John Cupitt 976db37f84
Revised threading system (#3105)
* reimplement threadpool

just a set of threads that get recycled

"ninja test" passes and dzsave seems to work, though pytest fails for
some reason

* clean up threading code a bit

move base stuff into thread.c, so we have a simple

	thread -> threadset -> threadpool

layering

* start trying to revert g_threadpool

based on the original commit

* working!

nice low systime again

still need to repply cnages to threadpool.c since 80e0cc3d1

* reapply fixes from master

so threadpool.c is now up to date

* rename VipsThread as VipsWorker

a bit less confusing

* use a semaphore to count workers in a pool

* tidy up

* formatting

* dynamic threadpool sizing

based on counting the number of blocked threads in each pool

it works, but the improvement is not great :(

* add "concurrency" metadata item

so operators can hint threadpool size (dzsave especially)

* don't use thinstrip for small images

* add RGB mode to openslide

since flatten was taking 20% of CPU time for dzsave

* fix up rgb mode

now actually works

* make the tile buffer per thread

in the new openslideload rgb mode

* fix dynamic pool downsize

* mild refactoring

* fix the buffer system

oops, turned it off by mistake

* all done!

* revise changelog

* Update libvips/iofuncs/threadset.c

Co-authored-by: Kleis Auke Wolthuizen <github@kleisauke.nl>

* Update libvips/iofuncs/threadset.c

Co-authored-by: Kleis Auke Wolthuizen <github@kleisauke.nl>

* LSan: add libMagickCore to suppression file

* Revert "Remove mutex lock for VipsThreadStartFn"

This reverts commit 41440491.

* add VIPS_MAX_THREADS

to set a hard limit on the threadset size

* Revert "Revert "Remove mutex lock for VipsThreadStartFn""

This reverts commit 77e8520966ba79194fff3b4e648bbd295cd5c260.

* remove sslock from sink.c

* move fixed threadpool build to init

not first use

* add some doc comments

* revert test suite threshold change

* add a test for MAX_THREADS

and move the test tmp/ area into the builddir

* limit VIPS_MAX_THREADS to sane values

* use tabs rather than spaces

Co-authored-by: Kleis Auke Wolthuizen <github@kleisauke.nl>
2022-10-26 15:25:19 +01:00
..
test-suite Merge branch '8.13' 2022-10-19 17:35:36 +01:00
.gitignore Update function list for stream -> source rename 2020-01-01 12:28:18 +01:00
meson.build longer timeout for tests 2022-02-19 16:06:29 +00:00
README.md CI: various improvements (#3096) 2022-10-17 19:08:35 +01:00
test_cli.sh skip some skippable tests (#3102) 2022-10-19 18:13:48 +01:00
test_connections.c fix two small bugs in test_connections.c 2020-10-27 15:11:29 +00:00
test_connections.sh skip some skippable tests (#3102) 2022-10-19 18:13:48 +01:00
test_descriptors.c CI: resolve failures and various improvements (#2426) 2021-09-07 11:14:45 +01:00
test_descriptors.sh make check passes after stream -> source rename 2019-12-30 12:48:20 +00:00
test_formats.sh add "unlimited" to jpegload 2022-08-02 13:50:09 +01:00
test_seq.sh argh reapply seq removal 2017-03-06 11:55:38 +00:00
test_stall.sh skip some skippable tests (#3102) 2022-10-19 18:13:48 +01:00
test_threading.sh Revised threading system (#3105) 2022-10-26 15:25:19 +01:00
test_thumbnail.sh fix thumbnail with cmyk output 2022-03-11 16:21:12 +00:00
variables.sh.in Revised threading system (#3105) 2022-10-26 15:25:19 +01:00

libvips test suite

This is in two parts: a few simple bash scripts in this directory are run on "meson test", and a fancier Python test suite that's run by GitHub actions on each commit.