From owner-svn-src-projects@FreeBSD.ORG Fri Nov 7 12:00:37 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B171E284; Fri, 7 Nov 2014 12:00:37 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::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 97D2180C; Fri, 7 Nov 2014 12:00:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sA7C0beW091461; Fri, 7 Nov 2014 12:00:37 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sA7C0Xmi091443; Fri, 7 Nov 2014 12:00:33 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201411071200.sA7C0Xmi091443@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Fri, 7 Nov 2014 12:00:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r274229 - in projects/ifnet: . bin/df bin/sh bin/sh/tests/expansion contrib/atf contrib/atf/atf-c contrib/atf/atf-c++ contrib/atf/atf-c++/detail contrib/atf/atf-c/detail contrib/atf/atf... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Nov 2014 12:00:37 -0000 Author: glebius Date: Fri Nov 7 12:00:32 2014 New Revision: 274229 URL: https://svnweb.freebsd.org/changeset/base/274229 Log: Merge head r256150 through r274228. Added: projects/ifnet/bin/sh/tests/expansion/redir1.0 - copied unchanged from r274228, head/bin/sh/tests/expansion/redir1.0 projects/ifnet/contrib/atf/atf-c++/atf-c++.3 - copied unchanged from r274228, head/contrib/atf/atf-c++/atf-c++.3 projects/ifnet/contrib/atf/atf-c/atf-c.3 - copied unchanged from r274228, head/contrib/atf/atf-c/atf-c.3 projects/ifnet/contrib/atf/atf-sh/atf-sh.3 - copied unchanged from r274228, head/contrib/atf/atf-sh/atf-sh.3 projects/ifnet/contrib/atf/config.h - copied unchanged from r274228, head/contrib/atf/config.h projects/ifnet/contrib/atf/doc/atf.7.in - copied unchanged from r274228, head/contrib/atf/doc/atf.7.in projects/ifnet/etc/rc.d/growfs - copied unchanged from r274228, head/etc/rc.d/growfs projects/ifnet/lib/libarchive/libarchive.pc - copied unchanged from r274228, head/lib/libarchive/libarchive.pc projects/ifnet/lib/libc/Makefile.amd64 - copied unchanged from r274228, head/lib/libc/Makefile.amd64 projects/ifnet/lib/libc/Makefile.i386 - copied unchanged from r274228, head/lib/libc/Makefile.i386 projects/ifnet/lib/libc/tests/ - copied from r274228, head/lib/libc/tests/ projects/ifnet/lib/libdpv/ - copied from r274228, head/lib/libdpv/ projects/ifnet/lib/libfigpar/ - copied from r274228, head/lib/libfigpar/ projects/ifnet/lib/libnetbsd/sys/time.h - copied unchanged from r274228, head/lib/libnetbsd/sys/time.h projects/ifnet/lib/libpam/libpam/tests/ - copied from r274228, head/lib/libpam/libpam/tests/ projects/ifnet/share/doc/pjdfstest/ - copied from r274228, head/share/doc/pjdfstest/ projects/ifnet/share/man/man7/growfs.7 - copied unchanged from r274228, head/share/man/man7/growfs.7 projects/ifnet/share/mk/netbsd-tests.test.mk - copied unchanged from r274228, head/share/mk/netbsd-tests.test.mk projects/ifnet/sys/boot/fdt/fdt_platform.h - copied unchanged from r274228, head/sys/boot/fdt/fdt_platform.h projects/ifnet/sys/boot/uboot/fdt/ - copied from r274228, head/sys/boot/uboot/fdt/ projects/ifnet/sys/compat/svr4/README - copied unchanged from r274228, head/sys/compat/svr4/README projects/ifnet/sys/compat/svr4/TO-DO - copied unchanged from r274228, head/sys/compat/svr4/TO-DO projects/ifnet/sys/dev/ixl/ixlv_vc_mgr.h - copied unchanged from r274228, head/sys/dev/ixl/ixlv_vc_mgr.h projects/ifnet/tests/sys/pjdfstest/ - copied from r274228, head/tests/sys/pjdfstest/ projects/ifnet/tools/build/check-links.sh - copied unchanged from r274228, head/tools/build/check-links.sh projects/ifnet/usr.bin/dpv/ - copied from r274228, head/usr.bin/dpv/ Deleted: projects/ifnet/contrib/atf/atf-c++/config.cpp projects/ifnet/contrib/atf/atf-c++/config.hpp projects/ifnet/contrib/atf/atf-c++/config_test.cpp projects/ifnet/contrib/atf/atf-c++/detail/sanity_test.cpp projects/ifnet/contrib/atf/atf-c/config.c projects/ifnet/contrib/atf/atf-c/config.h projects/ifnet/contrib/atf/atf-c/config_test.c projects/ifnet/contrib/atf/bconfig.h projects/ifnet/etc/rc.d/postrandom projects/ifnet/sys/modules/svr4/README projects/ifnet/sys/modules/svr4/TO-DO projects/ifnet/tests/lib/ Modified: projects/ifnet/MAINTAINERS (contents, props changed) projects/ifnet/Makefile.inc1 projects/ifnet/ObsoleteFiles.inc projects/ifnet/UPDATING projects/ifnet/bin/df/Makefile projects/ifnet/bin/df/df.1 projects/ifnet/bin/df/df.c projects/ifnet/bin/sh/expand.c projects/ifnet/bin/sh/tests/expansion/Makefile projects/ifnet/contrib/atf/FREEBSD-Xlist projects/ifnet/contrib/atf/NEWS projects/ifnet/contrib/atf/atf-c++.hpp projects/ifnet/contrib/atf/atf-c++/Kyuafile projects/ifnet/contrib/atf/atf-c++/atf_c++_test.cpp projects/ifnet/contrib/atf/atf-c++/build.cpp projects/ifnet/contrib/atf/atf-c++/build.hpp projects/ifnet/contrib/atf/atf-c++/build_test.cpp projects/ifnet/contrib/atf/atf-c++/check.cpp projects/ifnet/contrib/atf/atf-c++/check.hpp projects/ifnet/contrib/atf/atf-c++/check_test.cpp projects/ifnet/contrib/atf/atf-c++/detail/Kyuafile projects/ifnet/contrib/atf/atf-c++/detail/application.cpp projects/ifnet/contrib/atf/atf-c++/detail/application.hpp projects/ifnet/contrib/atf/atf-c++/detail/application_test.cpp projects/ifnet/contrib/atf/atf-c++/detail/auto_array.hpp projects/ifnet/contrib/atf/atf-c++/detail/auto_array_test.cpp projects/ifnet/contrib/atf/atf-c++/detail/env.cpp projects/ifnet/contrib/atf/atf-c++/detail/env.hpp projects/ifnet/contrib/atf/atf-c++/detail/env_test.cpp projects/ifnet/contrib/atf/atf-c++/detail/exceptions.cpp projects/ifnet/contrib/atf/atf-c++/detail/exceptions.hpp projects/ifnet/contrib/atf/atf-c++/detail/exceptions_test.cpp projects/ifnet/contrib/atf/atf-c++/detail/fs.cpp projects/ifnet/contrib/atf/atf-c++/detail/fs.hpp projects/ifnet/contrib/atf/atf-c++/detail/fs_test.cpp projects/ifnet/contrib/atf/atf-c++/detail/process.cpp projects/ifnet/contrib/atf/atf-c++/detail/process.hpp projects/ifnet/contrib/atf/atf-c++/detail/process_test.cpp projects/ifnet/contrib/atf/atf-c++/detail/sanity.hpp projects/ifnet/contrib/atf/atf-c++/detail/test_helpers.cpp projects/ifnet/contrib/atf/atf-c++/detail/test_helpers.hpp projects/ifnet/contrib/atf/atf-c++/detail/text.cpp projects/ifnet/contrib/atf/atf-c++/detail/text.hpp projects/ifnet/contrib/atf/atf-c++/detail/text_test.cpp projects/ifnet/contrib/atf/atf-c++/detail/version_helper.cpp projects/ifnet/contrib/atf/atf-c++/macros.hpp projects/ifnet/contrib/atf/atf-c++/macros_hpp_test.cpp projects/ifnet/contrib/atf/atf-c++/macros_test.cpp projects/ifnet/contrib/atf/atf-c++/pkg_config_test.sh projects/ifnet/contrib/atf/atf-c++/tests.cpp projects/ifnet/contrib/atf/atf-c++/tests.hpp projects/ifnet/contrib/atf/atf-c++/tests_test.cpp projects/ifnet/contrib/atf/atf-c++/unused_test.cpp projects/ifnet/contrib/atf/atf-c++/utils.cpp projects/ifnet/contrib/atf/atf-c++/utils.hpp projects/ifnet/contrib/atf/atf-c++/utils_test.cpp projects/ifnet/contrib/atf/atf-c.h projects/ifnet/contrib/atf/atf-c/Kyuafile projects/ifnet/contrib/atf/atf-c/atf_c_test.c projects/ifnet/contrib/atf/atf-c/build.c projects/ifnet/contrib/atf/atf-c/build.h projects/ifnet/contrib/atf/atf-c/build_test.c projects/ifnet/contrib/atf/atf-c/check.c projects/ifnet/contrib/atf/atf-c/check.h projects/ifnet/contrib/atf/atf-c/check_test.c projects/ifnet/contrib/atf/atf-c/defs.h.in projects/ifnet/contrib/atf/atf-c/detail/dynstr.c projects/ifnet/contrib/atf/atf-c/detail/dynstr.h projects/ifnet/contrib/atf/atf-c/detail/dynstr_test.c projects/ifnet/contrib/atf/atf-c/detail/env.c projects/ifnet/contrib/atf/atf-c/detail/env.h projects/ifnet/contrib/atf/atf-c/detail/env_test.c projects/ifnet/contrib/atf/atf-c/detail/fs.c projects/ifnet/contrib/atf/atf-c/detail/fs.h projects/ifnet/contrib/atf/atf-c/detail/fs_test.c projects/ifnet/contrib/atf/atf-c/detail/list.c projects/ifnet/contrib/atf/atf-c/detail/list.h projects/ifnet/contrib/atf/atf-c/detail/list_test.c projects/ifnet/contrib/atf/atf-c/detail/map.c projects/ifnet/contrib/atf/atf-c/detail/map.h projects/ifnet/contrib/atf/atf-c/detail/map_test.c projects/ifnet/contrib/atf/atf-c/detail/process.c projects/ifnet/contrib/atf/atf-c/detail/process.h projects/ifnet/contrib/atf/atf-c/detail/process_helpers.c projects/ifnet/contrib/atf/atf-c/detail/process_test.c projects/ifnet/contrib/atf/atf-c/detail/sanity.c projects/ifnet/contrib/atf/atf-c/detail/sanity.h projects/ifnet/contrib/atf/atf-c/detail/sanity_test.c projects/ifnet/contrib/atf/atf-c/detail/test_helpers.c projects/ifnet/contrib/atf/atf-c/detail/test_helpers.h projects/ifnet/contrib/atf/atf-c/detail/text.c projects/ifnet/contrib/atf/atf-c/detail/text.h projects/ifnet/contrib/atf/atf-c/detail/text_test.c projects/ifnet/contrib/atf/atf-c/detail/tp_main.c projects/ifnet/contrib/atf/atf-c/detail/user.c projects/ifnet/contrib/atf/atf-c/detail/user.h projects/ifnet/contrib/atf/atf-c/detail/user_test.c projects/ifnet/contrib/atf/atf-c/detail/version_helper.c projects/ifnet/contrib/atf/atf-c/error.c projects/ifnet/contrib/atf/atf-c/error.h projects/ifnet/contrib/atf/atf-c/error_fwd.h projects/ifnet/contrib/atf/atf-c/error_test.c projects/ifnet/contrib/atf/atf-c/h_build.h projects/ifnet/contrib/atf/atf-c/macros.h projects/ifnet/contrib/atf/atf-c/macros_h_test.c projects/ifnet/contrib/atf/atf-c/macros_test.c projects/ifnet/contrib/atf/atf-c/pkg_config_test.sh projects/ifnet/contrib/atf/atf-c/tc.c projects/ifnet/contrib/atf/atf-c/tc.h projects/ifnet/contrib/atf/atf-c/tc_test.c projects/ifnet/contrib/atf/atf-c/tp.c projects/ifnet/contrib/atf/atf-c/tp.h projects/ifnet/contrib/atf/atf-c/tp_test.c projects/ifnet/contrib/atf/atf-c/unused_test.c projects/ifnet/contrib/atf/atf-c/utils.c projects/ifnet/contrib/atf/atf-c/utils.h projects/ifnet/contrib/atf/atf-c/utils_test.c projects/ifnet/contrib/atf/atf-sh/atf-check.1 projects/ifnet/contrib/atf/atf-sh/atf-check.cpp projects/ifnet/contrib/atf/atf-sh/atf-check_test.sh projects/ifnet/contrib/atf/atf-sh/atf-sh.1 projects/ifnet/contrib/atf/atf-sh/atf-sh.cpp projects/ifnet/contrib/atf/atf-sh/atf_check_test.sh projects/ifnet/contrib/atf/atf-sh/config_test.sh projects/ifnet/contrib/atf/atf-sh/integration_test.sh projects/ifnet/contrib/atf/atf-sh/libatf-sh.subr projects/ifnet/contrib/atf/atf-sh/misc_helpers.sh projects/ifnet/contrib/atf/atf-sh/normalize_test.sh projects/ifnet/contrib/atf/atf-sh/tc_test.sh projects/ifnet/contrib/atf/atf-sh/tp_test.sh projects/ifnet/contrib/atf/doc/atf-test-case.4 projects/ifnet/contrib/atf/doc/atf-test-program.1 projects/ifnet/contrib/atf/test-programs/c_helpers.c projects/ifnet/contrib/atf/test-programs/common.sh projects/ifnet/contrib/atf/test-programs/config_test.sh projects/ifnet/contrib/atf/test-programs/cpp_helpers.cpp projects/ifnet/contrib/atf/test-programs/expect_test.sh projects/ifnet/contrib/atf/test-programs/meta_data_test.sh projects/ifnet/contrib/atf/test-programs/result_test.sh projects/ifnet/contrib/atf/test-programs/sh_helpers.sh projects/ifnet/contrib/atf/test-programs/srcdir_test.sh projects/ifnet/contrib/netbsd-tests/include/t_paths.c projects/ifnet/contrib/netbsd-tests/lib/libc/db/t_db.sh projects/ifnet/contrib/netbsd-tests/lib/libc/gen/t_floatunditf.c projects/ifnet/contrib/netbsd-tests/lib/libc/gen/t_fpsetmask.c projects/ifnet/contrib/netbsd-tests/lib/libc/gen/t_isnan.c projects/ifnet/contrib/netbsd-tests/lib/libc/gen/t_sethostname.c projects/ifnet/contrib/netbsd-tests/lib/libc/gen/t_siginfo.c projects/ifnet/contrib/netbsd-tests/lib/libc/hash/h_hash.c projects/ifnet/contrib/netbsd-tests/lib/libc/hash/t_sha2.c projects/ifnet/contrib/netbsd-tests/lib/libc/inet/t_inet_network.c projects/ifnet/contrib/netbsd-tests/lib/libc/locale/t_io.c projects/ifnet/contrib/netbsd-tests/lib/libc/net/h_dns_server.c projects/ifnet/contrib/netbsd-tests/lib/libc/net/t_ether_aton.c projects/ifnet/contrib/netbsd-tests/lib/libc/net/t_servent.sh projects/ifnet/contrib/netbsd-tests/lib/libc/rpc/t_rpc.c projects/ifnet/contrib/netbsd-tests/lib/libc/ssp/h_memset.c projects/ifnet/contrib/netbsd-tests/lib/libc/ssp/h_read.c projects/ifnet/contrib/netbsd-tests/lib/libc/ssp/h_readlink.c projects/ifnet/contrib/netbsd-tests/lib/libc/ssp/h_snprintf.c projects/ifnet/contrib/netbsd-tests/lib/libc/ssp/t_ssp.sh projects/ifnet/contrib/netbsd-tests/lib/libc/stdio/t_fflush.c projects/ifnet/contrib/netbsd-tests/lib/libc/stdio/t_fmemopen.c projects/ifnet/contrib/netbsd-tests/lib/libc/stdio/t_fopen.c projects/ifnet/contrib/netbsd-tests/lib/libc/stdio/t_printf.c projects/ifnet/contrib/netbsd-tests/lib/libc/stdio/t_scanf.c projects/ifnet/contrib/netbsd-tests/lib/libc/stdlib/h_atexit.c projects/ifnet/contrib/netbsd-tests/lib/libc/stdlib/t_strtod.c projects/ifnet/contrib/netbsd-tests/lib/libc/sys/t_dup.c projects/ifnet/contrib/netbsd-tests/lib/libc/sys/t_getcontext.c projects/ifnet/contrib/netbsd-tests/lib/libc/sys/t_getitimer.c projects/ifnet/contrib/netbsd-tests/lib/libc/sys/t_kevent.c projects/ifnet/contrib/netbsd-tests/lib/libc/sys/t_mincore.c projects/ifnet/contrib/netbsd-tests/lib/libc/sys/t_sigaction.c projects/ifnet/contrib/netbsd-tests/lib/libc/time/t_mktime.c projects/ifnet/contrib/netbsd-tests/lib/libexecinfo/t_backtrace.c projects/ifnet/contrib/netbsd-tests/lib/libm/t_ldexp.c projects/ifnet/contrib/netbsd-tests/lib/libm/t_log.c projects/ifnet/contrib/netbsd-tests/lib/libm/t_precision.c projects/ifnet/contrib/netbsd-tests/lib/libpthread/t_mutex.c projects/ifnet/contrib/netbsd-tests/lib/libpthread/t_sem.c projects/ifnet/contrib/netbsd-tests/usr.sbin/mtree/t_mtree.sh projects/ifnet/contrib/openpam/t/t_openpam_ctype.c projects/ifnet/contrib/openpam/t/t_openpam_readlinev.c projects/ifnet/contrib/openpam/t/t_openpam_readword.c projects/ifnet/contrib/tnftp/src/fetch.c projects/ifnet/etc/motd projects/ifnet/etc/mtree/BSD.tests.dist projects/ifnet/etc/periodic/security/Makefile projects/ifnet/etc/rc.d/Makefile projects/ifnet/etc/rc.d/adjkerntz projects/ifnet/etc/rc.d/geli projects/ifnet/etc/rc.d/random projects/ifnet/etc/rc.d/syscons projects/ifnet/etc/rc.d/syslogd projects/ifnet/gnu/lib/libdialog/Makefile projects/ifnet/lib/Makefile projects/ifnet/lib/atf/Makefile.inc projects/ifnet/lib/atf/common.mk projects/ifnet/lib/atf/libatf-c++/Makefile projects/ifnet/lib/atf/libatf-c++/tests/Makefile projects/ifnet/lib/atf/libatf-c++/tests/detail/Makefile projects/ifnet/lib/atf/libatf-c/Makefile projects/ifnet/lib/atf/libatf-c/tests/Makefile projects/ifnet/lib/atf/libatf-c/tests/detail/Makefile projects/ifnet/lib/libarchive/Makefile projects/ifnet/lib/libc/Makefile projects/ifnet/lib/libc/sys/utrace.2 projects/ifnet/lib/libpam/libpam/Makefile projects/ifnet/libexec/atf/atf-check/Makefile projects/ifnet/libexec/atf/atf-sh/Makefile projects/ifnet/libexec/atf/atf-sh/tests/Makefile projects/ifnet/release/Makefile projects/ifnet/release/doc/en_US.ISO8859-1/hardware/article.xml projects/ifnet/rescue/rescue/Makefile projects/ifnet/sbin/fsirand/Makefile projects/ifnet/sbin/route/route.c projects/ifnet/share/doc/Makefile projects/ifnet/share/man/man4/tap.4 projects/ifnet/share/man/man4/vt.4 projects/ifnet/share/man/man7/Makefile projects/ifnet/share/man/man9/domain.9 projects/ifnet/share/man/man9/fetch.9 projects/ifnet/share/man/man9/lock.9 projects/ifnet/share/man/man9/store.9 projects/ifnet/share/mk/atf.test.mk projects/ifnet/share/mk/bsd.lib.mk projects/ifnet/share/mk/bsd.libnames.mk projects/ifnet/share/mk/bsd.obj.mk projects/ifnet/share/mk/bsd.own.mk projects/ifnet/share/mk/bsd.prog.mk projects/ifnet/share/mk/bsd.progs.mk projects/ifnet/share/mk/plain.test.mk projects/ifnet/share/mk/tap.test.mk projects/ifnet/sys/amd64/amd64/genassym.c projects/ifnet/sys/amd64/amd64/sys_machdep.c projects/ifnet/sys/amd64/amd64/vm_machdep.c projects/ifnet/sys/amd64/conf/GENERIC projects/ifnet/sys/amd64/conf/NOTES projects/ifnet/sys/arm/arm/busdma_machdep-v6.c projects/ifnet/sys/arm/arm/machdep.c projects/ifnet/sys/boot/arm/uboot/Makefile projects/ifnet/sys/boot/common/install.c projects/ifnet/sys/boot/common/misc.c projects/ifnet/sys/boot/fdt/Makefile projects/ifnet/sys/boot/fdt/fdt_loader_cmd.c projects/ifnet/sys/boot/powerpc/uboot/Makefile projects/ifnet/sys/boot/uboot/Makefile projects/ifnet/sys/boot/uboot/common/metadata.c projects/ifnet/sys/boot/uboot/lib/Makefile projects/ifnet/sys/boot/uboot/lib/libuboot.h projects/ifnet/sys/boot/uboot/lib/module.c projects/ifnet/sys/cam/ctl/ctl.c projects/ifnet/sys/cam/ctl/ctl.h projects/ifnet/sys/cam/ctl/ctl_backend.h projects/ifnet/sys/cam/ctl/ctl_backend_block.c projects/ifnet/sys/cam/ctl/ctl_error.c projects/ifnet/sys/cam/ctl/ctl_frontend_iscsi.c projects/ifnet/sys/cam/ctl/ctl_private.h projects/ifnet/sys/cam/ctl/scsi_ctl.c projects/ifnet/sys/cam/scsi/scsi_all.h projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/ifnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c projects/ifnet/sys/conf/files.amd64 projects/ifnet/sys/conf/files.i386 projects/ifnet/sys/conf/kmod.mk projects/ifnet/sys/dev/agp/agp.c projects/ifnet/sys/dev/agp/agp_amd.c projects/ifnet/sys/dev/agp/agp_amd64.c projects/ifnet/sys/dev/agp/agp_apple.c projects/ifnet/sys/dev/agp/agp_ati.c projects/ifnet/sys/dev/agp/agp_i810.c projects/ifnet/sys/dev/agp/agppriv.h projects/ifnet/sys/dev/ahci/ahci.c projects/ifnet/sys/dev/drm2/drm_edid.c projects/ifnet/sys/dev/drm2/drm_fb_helper.c projects/ifnet/sys/dev/drm2/drm_fb_helper.h projects/ifnet/sys/dev/drm2/radeon/radeon_connectors.c projects/ifnet/sys/dev/drm2/ttm/ttm_bo_util.c projects/ifnet/sys/dev/gpio/gpiobus.c projects/ifnet/sys/dev/gpio/gpiobus_if.m projects/ifnet/sys/dev/gpio/gpiobusvar.h projects/ifnet/sys/dev/gpio/gpioiic.c projects/ifnet/sys/dev/gpio/gpioled.c projects/ifnet/sys/dev/hwpmc/hwpmc_mod.c projects/ifnet/sys/dev/ida/ida_eisa.c projects/ifnet/sys/dev/iscsi/icl.c projects/ifnet/sys/dev/iscsi/icl.h projects/ifnet/sys/dev/iscsi/iscsi.c projects/ifnet/sys/dev/ixl/i40e_osdep.c projects/ifnet/sys/dev/ixl/i40e_osdep.h projects/ifnet/sys/dev/ixl/if_ixl.c projects/ifnet/sys/dev/ixl/if_ixlv.c projects/ifnet/sys/dev/ixl/ixl.h projects/ifnet/sys/dev/ixl/ixl_txrx.c projects/ifnet/sys/dev/ixl/ixlv.h projects/ifnet/sys/dev/ixl/ixlvc.c projects/ifnet/sys/dev/random/fortuna.c projects/ifnet/sys/dev/random/random_adaptors.c projects/ifnet/sys/dev/random/yarrow.c projects/ifnet/sys/dev/sound/isa/gusc.c projects/ifnet/sys/dev/sound/isa/sb16.c projects/ifnet/sys/dev/sound/isa/sbc.c projects/ifnet/sys/dev/sound/midi/sequencer.c projects/ifnet/sys/dev/sound/pci/als4000.c projects/ifnet/sys/dev/sound/pci/cs4281.c projects/ifnet/sys/dev/sound/pci/csa.c projects/ifnet/sys/dev/sound/pci/emu10kx.c projects/ifnet/sys/dev/sound/pci/envy24.c projects/ifnet/sys/dev/sound/pci/envy24ht.c projects/ifnet/sys/dev/sound/pci/maestro.c projects/ifnet/sys/dev/sound/pci/spicds.c projects/ifnet/sys/dev/sound/pci/vibes.c projects/ifnet/sys/dev/sound/pcm/dsp.c projects/ifnet/sys/dev/sound/pcm/mixer.c projects/ifnet/sys/dev/sound/pcm/sound.c projects/ifnet/sys/dev/sound/pcm/sound.h projects/ifnet/sys/dev/usb/serial/u3g.c projects/ifnet/sys/dev/usb/usb_hub.c projects/ifnet/sys/dev/usb/usbdevs projects/ifnet/sys/dev/virtio/console/virtio_console.c projects/ifnet/sys/dev/vt/vt.h projects/ifnet/sys/dev/vt/vt_buf.c projects/ifnet/sys/dev/vt/vt_core.c projects/ifnet/sys/fs/devfs/devfs_vnops.c projects/ifnet/sys/geom/geom_dev.c projects/ifnet/sys/i386/conf/NOTES projects/ifnet/sys/i386/i386/genassym.c projects/ifnet/sys/i386/i386/initcpu.c projects/ifnet/sys/i386/i386/locore.s projects/ifnet/sys/i386/i386/machdep.c projects/ifnet/sys/i386/i386/mp_machdep.c projects/ifnet/sys/i386/i386/ptrace_machdep.c projects/ifnet/sys/i386/i386/sys_machdep.c projects/ifnet/sys/i386/i386/trap.c projects/ifnet/sys/i386/i386/vm86bios.s projects/ifnet/sys/i386/i386/vm_machdep.c projects/ifnet/sys/i386/include/cpufunc.h projects/ifnet/sys/i386/include/md_var.h projects/ifnet/sys/i386/include/npx.h projects/ifnet/sys/i386/include/pcb.h projects/ifnet/sys/i386/isa/npx.c projects/ifnet/sys/i386/linux/linux_ptrace.c projects/ifnet/sys/i386/linux/linux_sysvec.c projects/ifnet/sys/i386/svr4/svr4_machdep.c projects/ifnet/sys/i386/xen/mp_machdep.c projects/ifnet/sys/kern/kern_cons.c projects/ifnet/sys/kern/kern_descrip.c projects/ifnet/sys/kern/kern_lock.c projects/ifnet/sys/kern/kern_mutex.c projects/ifnet/sys/kern/kern_prot.c projects/ifnet/sys/kern/kern_rwlock.c projects/ifnet/sys/kern/kern_sx.c projects/ifnet/sys/kern/kern_syscalls.c projects/ifnet/sys/kern/kern_thr.c projects/ifnet/sys/kern/kern_umtx.c projects/ifnet/sys/kern/subr_terminal.c projects/ifnet/sys/kern/subr_uio.c projects/ifnet/sys/kern/sys_generic.c projects/ifnet/sys/kern/sys_pipe.c projects/ifnet/sys/kern/uipc_debug.c projects/ifnet/sys/kern/vfs_export.c projects/ifnet/sys/kern/vfs_lookup.c projects/ifnet/sys/modules/Makefile projects/ifnet/sys/modules/drm2/drm2/Makefile projects/ifnet/sys/modules/ixlv/Makefile projects/ifnet/sys/modules/linux/Makefile projects/ifnet/sys/modules/mrsas/Makefile projects/ifnet/sys/modules/sound/sound/Makefile projects/ifnet/sys/modules/svr4/Makefile projects/ifnet/sys/modules/vmm/Makefile projects/ifnet/sys/net/bpf.c projects/ifnet/sys/net/flowtable.c projects/ifnet/sys/net/if.c projects/ifnet/sys/net/if_bridge.c projects/ifnet/sys/net/if_disc.c projects/ifnet/sys/net/if_faith.c projects/ifnet/sys/net/if_gif.c projects/ifnet/sys/net/if_loop.c projects/ifnet/sys/net/if_mib.c projects/ifnet/sys/net/if_stf.c projects/ifnet/sys/net/if_var.h projects/ifnet/sys/net/route.c projects/ifnet/sys/net/vnet.h projects/ifnet/sys/netgraph/ng_bridge.c projects/ifnet/sys/netgraph/ng_frame_relay.c projects/ifnet/sys/netinet/cc/cc.c projects/ifnet/sys/netinet/cc/cc_cdg.c projects/ifnet/sys/netinet/cc/cc_chd.c projects/ifnet/sys/netinet/cc/cc_hd.c projects/ifnet/sys/netinet/cc/cc_htcp.c projects/ifnet/sys/netinet/cc/cc_vegas.c projects/ifnet/sys/netinet/if_ether.c projects/ifnet/sys/netinet/igmp.c projects/ifnet/sys/netinet/in.c projects/ifnet/sys/netinet/in_gif.c projects/ifnet/sys/netinet/in_pcb.c projects/ifnet/sys/netinet/in_proto.c projects/ifnet/sys/netinet/in_rmx.c projects/ifnet/sys/netinet/ip_carp.c projects/ifnet/sys/netinet/ip_fastfwd.c projects/ifnet/sys/netinet/ip_icmp.c projects/ifnet/sys/netinet/ip_input.c projects/ifnet/sys/netinet/ip_ipsec.c projects/ifnet/sys/netinet/ip_mroute.c projects/ifnet/sys/netinet/raw_ip.c projects/ifnet/sys/netinet/sctp_sysctl.c projects/ifnet/sys/netinet/tcp_hostcache.c projects/ifnet/sys/netinet/tcp_input.c projects/ifnet/sys/netinet/tcp_output.c projects/ifnet/sys/netinet/tcp_sack.c projects/ifnet/sys/netinet/tcp_subr.c projects/ifnet/sys/netinet/tcp_syncache.c projects/ifnet/sys/netinet/tcp_timewait.c projects/ifnet/sys/netinet/tcp_var.h projects/ifnet/sys/netinet/udp_usrreq.c projects/ifnet/sys/netinet6/in6.c projects/ifnet/sys/netinet6/in6_gif.c projects/ifnet/sys/netinet6/in6_proto.c projects/ifnet/sys/netinet6/in6_rmx.c projects/ifnet/sys/netinet6/in6_var.h projects/ifnet/sys/netinet6/ip6_ipsec.c projects/ifnet/sys/netinet6/mld6.c projects/ifnet/sys/netinet6/nd6.c projects/ifnet/sys/netinet6/scope6.c projects/ifnet/sys/netipsec/ipsec.c projects/ifnet/sys/netipsec/ipsec_input.c projects/ifnet/sys/netipsec/key.c projects/ifnet/sys/netipsec/xform_ah.c projects/ifnet/sys/netipsec/xform_esp.c projects/ifnet/sys/netipsec/xform_ipcomp.c projects/ifnet/sys/netipsec/xform_ipip.c projects/ifnet/sys/netpfil/ipfw/ip_fw2.c projects/ifnet/sys/netpfil/ipfw/ip_fw_dynamic.c projects/ifnet/sys/netpfil/ipfw/ip_fw_pfil.c projects/ifnet/sys/netpfil/ipfw/ip_fw_table.c projects/ifnet/sys/netpfil/pf/if_pfsync.c projects/ifnet/sys/powerpc/powerpc/copyinout.c projects/ifnet/sys/sys/disk.h projects/ifnet/sys/sys/domain.h projects/ifnet/sys/sys/lockmgr.h projects/ifnet/sys/sys/param.h projects/ifnet/sys/sys/seq.h projects/ifnet/sys/sys/sysctl.h projects/ifnet/sys/sys/sysent.h projects/ifnet/sys/sys/systm.h projects/ifnet/sys/sys/terminal.h projects/ifnet/sys/sys/ucred.h projects/ifnet/sys/sys/user.h projects/ifnet/sys/ufs/ffs/ffs_softdep.c projects/ifnet/sys/vm/default_pager.c projects/ifnet/sys/vm/swap_pager.c projects/ifnet/sys/vm/vm_page.c projects/ifnet/sys/x86/acpica/acpi_wakeup.c projects/ifnet/tests/sys/Makefile projects/ifnet/tools/build/mk/OptionalObsoleteFiles.inc projects/ifnet/tools/sched/schedgraph.py projects/ifnet/usr.bin/Makefile projects/ifnet/usr.bin/ftp/Makefile projects/ifnet/usr.bin/iconv/Makefile projects/ifnet/usr.bin/id/Makefile projects/ifnet/usr.bin/w/Makefile projects/ifnet/usr.bin/w/pr_time.c projects/ifnet/usr.bin/w/w.1 projects/ifnet/usr.bin/w/w.c projects/ifnet/usr.bin/wc/Makefile projects/ifnet/usr.bin/wc/wc.1 projects/ifnet/usr.bin/wc/wc.c projects/ifnet/usr.sbin/bhyve/block_if.c projects/ifnet/usr.sbin/bhyve/pci_ahci.c projects/ifnet/usr.sbin/bsdconfig/Makefile projects/ifnet/usr.sbin/bsdconfig/console/Makefile projects/ifnet/usr.sbin/bsdconfig/console/include/Makefile projects/ifnet/usr.sbin/bsdconfig/diskmgmt/Makefile projects/ifnet/usr.sbin/bsdconfig/diskmgmt/include/Makefile projects/ifnet/usr.sbin/bsdconfig/docsinstall/Makefile projects/ifnet/usr.sbin/bsdconfig/docsinstall/include/Makefile projects/ifnet/usr.sbin/bsdconfig/dot/Makefile projects/ifnet/usr.sbin/bsdconfig/dot/include/Makefile projects/ifnet/usr.sbin/bsdconfig/examples/Makefile projects/ifnet/usr.sbin/bsdconfig/include/Makefile projects/ifnet/usr.sbin/bsdconfig/includes/Makefile projects/ifnet/usr.sbin/bsdconfig/includes/include/Makefile projects/ifnet/usr.sbin/bsdconfig/mouse/Makefile projects/ifnet/usr.sbin/bsdconfig/mouse/include/Makefile projects/ifnet/usr.sbin/bsdconfig/networking/Makefile projects/ifnet/usr.sbin/bsdconfig/networking/include/Makefile projects/ifnet/usr.sbin/bsdconfig/networking/share/Makefile projects/ifnet/usr.sbin/bsdconfig/packages/Makefile projects/ifnet/usr.sbin/bsdconfig/packages/include/Makefile projects/ifnet/usr.sbin/bsdconfig/password/Makefile projects/ifnet/usr.sbin/bsdconfig/password/include/Makefile projects/ifnet/usr.sbin/bsdconfig/password/share/Makefile projects/ifnet/usr.sbin/bsdconfig/security/Makefile projects/ifnet/usr.sbin/bsdconfig/security/include/Makefile projects/ifnet/usr.sbin/bsdconfig/share/Makefile projects/ifnet/usr.sbin/bsdconfig/share/media/Makefile projects/ifnet/usr.sbin/bsdconfig/share/packages/Makefile projects/ifnet/usr.sbin/bsdconfig/startup/Makefile projects/ifnet/usr.sbin/bsdconfig/startup/include/Makefile projects/ifnet/usr.sbin/bsdconfig/startup/share/Makefile projects/ifnet/usr.sbin/bsdconfig/timezone/Makefile projects/ifnet/usr.sbin/bsdconfig/timezone/include/Makefile projects/ifnet/usr.sbin/bsdconfig/timezone/share/Makefile projects/ifnet/usr.sbin/bsdconfig/ttys/Makefile projects/ifnet/usr.sbin/bsdconfig/ttys/include/Makefile projects/ifnet/usr.sbin/bsdconfig/usermgmt/Makefile projects/ifnet/usr.sbin/bsdconfig/usermgmt/include/Makefile projects/ifnet/usr.sbin/bsdconfig/usermgmt/share/Makefile projects/ifnet/usr.sbin/bsdinstall/bsdinstall.8 projects/ifnet/usr.sbin/ctladm/ctladm.8 projects/ifnet/usr.sbin/fifolog/fifolog_reader/Makefile projects/ifnet/usr.sbin/fifolog/fifolog_writer/Makefile projects/ifnet/usr.sbin/iscsid/Makefile projects/ifnet/usr.sbin/pw/tests/Makefile projects/ifnet/usr.sbin/rpcbind/Makefile projects/ifnet/usr.sbin/sysrc/sysrc projects/ifnet/usr.sbin/sysrc/sysrc.8 Directory Properties: projects/ifnet/ (props changed) projects/ifnet/contrib/atf/ (props changed) projects/ifnet/contrib/openpam/ (props changed) projects/ifnet/contrib/tnftp/ (props changed) projects/ifnet/etc/ (props changed) projects/ifnet/gnu/lib/ (props changed) projects/ifnet/lib/libc/ (props changed) projects/ifnet/sbin/ (props changed) projects/ifnet/share/ (props changed) projects/ifnet/share/man/man4/ (props changed) projects/ifnet/sys/ (props changed) projects/ifnet/sys/boot/ (props changed) projects/ifnet/sys/cddl/contrib/opensolaris/ (props changed) projects/ifnet/sys/conf/ (props changed) projects/ifnet/sys/modules/vmm/ (props changed) projects/ifnet/usr.sbin/bhyve/ (props changed) Modified: projects/ifnet/MAINTAINERS ============================================================================== --- projects/ifnet/MAINTAINERS Fri Nov 7 11:34:06 2014 (r274228) +++ projects/ifnet/MAINTAINERS Fri Nov 7 12:00:32 2014 (r274229) @@ -78,7 +78,6 @@ inetd dwmalone Recommends pre-commit re contrib/smbfs bp Open for in-tree committs. In case of functional changes pre-commit review requested. contrib/pf glebius Pre-commit review recommended. -binutils obrien Insists on BU blocked from unapproved commits file obrien Insists to keep file blocked from other's unapproved commits contrib/bzip2 obrien Pre-commit review required. Modified: projects/ifnet/Makefile.inc1 ============================================================================== --- projects/ifnet/Makefile.inc1 Fri Nov 7 11:34:06 2014 (r274228) +++ projects/ifnet/Makefile.inc1 Fri Nov 7 12:00:32 2014 (r274229) @@ -1537,6 +1537,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 ${_kerberos5_lib_libwind} \ lib/libbz2 ${_libcom_err} lib/libcrypt \ lib/libelf lib/libexpat \ + lib/libfigpar \ ${_lib_libgssapi} \ lib/libkiconv lib/libkvm lib/liblzma lib/libmd lib/libnv \ ${_lib_libcapsicum} \ @@ -1551,7 +1552,8 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 ${_cddl_lib_libctf} \ lib/libutil lib/libpjdlog ${_lib_libypclnt} lib/libz lib/msun \ ${_secure_lib_libcrypto} ${_lib_libldns} \ - ${_secure_lib_libssh} ${_secure_lib_libssl} + ${_secure_lib_libssh} ${_secure_lib_libssl} \ + gnu/lib/libdialog .if ${MK_GNUCXX} != "no" _prebuild_libs+= gnu/lib/libstdc++ gnu/lib/libsupc++ gnu/lib/libstdc++__L: lib/msun__L @@ -1669,6 +1671,8 @@ _lib_libypclnt= lib/libypclnt lib/libradius__L: lib/libmd__L .endif +gnu/lib/libdialog__L: lib/ncurses/ncursesw__L + .for _lib in ${_prereq_libs} ${_lib}__PL: .PHONY .MAKE .if exists(${.CURDIR}/${_lib}) Modified: projects/ifnet/ObsoleteFiles.inc ============================================================================== --- projects/ifnet/ObsoleteFiles.inc Fri Nov 7 11:34:06 2014 (r274228) +++ projects/ifnet/ObsoleteFiles.inc Fri Nov 7 12:00:32 2014 (r274229) @@ -38,6 +38,10 @@ # xargs -n1 | sort | uniq -d; # done +# 20141102: postrandom obsoleted by new /dev/random code +OLD_FILES+=etc/rc.d/postrandom +# 20141031: initrandom obsoleted by new /dev/random code +OLD_FILES+=etc/rc.d/initrandom # 20141028: debug files accidentally installed as directory name OLD_FILES+=usr/lib/debug/usr/lib/i18n OLD_FILES+=usr/lib/debug/usr/lib/private @@ -372,7 +376,6 @@ OLD_FILES+=usr/share/man/man1/atf-report OLD_FILES+=usr/share/man/man1/atf-run.1.gz OLD_FILES+=usr/share/man/man1/atf-version.1.gz OLD_FILES+=usr/share/man/man5/atf-formats.5.gz -OLD_FILES+=usr/share/man/man7/atf.7.gz OLD_FILES+=usr/share/xml/atf/tests-results.dtd OLD_FILES+=usr/share/xsl/atf/tests-results.xsl # 20131009: freebsd-version moved from /libexec to /bin Modified: projects/ifnet/UPDATING ============================================================================== --- projects/ifnet/UPDATING Fri Nov 7 11:34:06 2014 (r274228) +++ projects/ifnet/UPDATING Fri Nov 7 12:00:32 2014 (r274229) @@ -31,6 +31,29 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20141104: + vt(4), the new console driver, is enabled by default. It brings + support for Unicode and double-width characters, as well as + support for UEFI and integration with the KMS kernel video + drivers. + + You may need to update your console settings in /etc/rc.conf, + most probably the keymap. During boot, /etc/rc.d/syscons will + indicate what you need to do. + + vt(4) still has issues and lacks some features compared to + syscons(4). See the wiki for up-to-date information: + https://wiki.freebsd.org/Newcons + + If you want to keep using syscons(4), you can do so by adding + the following line to /boot/loader.conf: + kern.vty=sc + +20141102: + pjdfstest has been integrated into kyua as an opt-in test suite. + Please see share/doc/pjdfstest/README for a more details on how to + execute it. + 20141009: gperf has been removed from the base system for architectures that use clang. Ports that require gperf will obtain it from the Modified: projects/ifnet/bin/df/Makefile ============================================================================== --- projects/ifnet/bin/df/Makefile Fri Nov 7 11:34:06 2014 (r274228) +++ projects/ifnet/bin/df/Makefile Fri Nov 7 12:00:32 2014 (r274229) @@ -9,7 +9,7 @@ SRCS= df.c vfslist.c CFLAGS+= -I${MOUNT} -DPADD= ${LIBUTIL} -LDADD= -lutil +DPADD= ${LIBUTIL} ${LIBXO} +LDADD= -lutil -lxo .include Modified: projects/ifnet/bin/df/df.1 ============================================================================== --- projects/ifnet/bin/df/df.1 Fri Nov 7 11:34:06 2014 (r274228) +++ projects/ifnet/bin/df/df.1 Fri Nov 7 12:00:32 2014 (r274229) @@ -29,7 +29,7 @@ .\" @(#)df.1 8.3 (Berkeley) 5/8/95 .\" $FreeBSD$ .\" -.Dd January 16, 2014 +.Dd November 6, 2014 .Dt DF 1 .Os .Sh NAME @@ -37,6 +37,7 @@ .Nd display free disk space .Sh SYNOPSIS .Nm +.Op Fl -libxo .Op Fl b | g | H | h | k | m | P .Op Fl acilnT .Op Fl \&, @@ -193,7 +194,9 @@ If the value is outside, it will be set .Xr statfs 2 , .Xr getbsize 3 , .Xr getmntinfo 3 , +.Xr libxo 3 , .Xr localeconv 3 , +.Xr xo_parse_args 3 , .Xr fstab 5 , .Xr mount 8 , .Xr pstat 8 , Modified: projects/ifnet/bin/df/df.c ============================================================================== --- projects/ifnet/bin/df/df.c Fri Nov 7 11:34:06 2014 (r274228) +++ projects/ifnet/bin/df/df.c Fri Nov 7 12:00:32 2014 (r274229) @@ -60,6 +60,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include "extern.h" @@ -82,7 +83,7 @@ static char *getmntpt(const char *); static int int64width(int64_t); static char *makenetvfslist(void); static void prthuman(const struct statfs *, int64_t); -static void prthumanval(int64_t); +static void prthumanval(const char *, int64_t); static intmax_t fsbtoblk(int64_t, uint64_t, u_long); static void prtstat(struct statfs *, struct maxwidths *); static size_t regetmntinfo(struct statfs **, long, const char **); @@ -119,6 +120,11 @@ main(int argc, char *argv[]) totalbuf.f_bsize = DEV_BSIZE; strlcpy(totalbuf.f_mntfromname, "total", MNAMELEN); vfslist = NULL; + + argc = xo_parse_args(argc, argv); + if (argc < 0) + exit(1); + while ((ch = getopt(argc, argv, "abcgHhiklmnPt:T,")) != -1) switch (ch) { case 'a': @@ -161,7 +167,7 @@ main(int argc, char *argv[]) break; case 'l': if (vfslist != NULL) - errx(1, "-l and -t are mutually exclusive."); + xo_errx(1, "-l and -t are mutually exclusive."); vfslist = makevfslist(makenetvfslist()); lflag = 1; break; @@ -174,9 +180,9 @@ main(int argc, char *argv[]) break; case 't': if (lflag) - errx(1, "-l and -t are mutually exclusive."); + xo_errx(1, "-l and -t are mutually exclusive."); if (vfslist != NULL) - errx(1, "only one -t option may be specified"); + xo_errx(1, "only one -t option may be specified"); fstype = optarg; vfslist = makevfslist(optarg); break; @@ -202,16 +208,19 @@ main(int argc, char *argv[]) /* just the filesystems specified on the command line */ mntbuf = malloc(argc * sizeof(*mntbuf)); if (mntbuf == NULL) - err(1, "malloc()"); + xo_err(1, "malloc()"); mntsize = 0; /* continued in for loop below */ } + xo_open_container("storage-system-information"); + xo_open_list("filesystem"); + /* iterate through specified filesystems */ for (; *argv; argv++) { if (stat(*argv, &stbuf) < 0) { if ((mntpt = getmntpt(*argv)) == NULL) { - warn("%s", *argv); + xo_warn("%s", *argv); rv = 1; continue; } @@ -220,20 +229,20 @@ main(int argc, char *argv[]) mdev.fspec = *argv; mntpath = strdup("/tmp/df.XXXXXX"); if (mntpath == NULL) { - warn("strdup failed"); + xo_warn("strdup failed"); rv = 1; continue; } mntpt = mkdtemp(mntpath); if (mntpt == NULL) { - warn("mkdtemp(\"%s\") failed", mntpath); + xo_warn("mkdtemp(\"%s\") failed", mntpath); rv = 1; free(mntpath); continue; } if (mount(fstype, mntpt, MNT_RDONLY, &mdev) != 0) { - warn("%s", *argv); + xo_warn("%s", *argv); rv = 1; (void)rmdir(mntpt); free(mntpath); @@ -244,7 +253,7 @@ main(int argc, char *argv[]) if (cflag) addstat(&totalbuf, &statfsbuf); } else { - warn("%s", *argv); + xo_warn("%s", *argv); rv = 1; } (void)unmount(mntpt, 0); @@ -260,7 +269,7 @@ main(int argc, char *argv[]) * implement nflag here. */ if (statfs(mntpt, &statfsbuf) < 0) { - warn("%s", mntpt); + xo_warn("%s", mntpt); rv = 1; continue; } @@ -294,8 +303,14 @@ main(int argc, char *argv[]) for (i = 0; i < mntsize; i++) if (aflag || (mntbuf[i].f_flags & MNT_IGNORE) == 0) prtstat(&mntbuf[i], &maxwidths); + + xo_close_list("filesystem"); + if (cflag) prtstat(&totalbuf, &maxwidths); + + xo_close_container("storage-system-information"); + xo_finish(); return (rv); } @@ -341,7 +356,7 @@ regetmntinfo(struct statfs **mntbufp, lo if (nflag || error < 0) if (i != j) { if (error < 0) - warnx("%s stats possibly stale", + xo_warnx("%s stats possibly stale", mntbuf[i].f_mntonname); mntbuf[j] = mntbuf[i]; } @@ -354,13 +369,13 @@ static void prthuman(const struct statfs *sfsp, int64_t used) { - prthumanval(sfsp->f_blocks * sfsp->f_bsize); - prthumanval(used * sfsp->f_bsize); - prthumanval(sfsp->f_bavail * sfsp->f_bsize); + prthumanval(" {:blocks/%6s}", sfsp->f_blocks * sfsp->f_bsize); + prthumanval(" {:used/%6s}", used * sfsp->f_bsize); + prthumanval(" {:available/%6s}", sfsp->f_bavail * sfsp->f_bsize); } static void -prthumanval(int64_t bytes) +prthumanval(const char *fmt, int64_t bytes) { char buf[6]; int flags; @@ -372,14 +387,15 @@ prthumanval(int64_t bytes) humanize_number(buf, sizeof(buf) - (bytes < 0 ? 0 : 1), bytes, "", HN_AUTOSCALE, flags); - (void)printf(" %6s", buf); + xo_attr("value", "%lld", (long long) bytes); + xo_emit(fmt, buf); } /* * Print an inode count in "human-readable" format. */ static void -prthumanvalinode(int64_t bytes) +prthumanvalinode(const char *fmt, int64_t bytes) { char buf[6]; int flags; @@ -389,7 +405,8 @@ prthumanvalinode(int64_t bytes) humanize_number(buf, sizeof(buf) - (bytes < 0 ? 0 : 1), bytes, "", HN_AUTOSCALE, flags); - (void)printf(" %5s", buf); + xo_attr("value", "%lld", (long long) bytes); + xo_emit(fmt, buf); } /* @@ -434,70 +451,77 @@ prtstat(struct statfs *sfsp, struct maxw mwp->used = imax(mwp->used, (int)strlen("Used")); mwp->avail = imax(mwp->avail, (int)strlen("Avail")); - (void)printf("%-*s", mwp->mntfrom, "Filesystem"); + xo_emit("{T:/%-*s}", mwp->mntfrom, "Filesystem"); if (Tflag) - (void)printf(" %-*s", mwp->fstype, "Type"); - (void)printf(" %*s %*s %*s Capacity", mwp->total, header, - mwp->used, "Used", mwp->avail, "Avail"); + xo_emit(" {T:/%-*s}", mwp->fstype, "Type"); + xo_emit(" {T:/%*s} {T:/%*s} {T:/%*s} Capacity", + mwp->total, header, + mwp->used, "Used", mwp->avail, "Avail"); if (iflag) { mwp->iused = imax(hflag ? 0 : mwp->iused, (int)strlen(" iused")); mwp->ifree = imax(hflag ? 0 : mwp->ifree, (int)strlen("ifree")); - (void)printf(" %*s %*s %%iused", + xo_emit(" {T:/%*s} {T:/%*s} {T:\%iused}", mwp->iused - 2, "iused", mwp->ifree, "ifree"); } - (void)printf(" Mounted on\n"); + xo_emit(" {T:Mounted on}\n"); } + + xo_open_instance("filesystem"); /* Check for 0 block size. Can this happen? */ if (sfsp->f_bsize == 0) { - warnx ("File system %s does not have a block size, assuming 512.", + xo_warnx ("File system %s does not have a block size, assuming 512.", sfsp->f_mntonname); sfsp->f_bsize = 512; } - (void)printf("%-*s", mwp->mntfrom, sfsp->f_mntfromname); + xo_emit("{tk:name/%-*s}", mwp->mntfrom, sfsp->f_mntfromname); if (Tflag) - (void)printf(" %-*s", mwp->fstype, sfsp->f_fstypename); + xo_emit(" {:type/%-*s}", mwp->fstype, sfsp->f_fstypename); used = sfsp->f_blocks - sfsp->f_bfree; availblks = sfsp->f_bavail + used; if (hflag) { prthuman(sfsp, used); } else { if (thousands) - format = " %*j'd %*j'd %*j'd"; + format = " {t:total-blocks/%*j'd} {t:used-blocks/%*j'd} " + "{t:available-blocks/%*j'd}"; else - format = " %*jd %*jd %*jd"; - (void)printf(format, + format = " {t:total-blocks/%*jd} {t:used-blocks/%*jd} " + "{t:available-blocks/%*jd}"; + xo_emit(format, mwp->total, fsbtoblk(sfsp->f_blocks, sfsp->f_bsize, blocksize), mwp->used, fsbtoblk(used, sfsp->f_bsize, blocksize), mwp->avail, fsbtoblk(sfsp->f_bavail, sfsp->f_bsize, blocksize)); } - (void)printf(" %5.0f%%", + xo_emit(" {:used-percent/%5.0f}{U:%%}", availblks == 0 ? 100.0 : (double)used / (double)availblks * 100.0); if (iflag) { inodes = sfsp->f_files; used = inodes - sfsp->f_ffree; if (hflag) { - (void)printf(" "); - prthumanvalinode(used); - prthumanvalinode(sfsp->f_ffree); + xo_emit(" "); + prthumanvalinode(" {:inodes-used/%5s}", used); + prthumanvalinode(" {:inodes-free/%5s}", sfsp->f_ffree); } else { if (thousands) - format = " %*j'd %*j'd"; + format = " {:inodes-used/%*j'd} {:inodes-free/%*j'd}"; else - format = " %*jd %*jd"; - (void)printf(format, mwp->iused, (intmax_t)used, + format = " {:inodes-used/%*jd} {:inodes-free/%*jd}"; + xo_emit(format, mwp->iused, (intmax_t)used, mwp->ifree, (intmax_t)sfsp->f_ffree); } - (void)printf(" %4.0f%% ", inodes == 0 ? 100.0 : - (double)used / (double)inodes * 100.0); + xo_emit(" {:inodes-used-percent/%4.0f}{U:%%} ", + inodes == 0 ? 100.0 : + (double)used / (double)inodes * 100.0); } else - (void)printf(" "); + xo_emit(" "); if (strncmp(sfsp->f_mntfromname, "total", MNAMELEN) != 0) - (void)printf(" %s", sfsp->f_mntonname); - (void)printf("\n"); + xo_emit(" {:mounted-on}", sfsp->f_mntonname); + xo_emit("\n"); + xo_close_instance("filesystem"); } static void @@ -564,7 +588,7 @@ static void usage(void) { - (void)fprintf(stderr, + xo_error( "usage: df [-b | -g | -H | -h | -k | -m | -P] [-acilnT] [-t type] [-,]\n" " [file | filesystem ...]\n"); exit(EX_USAGE); @@ -579,24 +603,24 @@ makenetvfslist(void) int cnt, i, maxvfsconf; if (sysctlbyname("vfs.conflist", NULL, &buflen, NULL, 0) < 0) { - warn("sysctl(vfs.conflist)"); + xo_warn("sysctl(vfs.conflist)"); return (NULL); } xvfsp = malloc(buflen); if (xvfsp == NULL) { - warnx("malloc failed"); + xo_warnx("malloc failed"); return (NULL); } keep_xvfsp = xvfsp; if (sysctlbyname("vfs.conflist", xvfsp, &buflen, NULL, 0) < 0) { - warn("sysctl(vfs.conflist)"); + xo_warn("sysctl(vfs.conflist)"); free(keep_xvfsp); return (NULL); } maxvfsconf = buflen / sizeof(struct xvfsconf); if ((listptr = malloc(sizeof(char*) * maxvfsconf)) == NULL) { - warnx("malloc failed"); + xo_warnx("malloc failed"); free(keep_xvfsp); return (NULL); } @@ -605,7 +629,7 @@ makenetvfslist(void) if (xvfsp->vfc_flags & VFCF_NETWORK) { listptr[cnt++] = strdup(xvfsp->vfc_name); if (listptr[cnt-1] == NULL) { - warnx("malloc failed"); + xo_warnx("malloc failed"); free(listptr); free(keep_xvfsp); return (NULL); @@ -617,7 +641,7 @@ makenetvfslist(void) if (cnt == 0 || (str = malloc(sizeof(char) * (32 * cnt + cnt + 2))) == NULL) { if (cnt > 0) - warnx("malloc failed"); + xo_warnx("malloc failed"); free(listptr); free(keep_xvfsp); return (NULL); Modified: projects/ifnet/bin/sh/expand.c ============================================================================== --- projects/ifnet/bin/sh/expand.c Fri Nov 7 11:34:06 2014 (r274228) +++ projects/ifnet/bin/sh/expand.c Fri Nov 7 12:00:32 2014 (r274229) @@ -862,7 +862,7 @@ varisset(const char *name, int nulok) static void strtodest(const char *p, int flag, int subtype, int quoted) { - if (flag & (EXP_FULL | EXP_CASE) && subtype != VSLENGTH) + if (flag & (EXP_FULL | EXP_CASE | EXP_REDIR) && subtype != VSLENGTH) STPUTS_QUOTES(p, quoted ? DQSYNTAX : BASESYNTAX, expdest); else STPUTS(p, expdest); Modified: projects/ifnet/bin/sh/tests/expansion/Makefile ============================================================================== --- projects/ifnet/bin/sh/tests/expansion/Makefile Fri Nov 7 11:34:06 2014 (r274228) +++ projects/ifnet/bin/sh/tests/expansion/Makefile Fri Nov 7 12:00:32 2014 (r274229) @@ -72,6 +72,7 @@ FILES+= plus-minus7.0 FILES+= plus-minus8.0 FILES+= question1.0 FILES+= readonly1.0 +FILES+= redir1.0 FILES+= set-u1.0 FILES+= set-u2.0 FILES+= set-u3.0 Copied: projects/ifnet/bin/sh/tests/expansion/redir1.0 (from r274228, head/bin/sh/tests/expansion/redir1.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ifnet/bin/sh/tests/expansion/redir1.0 Fri Nov 7 12:00:32 2014 (r274229, copy of r274228, head/bin/sh/tests/expansion/redir1.0) @@ -0,0 +1,26 @@ +# $FreeBSD$ + +bad=0 +for i in 0 1 2 3; do + for j in 0 1 2 3 4 5 6 7; do + for k in 0 1 2 3 4 5 6 7; do + case $i$j$k in + 000) continue ;; + esac + set -- "$(printf \\$i$j$k@)" + set -- "${1%@}" + ff= + for f in /dev/null /dev/zero /; do + if [ -e "$f" ] && [ ! -e "$f$1" ]; then + ff=$f + fi + done + [ -n "$ff" ] || continue + if { true <$ff$1; } 2>/dev/null; then + echo "Bad: $i$j$k ($ff)" >&2 + : $((bad += 1)) + fi + done + done +done +exit $((bad ? 2 : 0)) Modified: projects/ifnet/contrib/atf/FREEBSD-Xlist ============================================================================== --- projects/ifnet/contrib/atf/FREEBSD-Xlist Fri Nov 7 11:34:06 2014 (r274228) +++ projects/ifnet/contrib/atf/FREEBSD-Xlist Fri Nov 7 12:00:32 2014 (r274229) @@ -1,22 +1,12 @@ -*/*/Atffile */*/Makefile* -*/Atffile */Makefile* */*.m4 */*.pc.in -Atffile INSTALL Makefile* aclocal.m4 admin/ -atf-config/ -atf-report/ -atf-run/ -atf-version/ -bconfig.h.in +config.h.in bootstrap/ configure* -doc/atf-formats.5 -doc/atf.7.in m4/ -tools/ Modified: projects/ifnet/contrib/atf/NEWS ============================================================================== --- projects/ifnet/contrib/atf/NEWS Fri Nov 7 11:34:06 2014 (r274228) +++ projects/ifnet/contrib/atf/NEWS Fri Nov 7 12:00:32 2014 (r274229) @@ -1,6 +1,62 @@ Major changes between releases Automated Testing Framework =========================================================================== +Changes in version 0.21 +*********************** + +Released on October 23rd, 2014. + +* Restored the atf(7) manual page to serve as a reference to all the other + manual pages shipped by ATF. + +* Added the -s flag to atf-sh to support specifying the shell interpreter + to be used. + +* Removed ATF_WORKDIR. The only remaining consumers have been converted to + use the standard TMPDIR environment variable. As a benefit, and because + Kyua forces the TMPDIR to live within the test case's work directory, + any stale files left behind by ATF will be automatically cleaned up. + +* Documented the environment variables recognized by each component in the + relevant manual pages. This information was lost with the atf-config(1) + removal. + +* Added a new "require.diskspace" metadata property to test cases so that + they can specify the minimum amount of disk space required for the test + to run. + +* Renamed the atf-{c,c++,sh}-api(3) manual pages to atf-{c,c++,sh}(3) for + discoverability purposes. Symbolic links are provided for the time + being to still make the old names visible. + +* Issue #5: Recommend the (expected, actual) idiom for calls to the test + macros in the manual pages. + +* Issue #7: Stopped catching unhandled exceptions in atf-c++ tests. This + propagates the crash to the caller, which in turn allows it to obtain + proper debugging information. In particular, Kyua should now be able to + extract a stacktrace pinpointing the problem. + +* Issue #8: Fixed atf-c/macros_test:use test failures spotted by the clang + that ships with FreeBSD 11.0-CURRENT. + +* Issue #12: Improved documentation of atf-sh(3) and atf-check(1) by better + explaining how they relate to each other. + +* Issue #14: Stopped setting 'set -e' in atf-sh. This setting was + initially added as a way to enable a "strict" mode in the library and to + make test cases fail fast when they run unprotected commands. However, + doing so in the library is surprising as the responsibility of enabling + 'set -e' should be on the user's code. Also, 'set -e' introduces + inconsistent behavior on subshells and users do not expect that. + +* Issue #15: Fixed atf_utils_{fork,wait} to support nested calls. + +* Issue #16: Fixed test failures (by removing a long-standing hack) on + systems that lack \e support in printf(1). + +* Issue #19: Removed stale references to atf-config and atf-run. + Changes in version 0.20 *********************** Modified: projects/ifnet/contrib/atf/atf-c++.hpp ============================================================================== --- projects/ifnet/contrib/atf/atf-c++.hpp Fri Nov 7 11:34:06 2014 (r274228) +++ projects/ifnet/contrib/atf/atf-c++.hpp Fri Nov 7 12:00:32 2014 (r274229) @@ -1,6 +1,3 @@ -// -// Automated Testing Framework (atf) -// // Copyright (c) 2007 The NetBSD Foundation, Inc. // All rights reserved. // @@ -25,12 +22,11 @@ // IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN // IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -#if !defined(_ATF_CXX_HPP_) -#define _ATF_CXX_HPP_ +#if !defined(ATF_CXX_HPP) +#define ATF_CXX_HPP #include #include -#endif // !defined(_ATF_CXX_HPP_) +#endif // !defined(ATF_CXX_HPP) Modified: projects/ifnet/contrib/atf/atf-c++/Kyuafile ============================================================================== --- projects/ifnet/contrib/atf/atf-c++/Kyuafile Fri Nov 7 11:34:06 2014 (r274228) +++ projects/ifnet/contrib/atf/atf-c++/Kyuafile Fri Nov 7 12:00:32 2014 (r274229) @@ -5,7 +5,6 @@ test_suite("atf") atf_test_program{name="atf_c++_test"} atf_test_program{name="build_test"} atf_test_program{name="check_test"} -atf_test_program{name="config_test"} atf_test_program{name="macros_test"} atf_test_program{name="pkg_config_test"} atf_test_program{name="tests_test"} Copied: projects/ifnet/contrib/atf/atf-c++/atf-c++.3 (from r274228, head/contrib/atf/atf-c++/atf-c++.3) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/ifnet/contrib/atf/atf-c++/atf-c++.3 Fri Nov 7 12:00:32 2014 (r274229, copy of r274228, head/contrib/atf/atf-c++/atf-c++.3) @@ -0,0 +1,649 @@ +.\" Copyright (c) 2008 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +.\" CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.Dd October 13, 2014 +.Dt ATF-C++ 3 +.Os +.Sh NAME +.Nm atf-c++ , +.Nm ATF_ADD_TEST_CASE , +.Nm ATF_CHECK_ERRNO , +.Nm ATF_FAIL , +.Nm ATF_INIT_TEST_CASES , +.Nm ATF_PASS , +.Nm ATF_REQUIRE , +.Nm ATF_REQUIRE_EQ , +.Nm ATF_REQUIRE_ERRNO , +.Nm ATF_REQUIRE_IN , +.Nm ATF_REQUIRE_MATCH , +.Nm ATF_REQUIRE_NOT_IN , +.Nm ATF_REQUIRE_THROW , +.Nm ATF_REQUIRE_THROW_RE , +.Nm ATF_SKIP , +.Nm ATF_TEST_CASE , +.Nm ATF_TEST_CASE_BODY , +.Nm ATF_TEST_CASE_CLEANUP , +.Nm ATF_TEST_CASE_HEAD , +.Nm ATF_TEST_CASE_NAME , +.Nm ATF_TEST_CASE_USE , +.Nm ATF_TEST_CASE_WITH_CLEANUP , +.Nm ATF_TEST_CASE_WITHOUT_HEAD , +.Nm atf::utils::cat_file , +.Nm atf::utils::compare_file , +.Nm atf::utils::copy_file , +.Nm atf::utils::create_file , +.Nm atf::utils::file_exists , +.Nm atf::utils::fork , +.Nm atf::utils::grep_collection , +.Nm atf::utils::grep_file , +.Nm atf::utils::grep_string , +.Nm atf::utils::redirect , +.Nm atf::utils::wait +.Nd C++ API to write ATF-based test programs +.Sh SYNOPSIS +.In atf-c++.hpp +.Fn ATF_ADD_TEST_CASE "tcs" "name" +.Fn ATF_CHECK_ERRNO "expected_errno" "bool_expression" +.Fn ATF_FAIL "reason" +.Fn ATF_INIT_TEST_CASES "tcs" +.Fn ATF_PASS +.Fn ATF_REQUIRE "expression" +.Fn ATF_REQUIRE_EQ "expected_expression" "actual_expression" +.Fn ATF_REQUIRE_ERRNO "expected_errno" "bool_expression" +.Fn ATF_REQUIRE_IN "element" "collection" +.Fn ATF_REQUIRE_MATCH "regexp" "string_expression" +.Fn ATF_REQUIRE_NOT_IN "element" "collection" +.Fn ATF_REQUIRE_THROW "expected_exception" "statement" +.Fn ATF_REQUIRE_THROW_RE "expected_exception" "regexp" "statement" +.Fn ATF_SKIP "reason" +.Fn ATF_TEST_CASE "name" +.Fn ATF_TEST_CASE_BODY "name" +.Fn ATF_TEST_CASE_CLEANUP "name" +.Fn ATF_TEST_CASE_HEAD "name" +.Fn ATF_TEST_CASE_NAME "name" +.Fn ATF_TEST_CASE_USE "name" +.Fn ATF_TEST_CASE_WITH_CLEANUP "name" +.Fn ATF_TEST_CASE_WITHOUT_HEAD "name" +.Ft void +.Fo atf::utils::cat_file +.Fa "const std::string& path" +.Fa "const std::string& prefix" +.Fc +.Ft bool +.Fo atf::utils::compare_file +.Fa "const std::string& path" +.Fa "const std::string& contents" +.Fc +.Ft void +.Fo atf::utils::copy_file +.Fa "const std::string& source" +.Fa "const std::string& destination" +.Fc +.Ft void +.Fo atf::utils::create_file +.Fa "const std::string& path" +.Fa "const std::string& contents" +.Fc +.Ft void +.Fo atf::utils::file_exists +.Fa "const std::string& path" +.Fc +.Ft pid_t +.Fo atf::utils::fork +.Fa "void" +.Fc +.Ft bool +.Fo atf::utils::grep_collection +.Fa "const std::string& regexp" +.Fa "const Collection& collection" +.Fc +.Ft bool +.Fo atf::utils::grep_file +.Fa "const std::string& regexp" +.Fa "const std::string& path" +.Fc +.Ft bool +.Fo atf::utils::grep_string +.Fa "const std::string& regexp" +.Fa "const std::string& path" +.Fc +.Ft void +.Fo atf::utils::redirect +.Fa "const int fd" +.Fa "const std::string& path" +.Fc +.Ft void +.Fo atf::utils::wait +.Fa "const pid_t pid" +.Fa "const int expected_exit_status" +.Fa "const std::string& expected_stdout" +.Fa "const std::string& expected_stderr" +.Fc +.Sh DESCRIPTION +ATF provides a C++ programming interface to implement test programs. +C++-based test programs follow this template: +.Bd -literal -offset indent +extern "C" { +.Ns ... C-specific includes go here ... +} + +.Ns ... C++-specific includes go here ... + +#include + +ATF_TEST_CASE(tc1); +ATF_TEST_CASE_HEAD(tc1) +{ + ... first test case's header ... +} +ATF_TEST_CASE_BODY(tc1) +{ + ... first test case's body ... +} + +ATF_TEST_CASE_WITH_CLEANUP(tc2); +ATF_TEST_CASE_HEAD(tc2) +{ + ... second test case's header ... +} +ATF_TEST_CASE_BODY(tc2) +{ + ... second test case's body ... +} +ATF_TEST_CASE_CLEANUP(tc2) +{ + ... second test case's cleanup ... +} + +ATF_TEST_CASE(tc3); +ATF_TEST_CASE_BODY(tc3) +{ + ... third test case's body ... +} + +.Ns ... additional test cases ... + +ATF_INIT_TEST_CASES(tcs) +{ + ATF_ADD_TEST_CASE(tcs, tc1); + ATF_ADD_TEST_CASE(tcs, tc2); + ATF_ADD_TEST_CASE(tcs, tc3); + ... add additional test cases ... +} +.Ed +.Ss Definition of test cases +Test cases have an identifier and are composed of three different parts: +the header, the body and an optional cleanup routine, all of which are +described in +.Xr atf-test-case 4 . +To define test cases, one can use the +.Fn ATF_TEST_CASE , +.Fn ATF_TEST_CASE_WITH_CLEANUP +or the +.Fn ATF_TEST_CASE_WITHOUT_HEAD +macros, which take a single parameter specifiying the test case's +name. +.Fn ATF_TEST_CASE , +requires to define a head and a body for the test case, +.Fn ATF_TEST_CASE_WITH_CLEANUP +requires to define a head, a body and a cleanup for the test case and +.Fn ATF_TEST_CASE_WITHOUT_HEAD +requires only a body for the test case. +It is important to note that these +.Em do not +set the test case up for execution when the program is run. +In order to do so, a later registration is needed through the +.Fn ATF_ADD_TEST_CASE +macro detailed in +.Sx Program initialization . +.Pp +Later on, one must define the three parts of the body by means of three +functions. +Their headers are given by the +.Fn ATF_TEST_CASE_HEAD , +.Fn ATF_TEST_CASE_BODY +and +.Fn ATF_TEST_CASE_CLEANUP +macros, all of which take the test case's name. +Following each of these, a block of code is expected, surrounded by the +opening and closing brackets. +.Pp +Additionally, the +.Fn ATF_TEST_CASE_NAME +macro can be used to obtain the name of the class corresponding to a +particular test case, as the name is internally manged by the library to +prevent clashes with other user identifiers. +Similarly, the +.Fn ATF_TEST_CASE_USE +macro can be executed on a particular test case to mark it as "used" and +thus prevent compiler warnings regarding unused symbols. +Note that +.Em you should never have to use these macros during regular operation. +.Ss Program initialization +The library provides a way to easily define the test program's +.Fn main +function. +You should never define one on your own, but rely on the +library to do it for you. +This is done by using the +.Fn ATF_INIT_TEST_CASES +macro, which is passed the name of the list that will hold the test cases. +This name can be whatever you want as long as it is a valid variable value. +.Pp +After the macro, you are supposed to provide the body of a function, which +should only use the +.Fn ATF_ADD_TEST_CASE +macro to register the test cases the test program will execute. +The first parameter of this macro matches the name you provided in the +former call. +.Ss Header definitions +The test case's header can define the meta-data by using the +.Fn set_md_var +method, which takes two parameters: the first one specifies the +meta-data variable to be set and the second one specifies its value. +Both of them are strings. +.Ss Configuration variables +The test case has read-only access to the current configuration variables +by means of the +.Ft bool +.Fn has_config_var +and the +.Ft std::string +.Fn get_config_var +methods, which can be called in any of the three parts of a test case. +.Ss Access to the source directory +It is possible to get the path to the test case's source directory from any +of its three components by querying the +.Sq srcdir +configuration variable. +.Ss Requiring programs +Aside from the +.Va require.progs +meta-data variable available in the header only, one can also check for +additional programs in the test case's body by using the +.Fn require_prog +function, which takes the base name or full path of a single binary. +Relative paths are forbidden. +If it is not found, the test case will be automatically skipped. +.Ss Test case finalization +The test case finalizes either when the body reaches its end, at which +point the test is assumed to have +.Em passed , +or at any explicit call to +.Fn ATF_PASS , +.Fn ATF_FAIL +or +.Fn ATF_SKIP . +These three macros terminate the execution of the test case immediately. +The cleanup routine will be processed afterwards in a completely automated +way, regardless of the test case's termination reason. +.Pp +.Fn ATF_PASS +does not take any parameters. +.Fn ATF_FAIL +and +.Fn ATF_SKIP +take a single string that describes why the test case failed or +was skipped, respectively. +It is very important to provide a clear error message in both cases so that +the user can quickly know why the test did not pass. +.Ss Expectations +Everything explained in the previous section changes when the test case +expectations are redefined by the programmer. +.Pp +Each test case has an internal state called +.Sq expect +that describes what the test case expectations are at any point in time. +The value of this property can change during execution by any of: +.Bl -tag -width indent +.It Fn expect_death "reason" +Expects the test case to exit prematurely regardless of the nature of the +exit. +.It Fn expect_exit "exitcode" "reason" +Expects the test case to exit cleanly. +If +.Va exitcode +is not +.Sq -1 , +the runtime engine will validate that the exit code of the test case +matches the one provided in this call. +Otherwise, the exact value will be ignored. +.It Fn expect_fail "reason" +Any failure (be it fatal or non-fatal) raised in this mode is recorded. +However, such failures do not report the test case as failed; instead, the +test case finalizes cleanly and is reported as +.Sq expected failure ; +this report includes the provided +.Fa reason +as part of it. +If no error is raised while running in this mode, then the test case is +reported as +.Sq failed . +.Pp +This mode is useful to reproduce actual known bugs in tests. *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***