tests/parallel-am.test


Log

Author Commit Date CI Message
Ralf Wildenhues fcf2f560 2009-05-17T15:32:40 Revert Automake license to GPLv2+. Automake will move to GPLv3+ once the Exception statement has been rewritten to use the new GPLv3 exception language. This change does not impact the COPYING file that may be installed by `automake --add-missing'. * COPYING: Revert to GPLv2. All uses changed. * NEWS: Update. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues f51165dd 2008-11-12T07:07:31 Testsuite fixes for ksh. * tests/check10.test: Add ':' as last command in subshell, for zero exit status of the subshell. * tests/parallel-am.test: Do not let failing 'unset' of nonexistent variable exit the test. * tests/parallel-am2.test: Likewise. * tests/parallel-am3.test: Likewise. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 956cf31f 2008-11-02T22:52:27 Fix maintainer-check failure. * tests/parallel-am.test: Rename variable to not match pattern used in maintainer-check. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 6a0dc321 2008-10-26T20:49:26 Parallel automake --add-missing: serialized file installs. * automake.in (QUEUE_CONF_FILE, QUEUE_LOCATION, QUEUE_STRING): New serialization keys. ($required_conf_file_queue): New file global. (queue_required_conf_file, require_queued_conf_file): New functions, to queue and dequeue requirements for aux dir files. (require_conf_file): Enqueue if needed. (get_number_of_threads): Can do threads with --add-missing now. (handle_makefiles_threaded): Let worker threads enqueue, let master attend to queued requirements at the right time. * tests/parallel-am.test: Explain the purpose of the include chain used here. * tests/parallel-am2.test: Also cope with --add-missing. * tests/parallel-am3.test: New test, test absence of races with concurrent same-file installs stemming from --add-missing. * tests/Makefile.am: Adjust. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 3fd0df9b 2008-10-26T20:11:12 Parallel automake: ordered output messages. * lib/Automake/Channels.pm (%_default_options): New options `ordered' default enabled, `queue', default zero (no queue), `queue_key' default undefined. (_merge_options): Ensure `ordered' channels cannot have fatal messages or backtrace output. (_enqueue, _dequeue): New functions, to push messages onto a Thread::Queue, and output messages from such a queue, suitably weeded for duplicates in the same manner as _print_message. (_print_message): If the channel is ordered and has an associated queue, then enqueue messages instead of printing them. (setup_channel_queue, pop_channel_queue): New functions, to set a Thread::Queue for channels, and to flush a queue. * lib/Automake/ChannelDefs.pm: Unset channel option `ordered' for fatal, automake, and verb channels. * automake.in (QUEUE_MESSAGE): New global constant, used as serialization key. (handle_makefiles_threaded): Create message queues for each input file; workers queue messages, and the master outputs them ordered, using the new Channels.pm functions. * tests/parallel-am.test: Also check for ordered output (in the absence of --add-missing races). * tests/parallel-am2.test: New test; check for ordered output of warning and (regular) error messages. * tests/Makefile.am: Adjust. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Ralf Wildenhues 937775c8 2008-10-26T19:29:25 Parallel automake execution: AUTOMAKE_JOBS. * lib/Automake/Config.in (perl_threads): New global. * automake.in: Use it. If the perl supports interpreter-based threading, then use `threads' and `Thread::Queue'. (handle_makefile, handle_makefiles_serial): New functions, factored out from main. (get_number_of_threads): New function, compute number of threads to use, based on environment variable `AUTOMAKE_JOBS' and number of independent makefiles. (handle_makefiles_threaded): New function. Spawn threads, use thread queue to distribute handling the different makefiles. Collect $exit_code values from threads. (main): Use new functions. * aclocal.in: No threads here. * configure.ac: Substitute PERL_THREADS; enabled with perl >= 5.7.2 and when ithreads are available. * bootstrap (dosubst): Likewise. * Makefile.am (do_subst): Likewise. * lib/Automake/Makefile.am (do_subst): Likewise. * lib/Automake/ChannelDefs.pm: Use `Automake::Config' and `threads'. (verb): Prepend thread ID (tid) to verbose messages. * lib/Automake/Channels.pm (msg): Before exiting, flush stderr, needed for worker threads. * lib/Automake/tests/Makefile.am (TESTS_ENVIRONMENT): Also include the build tree path, so Config.pm is found. * tests/parallel-am.test: New test. * tests/Makefile.am: Update. * doc/automake.texi (Invoking Automake): Document AUTOMAKE_JOBS. * NEWS, THANKS: Update. Report about long execution times by Joakim Tjernlund and others. Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>