Promotion (promote and run --auto-promote):
--no-comment for promotion that was not used--no-exit to promote, to promote everything except the exit code (so that the test will still fail with exitcode)AT_CHECK with run-if-fail or run-if-passConfiguration file:
_autofonce/ should be created: build for build directory (default), source for source directory or config for configuration file directoryCommand Arguments and Behavior:
1-10 or 10-*.at containing tests, with copying enabled (AT_COPY_ALL([true])).-o LOGFILE to specify the log fileautofonce config to print the currently read config-T <FILE.at>, -E <env.sh> and -I <path> to describe a testsuite directly from the command-line-k KEYWORDS: if a keyword starts is negated with -, then tests matching that keyword will not be executed (same as --not)Improved version of _autofonce/results.log:
captured_files in autofonce.toml to include some project filesStandard Macro Language:
AT_FAIL_IF([shell-cond])autoconf, all macros are supported with both a AT_ and AF_ prefix, and autofonce will promote autofonce specific macros with the AF_ prefix, while using the AT_ prefix for autoconf compatible macrosMacro language extensions (default is AF_, but AT_ is accepted:
AC_DEFUN/m4_define. This is currently mostly done to allow the definition of: AC_DEFUN([AF_ENV], [$1]). Print a warning for discarding the macro definition, except for AF_ENV.Add AF_ENV([env]) as a way to define a specific environment for the test (such as environment variables).
AF_ENV are added in the autofonce_env.sh file of every test.AF_COPY(files) to copy files from the test source directory to the test run directoryAF_LINK(files), same as AF_COPY, but symlink instead of copyAF_COPY_ALL([true|false]). If true, used before tests, make tests copy all non .at files in their directory as if AF_COPY had been used. If false, disable copying files for following tests.AF_LINK_ALL(), same as AF_COPY_ALL, but symlink instead of copyAF_SUBST(variables) to replace occurrences of these env variables in the stdout/stderr. A special case is AUTOFONCE that replaces ${AUTOFONCE_RUN_DIR}/${TEST_ID}, ${AUTOFONCE_BUILD_DIR} and ${AUTOFONCE_SOURCE_DIR}.test/testsuite.at--auto-promote MAX to autofonce run to iterate run/promote until all changes have been promoted or a maximal number of MAX iterations--failures REASON to select tests matching a specific reason like exitcode, stdout or stderrbuild_dir_candidates (default to [ "_build" ]) to automatically try to find build anchors from outside the build dir using alternative candidatesReplace autofonce.env by a configuration file:
autofonce.toml (typically not committed in sources) or .autofonce (committed in sources)autofonce will lookup autofonce.toml first, and .autofonce if not found, and fail if none is foundautofonce init will create a autofonce.toml in the local directory.autofonce.toml file can be renamed to .autofonce and committed.The configuration provides:
[testsuites] section: aliases for testsuites, with the testsuite file, the path for included files, and the env name[envs] section: possibility to define different envs (included in tests scripts) for different testsuitessource_anchors and build_anchors are used to locate the project source dir and the project build dir in the upper directoriesautofonce defines several variables at the beginning of test scripts envs:
AUTOFONCE_TESTSUITE: name of the testsuiteAUTOFONCE_RUN_DIR: directory where tests are run (containing `_autofonce/)AUTOFONCE_SOURCE_DIR: source directory of the project (root/top dir)AUTOFONCE_BUILD_DIR: build directory of the projectThe run-dir (the directory that will contain the _autofonce/ subdir) is determined by:
autofonce.toml, or.autofonce fileautofonce promote to update tests files with current results. This command can be applied using standard filters. By default, display a diff of changes to be performed. Use --apply to actually perform the tests.AUTOFONCE_SUITE_DIR and AUTOFONCE_SUITE_FILE env variables (to locate and identify the testsuite.at file)_autotest/ dir to _autofonce/ dirgnucobol.env to use atconfig and atlocal: slower but probably more portableautofonce new to create new tests