From owner-svn-ports-all@freebsd.org Mon Nov 23 03:03:35 2015 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF132A354C4; Mon, 23 Nov 2015 03:03:35 +0000 (UTC) (envelope-from jmmv@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8A6AA1FC8; Mon, 23 Nov 2015 03:03:35 +0000 (UTC) (envelope-from jmmv@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tAN33Y5M093213; Mon, 23 Nov 2015 03:03:34 GMT (envelope-from jmmv@FreeBSD.org) Received: (from jmmv@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tAN33YmA093210; Mon, 23 Nov 2015 03:03:34 GMT (envelope-from jmmv@FreeBSD.org) Message-Id: <201511230303.tAN33YmA093210@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jmmv set sender to jmmv@FreeBSD.org using -f From: Julio Merino Date: Mon, 23 Nov 2015 03:03:34 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r402256 - head/devel/kyua X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Nov 2015 03:03:35 -0000 Author: jmmv (src committer) Date: Mon Nov 23 03:03:34 2015 New Revision: 402256 URL: https://svnweb.freebsd.org/changeset/ports/402256 Log: Update devel/kyua to 0.12. **Released on November 22nd, 2015.** This is a huge release and marks a major milestone for Kyua as it finally implements a long-standing feature request: the ability to execute test cases in parallel. This is a big deal because test cases are rarely CPU-bound: running them in parallel yields much faster execution times for large test suites, allowing faster iteration of changes during development. As an example: the FreeBSD test suite as of this date contains 3285 test cases. With sequential execution, a full test suite run takes around 12 minutes to complete, whereas on a 4-core machine with a high level of parallelism it takes a little over 1 minute. Implementing parallel execution required rewriting most of Kyua's core and partly explains explains why there has not been a new release for over a year. The current implementation is purely subprocess-based, which works but has some limitations and has resulted in a core that is really complex and difficult to understand. Future versions will investigate the use of threads instead for a simplified programming model and additional parallelization possibilities. * Issue #2: Implemented support to execute test cases in parallel when invoking `kyua test`. Parallel execution is *only* enabled when the new `parallelism` configuration variable is set to a value greater than `1`. The default behavior is still to run tests sequentially because some test suites contain test cases with side-effects that might fail when run in parallel. To resolve this, the new metadata property `is_exclusive` can be set to `true` on a test basis to indicate that the test must be run on its own. * Known regression: Running `kyua debug` on a TAP-based test program does not currently report the output in real time. The output will only be displayed once the test program completes. This is a shortcoming of the new parallel execution engine and will be resolved. * Removed the external C-based testers code in favor of the new built-in implementations. The new approach feels significantly faster than the previous one. * Fixed the handling of relative paths in the `fs.*` functions available in `Kyuafile`s. All paths are now resolved relative to the location of the caller `Kyuafile`. `Kyuafile.top` has been updated with these changes and you should update custom copies of this file with the new version. * Changed temporary directory creation to always grant search permissions on temporary directories. This is to prevent potential problems when running Kyua as root and executing test cases that require dropping privileges (as they may later be unable to use absolute paths that point inside their work directory). * The cleanup of work directories does not longer attempt to deal with mount points. If a test case mounts a file system and forgets to unmount it, the mount point will be left behind. It is now the responsibility of the test case to clean after itself. The reasons for this change are simplicity and clarity: there are many more things that a test case can do that have side-effects on the system and Kyua cannot protect against them all, so it is better to just have the test undo anything it might have done. * Improved `kyua report --verbose` to properly handle environment variables with continuation lines in them, and fixed the integration tests for this command to avoid false negatives. * Changed the configuration file format to accept the definition of unknown variables without declaring them local. The syntax version number remains at 2. This is to allow configuration files for newer Kyua versions to work on older Kyua versions, as there is no reason to forbid this. * Fixed stacktrace gathering with FreeBSD's ancient version of GDB. GDB 6.1.1 (circa 2004) does not have the `-ex` flag so we need to generate a temporary GDB script and feed it to GDB with `-x` instead. * Issue #136: Fixed the XML escaping in the JUnit output so that non-printable characters are properly handled when they appear in the process's stdout or stderr. * Issue #141: Improved reporting of errors triggered by sqlite3. In particular, all error messages are now tagged with their corresponding database filename and, if they are API-level errors, the name of the sqlite3 function that caused them. * Issue #144: Improved documentation on the support for custom properties in the test metadata. * Converted the `INSTALL`, `NEWS`, and `README` distribution documents to Markdown for better formatting online. Approved by: bapt (mentor) Differential Revision: https://reviews.freebsd.org/D4243 Modified: head/devel/kyua/Makefile head/devel/kyua/distinfo head/devel/kyua/pkg-plist Modified: head/devel/kyua/Makefile ============================================================================== --- head/devel/kyua/Makefile Mon Nov 23 02:47:23 2015 (r402255) +++ head/devel/kyua/Makefile Mon Nov 23 03:03:34 2015 (r402256) @@ -1,8 +1,7 @@ # $FreeBSD$ PORTNAME= kyua -PORTVERSION= 0.11 -PORTREVISION= 1 +PORTVERSION= 0.12 PORTEPOCH= 2 CATEGORIES= devel MASTER_SITES= https://github.com/jmmv/kyua/releases/download/${PORTNAME}-${PORTVERSION}/ \ Modified: head/devel/kyua/distinfo ============================================================================== --- head/devel/kyua/distinfo Mon Nov 23 02:47:23 2015 (r402255) +++ head/devel/kyua/distinfo Mon Nov 23 03:03:34 2015 (r402256) @@ -1,2 +1,2 @@ -SHA256 (kyua-0.11.tar.gz) = 2b8b64a458b642df75086eeb73e8073d105b8d9cff04c9b1a905b68bc8502560 -SIZE (kyua-0.11.tar.gz) = 611865 +SHA256 (kyua-0.12.tar.gz) = 5b0d43c4ca0921034dd523249bd7aa2f07f718d302e4b574634ba5167aa369fc +SIZE (kyua-0.12.tar.gz) = 663129 Modified: head/devel/kyua/pkg-plist ============================================================================== --- head/devel/kyua/pkg-plist Mon Nov 23 02:47:23 2015 (r402255) +++ head/devel/kyua/pkg-plist Mon Nov 23 03:03:34 2015 (r402256) @@ -1,8 +1,5 @@ bin/kyua etc/kyua/kyua.conf -libexec/kyua-atf-tester -libexec/kyua-plain-tester -libexec/kyua-tap-tester man/man1/kyua-about.1.gz man/man1/kyua-config.1.gz man/man1/kyua-db-exec.1.gz @@ -25,9 +22,10 @@ man/man5/kyuafile.5.gz %%DATADIR%%/store/migrate_v2_v3.sql %%DATADIR%%/store/schema_v3.sql %%PORTDOCS%%%%DOCSDIR%%/AUTHORS -%%PORTDOCS%%%%DOCSDIR%%/COPYING -%%PORTDOCS%%%%DOCSDIR%%/NEWS -%%PORTDOCS%%%%DOCSDIR%%/README +%%PORTDOCS%%%%DOCSDIR%%/CONTRIBUTING.md +%%PORTDOCS%%%%DOCSDIR%%/CONTRIBUTORS +%%PORTDOCS%%%%DOCSDIR%%/LICENSE +%%PORTDOCS%%%%DOCSDIR%%/NEWS.md %%PORTEXAMPLES%%%%EXAMPLESDIR%%/Kyuafile.top %%PORTEXAMPLES%%%%EXAMPLESDIR%%/kyua.conf %%TEST%%tests/Kyuafile @@ -53,15 +51,22 @@ man/man5/kyuafile.5.gz %%TEST%%tests/kyua/drivers/report_junit_test %%TEST%%tests/kyua/drivers/scan_results_test %%TEST%%tests/kyua/engine/Kyuafile +%%TEST%%tests/kyua/engine/atf_helpers +%%TEST%%tests/kyua/engine/atf_list_test +%%TEST%%tests/kyua/engine/atf_result_test +%%TEST%%tests/kyua/engine/atf_test %%TEST%%tests/kyua/engine/config_test %%TEST%%tests/kyua/engine/exceptions_test %%TEST%%tests/kyua/engine/filters_test %%TEST%%tests/kyua/engine/kyuafile_test +%%TEST%%tests/kyua/engine/plain_helpers +%%TEST%%tests/kyua/engine/plain_test +%%TEST%%tests/kyua/engine/scanner_test +%%TEST%%tests/kyua/engine/scheduler_test %%TEST%%tests/kyua/engine/requirements_test -%%TEST%%tests/kyua/engine/runner_test -%%TEST%%tests/kyua/engine/test_case_atf_helpers -%%TEST%%tests/kyua/engine/test_case_plain_helpers -%%TEST%%tests/kyua/engine/testers_test +%%TEST%%tests/kyua/engine/tap_helpers +%%TEST%%tests/kyua/engine/tap_parser_test +%%TEST%%tests/kyua/engine/tap_test %%TEST%%tests/kyua/examples/Kyuafile %%TEST%%tests/kyua/examples/syntax_test %%TEST%%tests/kyua/integration/Kyuafile @@ -80,10 +85,12 @@ man/man5/kyuafile.5.gz %%TEST%%tests/kyua/integration/helpers/bad_test_program %%TEST%%tests/kyua/integration/helpers/bogus_test_cases %%TEST%%tests/kyua/integration/helpers/config +%%TEST%%tests/kyua/integration/helpers/dump_env %%TEST%%tests/kyua/integration/helpers/expect_all_pass %%TEST%%tests/kyua/integration/helpers/expect_some_fail %%TEST%%tests/kyua/integration/helpers/interrupts %%TEST%%tests/kyua/integration/helpers/metadata +%%TEST%%tests/kyua/integration/helpers/race %%TEST%%tests/kyua/integration/helpers/simple_all_pass %%TEST%%tests/kyua/integration/helpers/simple_some_fail %%TEST%%tests/kyua/model/Kyuafile @@ -113,25 +120,6 @@ man/man5/kyuafile.5.gz %%TEST%%tests/kyua/store/transaction_test %%TEST%%tests/kyua/store/write_backend_test %%TEST%%tests/kyua/store/write_transaction_test -%%TEST%%tests/kyua/testers/Kyuafile -%%TEST%%tests/kyua/testers/atf_helpers -%%TEST%%tests/kyua/testers/atf_inttest -%%TEST%%tests/kyua/testers/atf_list_test -%%TEST%%tests/kyua/testers/atf_result_test -%%TEST%%tests/kyua/testers/cli_test -%%TEST%%tests/kyua/testers/env_test -%%TEST%%tests/kyua/testers/error_test -%%TEST%%tests/kyua/testers/fs_test -%%TEST%%tests/kyua/testers/plain_helpers -%%TEST%%tests/kyua/testers/plain_inttest -%%TEST%%tests/kyua/testers/result_test -%%TEST%%tests/kyua/testers/run_test -%%TEST%%tests/kyua/testers/stacktrace_helper -%%TEST%%tests/kyua/testers/stacktrace_test -%%TEST%%tests/kyua/testers/tap_helpers -%%TEST%%tests/kyua/testers/tap_inttest -%%TEST%%tests/kyua/testers/tap_parser_test -%%TEST%%tests/kyua/testers/text_test %%TEST%%tests/kyua/utils/Kyuafile %%TEST%%tests/kyua/utils/auto_array_test %%TEST%%tests/kyua/utils/cmdline/Kyuafile @@ -157,6 +145,7 @@ man/man5/kyuafile.5.gz %%TEST%%tests/kyua/utils/format/formatter_test %%TEST%%tests/kyua/utils/fs/Kyuafile %%TEST%%tests/kyua/utils/fs/auto_cleaners_test +%%TEST%%tests/kyua/utils/fs/directory_test %%TEST%%tests/kyua/utils/fs/exceptions_test %%TEST%%tests/kyua/utils/fs/lua_module_test %%TEST%%tests/kyua/utils/fs/operations_test @@ -169,28 +158,35 @@ man/man5/kyuafile.5.gz %%TEST%%tests/kyua/utils/passwd_test %%TEST%%tests/kyua/utils/process/Kyuafile %%TEST%%tests/kyua/utils/process/child_test +%%TEST%%tests/kyua/utils/process/deadline_killer_test %%TEST%%tests/kyua/utils/process/exceptions_test +%%TEST%%tests/kyua/utils/process/executor_test %%TEST%%tests/kyua/utils/process/fdstream_test %%TEST%%tests/kyua/utils/process/helpers +%%TEST%%tests/kyua/utils/process/isolation_test +%%TEST%%tests/kyua/utils/process/operations_test %%TEST%%tests/kyua/utils/process/status_test %%TEST%%tests/kyua/utils/process/systembuf_test -%%TEST%%tests/kyua/utils/releaser_test %%TEST%%tests/kyua/utils/sanity_test %%TEST%%tests/kyua/utils/signals/Kyuafile %%TEST%%tests/kyua/utils/signals/exceptions_test %%TEST%%tests/kyua/utils/signals/interrupts_test %%TEST%%tests/kyua/utils/signals/misc_test %%TEST%%tests/kyua/utils/signals/programmer_test +%%TEST%%tests/kyua/utils/signals/timer_test %%TEST%%tests/kyua/utils/sqlite/Kyuafile %%TEST%%tests/kyua/utils/sqlite/c_gate_test %%TEST%%tests/kyua/utils/sqlite/database_test %%TEST%%tests/kyua/utils/sqlite/exceptions_test %%TEST%%tests/kyua/utils/sqlite/statement_test %%TEST%%tests/kyua/utils/sqlite/transaction_test +%%TEST%%tests/kyua/utils/stacktrace_helper +%%TEST%%tests/kyua/utils/stacktrace_test %%TEST%%tests/kyua/utils/stream_test %%TEST%%tests/kyua/utils/text/Kyuafile %%TEST%%tests/kyua/utils/text/exceptions_test %%TEST%%tests/kyua/utils/text/operations_test +%%TEST%%tests/kyua/utils/text/regex_test %%TEST%%tests/kyua/utils/text/table_test %%TEST%%tests/kyua/utils/text/templates_test %%TEST%%tests/kyua/utils/units_test