head	1.1;
branch	1.1.1;
access;
symbols
	netbsd-11-0-RC4:1.1.1.1
	netbsd-11-0-RC3:1.1.1.1
	netbsd-11-0-RC2:1.1.1.1
	netbsd-11-0-RC1:1.1.1.1
	perseant-exfatfs-base-20250801:1.1.1.1
	netbsd-11:1.1.1.1.0.50
	netbsd-11-base:1.1.1.1
	netbsd-10-1-RELEASE:1.1.1.1
	perseant-exfatfs-base-20240630:1.1.1.1
	perseant-exfatfs:1.1.1.1.0.48
	perseant-exfatfs-base:1.1.1.1
	netbsd-8-3-RELEASE:1.1.1.1
	netbsd-9-4-RELEASE:1.1.1.1
	netbsd-10-0-RELEASE:1.1.1.1
	netbsd-10-0-RC6:1.1.1.1
	netbsd-10-0-RC5:1.1.1.1
	netbsd-10-0-RC4:1.1.1.1
	netbsd-10-0-RC3:1.1.1.1
	netbsd-10-0-RC2:1.1.1.1
	netbsd-10-0-RC1:1.1.1.1
	netbsd-10:1.1.1.1.0.46
	netbsd-10-base:1.1.1.1
	netbsd-9-3-RELEASE:1.1.1.1
	cjep_sun2x-base1:1.1.1.1
	cjep_sun2x:1.1.1.1.0.44
	cjep_sun2x-base:1.1.1.1
	cjep_staticlib_x-base1:1.1.1.1
	netbsd-9-2-RELEASE:1.1.1.1
	cjep_staticlib_x:1.1.1.1.0.42
	cjep_staticlib_x-base:1.1.1.1
	netbsd-9-1-RELEASE:1.1.1.1
	phil-wifi-20200421:1.1.1.1
	phil-wifi-20200411:1.1.1.1
	is-mlppp:1.1.1.1.0.40
	is-mlppp-base:1.1.1.1
	phil-wifi-20200406:1.1.1.1
	netbsd-8-2-RELEASE:1.1.1.1
	netbsd-9-0-RELEASE:1.1.1.1
	netbsd-9-0-RC2:1.1.1.1
	netbsd-9-0-RC1:1.1.1.1
	phil-wifi-20191119:1.1.1.1
	netbsd-9:1.1.1.1.0.38
	netbsd-9-base:1.1.1.1
	phil-wifi-20190609:1.1.1.1
	netbsd-8-1-RELEASE:1.1.1.1
	netbsd-8-1-RC1:1.1.1.1
	pgoyette-compat-merge-20190127:1.1.1.1
	pgoyette-compat-20190127:1.1.1.1
	pgoyette-compat-20190118:1.1.1.1
	pgoyette-compat-1226:1.1.1.1
	pgoyette-compat-1126:1.1.1.1
	pgoyette-compat-1020:1.1.1.1
	pgoyette-compat-0930:1.1.1.1
	pgoyette-compat-0906:1.1.1.1
	netbsd-7-2-RELEASE:1.1.1.1
	pgoyette-compat-0728:1.1.1.1
	netbsd-8-0-RELEASE:1.1.1.1
	phil-wifi:1.1.1.1.0.36
	phil-wifi-base:1.1.1.1
	pgoyette-compat-0625:1.1.1.1
	netbsd-8-0-RC2:1.1.1.1
	pgoyette-compat-0521:1.1.1.1
	pgoyette-compat-0502:1.1.1.1
	pgoyette-compat-0422:1.1.1.1
	netbsd-8-0-RC1:1.1.1.1
	pgoyette-compat-0415:1.1.1.1
	pgoyette-compat-0407:1.1.1.1
	pgoyette-compat-0330:1.1.1.1
	pgoyette-compat-0322:1.1.1.1
	pgoyette-compat-0315:1.1.1.1
	netbsd-7-1-2-RELEASE:1.1.1.1
	pgoyette-compat:1.1.1.1.0.34
	pgoyette-compat-base:1.1.1.1
	netbsd-7-1-1-RELEASE:1.1.1.1
	matt-nb8-mediatek:1.1.1.1.0.32
	matt-nb8-mediatek-base:1.1.1.1
	perseant-stdc-iso10646:1.1.1.1.0.30
	perseant-stdc-iso10646-base:1.1.1.1
	netbsd-8:1.1.1.1.0.28
	netbsd-8-base:1.1.1.1
	prg-localcount2-base3:1.1.1.1
	prg-localcount2-base2:1.1.1.1
	prg-localcount2-base1:1.1.1.1
	prg-localcount2:1.1.1.1.0.26
	prg-localcount2-base:1.1.1.1
	pgoyette-localcount-20170426:1.1.1.1
	bouyer-socketcan-base1:1.1.1.1
	pgoyette-localcount-20170320:1.1.1.1
	netbsd-7-1:1.1.1.1.0.24
	netbsd-7-1-RELEASE:1.1.1.1
	netbsd-7-1-RC2:1.1.1.1
	netbsd-7-nhusb-base-20170116:1.1.1.1
	bouyer-socketcan:1.1.1.1.0.22
	bouyer-socketcan-base:1.1.1.1
	pgoyette-localcount-20170107:1.1.1.1
	netbsd-7-1-RC1:1.1.1.1
	pgoyette-localcount-20161104:1.1.1.1
	netbsd-7-0-2-RELEASE:1.1.1.1
	localcount-20160914:1.1.1.1
	netbsd-7-nhusb:1.1.1.1.0.20
	netbsd-7-nhusb-base:1.1.1.1
	pgoyette-localcount-20160806:1.1.1.1
	pgoyette-localcount-20160726:1.1.1.1
	pgoyette-localcount:1.1.1.1.0.18
	pgoyette-localcount-base:1.1.1.1
	netbsd-7-0-1-RELEASE:1.1.1.1
	netbsd-7-0:1.1.1.1.0.16
	netbsd-7-0-RELEASE:1.1.1.1
	netbsd-7-0-RC3:1.1.1.1
	netbsd-7-0-RC2:1.1.1.1
	netbsd-7-0-RC1:1.1.1.1
	netbsd-7:1.1.1.1.0.14
	netbsd-7-base:1.1.1.1
	yamt-pagecache:1.1.1.1.0.12
	yamt-pagecache-base9:1.1.1.1
	tls-earlyentropy:1.1.1.1.0.10
	tls-earlyentropy-base:1.1.1.1
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.1
	riastradh-drm2-base3:1.1.1.1
	atf-0-20:1.1.1.1
	atf-0-19:1.1.1.1
	GITHUB_JMMV:1.1.1
	riastradh-drm2-base2:1.1.1.1
	riastradh-drm2-base1:1.1.1.1
	riastradh-drm2:1.1.1.1.0.2
	riastradh-drm2-base:1.1.1.1
	khorben-n900:1.1.1.1.0.8
	agc-symver:1.1.1.1.0.6
	agc-symver-base:1.1.1.1
	tls-maxphys-base:1.1.1.1
	tls-maxphys:1.1.1.1.0.4
	atf-0-17:1.1.1.1
	TNF:1.1.1;
locks; strict;
comment	@// @;


1.1
date	2013.02.15.17.04.16;	author jmmv;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2013.02.15.17.04.16;	author jmmv;	state Exp;
branches
	1.1.1.1.4.1
	1.1.1.1.12.1;
next	;

1.1.1.1.4.1
date	2013.02.15.17.04.16;	author tls;	state dead;
branches;
next	1.1.1.1.4.2;

1.1.1.1.4.2
date	2013.02.25.00.24.54;	author tls;	state Exp;
branches;
next	;

1.1.1.1.12.1
date	2013.02.15.17.04.16;	author yamt;	state dead;
branches;
next	1.1.1.1.12.2;
commitid	TzMwNuE6CLSD5yBx;

1.1.1.1.12.2
date	2014.05.22.15.40.11;	author yamt;	state Exp;
branches;
next	;
commitid	TzMwNuE6CLSD5yBx;


desc
@@


1.1
log
@Initial revision
@
text
@//
// Automated Testing Framework (atf)
//
// Copyright (c) 2007 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.
//

extern "C" {
#include "atf-c/utils.h"
}

#include <cstdlib>
#include <iostream>

#include "utils.hpp"

void
atf::utils::cat_file(const std::string& path, const std::string& prefix)
{
    atf_utils_cat_file(path.c_str(), prefix.c_str());
}

void
atf::utils::copy_file(const std::string& source, const std::string& destination)
{
    atf_utils_copy_file(source.c_str(), destination.c_str());
}

bool
atf::utils::compare_file(const std::string& path, const std::string& contents)
{
    return atf_utils_compare_file(path.c_str(), contents.c_str());
}

void
atf::utils::create_file(const std::string& path, const std::string& contents)
{
    atf_utils_create_file(path.c_str(), "%s", contents.c_str());
}

bool
atf::utils::file_exists(const std::string& path)
{
    return atf_utils_file_exists(path.c_str());
}

pid_t
atf::utils::fork(void)
{
    std::cout.flush();
    std::cerr.flush();
    return atf_utils_fork();
}

bool
atf::utils::grep_file(const std::string& regex, const std::string& path)
{
    return atf_utils_grep_file("%s", path.c_str(), regex.c_str());
}

bool
atf::utils::grep_string(const std::string& regex, const std::string& str)
{
    return atf_utils_grep_string("%s", str.c_str(), regex.c_str());
}

void
atf::utils::redirect(const int fd, const std::string& path)
{
    if (fd == STDOUT_FILENO)
        std::cout.flush();
    else if (fd == STDERR_FILENO)
        std::cerr.flush();
    atf_utils_redirect(fd, path.c_str());
}

void
atf::utils::wait(const pid_t pid, const int exitstatus,
                 const std::string& expout, const std::string& experr)
{
    atf_utils_wait(pid, exitstatus, expout.c_str(), experr.c_str());
}
@


1.1.1.1
log
@Import atf 0.17:

Experimental version released on February 14th, 2013.

* Added the atf_utils_cat_file, atf_utils_compare_file,
  atf_utils_copy_file, atf_utils_create_file, atf_utils_file_exists,
  atf_utils_fork, atf_utils_grep_file, atf_utils_grep_string,
  atf_utils_readline, atf_utils_redirect and atf_utils_wait utility
  functions to atf-c-api.  Documented the already-public
  atf_utils_free_charpp function.

* Added the cat_file, compare_file, copy_file, create_file, file_exists,
  fork, grep_collection, grep_file, grep_string, redirect and wait
  functions to the atf::utils namespace of atf-c++-api.  These are
  wrappers around the same functions added to the atf-c-api library.

* Added the ATF_CHECK_MATCH, ATF_CHECK_MATCH_MSG, ATF_REQUIRE_MATCH and
  ATF_REQUIRE_MATCH_MSG macros to atf-c to simplify the validation of a
  string against a regular expression.

* Miscellaneous fixes for manpage typos and compilation problems with
  clang.

* Added caching of the results of those configure tests that rely on
  executing a test program.  This should help crossbuild systems by
  providing a mechanism to pre-specify what the results should be.

* PR bin/45690: Make atf-report convert any non-printable characters to
  a plain-text representation (matching their corresponding hexadecimal
  entities) in XML output files.  This is to prevent the output of test
  cases from breaking xsltproc later.
@
text
@@


1.1.1.1.12.1
log
@file utils.cpp was added on branch yamt-pagecache on 2014-05-22 15:40:11 +0000
@
text
@d1 104
@


1.1.1.1.12.2
log
@sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")
@
text
@a0 104
//
// Automated Testing Framework (atf)
//
// Copyright (c) 2007 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.
//

extern "C" {
#include "atf-c/utils.h"
}

#include <cstdlib>
#include <iostream>

#include "utils.hpp"

void
atf::utils::cat_file(const std::string& path, const std::string& prefix)
{
    atf_utils_cat_file(path.c_str(), prefix.c_str());
}

void
atf::utils::copy_file(const std::string& source, const std::string& destination)
{
    atf_utils_copy_file(source.c_str(), destination.c_str());
}

bool
atf::utils::compare_file(const std::string& path, const std::string& contents)
{
    return atf_utils_compare_file(path.c_str(), contents.c_str());
}

void
atf::utils::create_file(const std::string& path, const std::string& contents)
{
    atf_utils_create_file(path.c_str(), "%s", contents.c_str());
}

bool
atf::utils::file_exists(const std::string& path)
{
    return atf_utils_file_exists(path.c_str());
}

pid_t
atf::utils::fork(void)
{
    std::cout.flush();
    std::cerr.flush();
    return atf_utils_fork();
}

bool
atf::utils::grep_file(const std::string& regex, const std::string& path)
{
    return atf_utils_grep_file("%s", path.c_str(), regex.c_str());
}

bool
atf::utils::grep_string(const std::string& regex, const std::string& str)
{
    return atf_utils_grep_string("%s", str.c_str(), regex.c_str());
}

void
atf::utils::redirect(const int fd, const std::string& path)
{
    if (fd == STDOUT_FILENO)
        std::cout.flush();
    else if (fd == STDERR_FILENO)
        std::cerr.flush();
    atf_utils_redirect(fd, path.c_str());
}

void
atf::utils::wait(const pid_t pid, const int exitstatus,
                 const std::string& expout, const std::string& experr)
{
    atf_utils_wait(pid, exitstatus, expout.c_str(), experr.c_str());
}
@


1.1.1.1.4.1
log
@file utils.cpp was added on branch tls-maxphys on 2013-02-25 00:24:54 +0000
@
text
@d1 104
@


1.1.1.1.4.2
log
@resync with head
@
text
@a0 104
//
// Automated Testing Framework (atf)
//
// Copyright (c) 2007 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.
//

extern "C" {
#include "atf-c/utils.h"
}

#include <cstdlib>
#include <iostream>

#include "utils.hpp"

void
atf::utils::cat_file(const std::string& path, const std::string& prefix)
{
    atf_utils_cat_file(path.c_str(), prefix.c_str());
}

void
atf::utils::copy_file(const std::string& source, const std::string& destination)
{
    atf_utils_copy_file(source.c_str(), destination.c_str());
}

bool
atf::utils::compare_file(const std::string& path, const std::string& contents)
{
    return atf_utils_compare_file(path.c_str(), contents.c_str());
}

void
atf::utils::create_file(const std::string& path, const std::string& contents)
{
    atf_utils_create_file(path.c_str(), "%s", contents.c_str());
}

bool
atf::utils::file_exists(const std::string& path)
{
    return atf_utils_file_exists(path.c_str());
}

pid_t
atf::utils::fork(void)
{
    std::cout.flush();
    std::cerr.flush();
    return atf_utils_fork();
}

bool
atf::utils::grep_file(const std::string& regex, const std::string& path)
{
    return atf_utils_grep_file("%s", path.c_str(), regex.c_str());
}

bool
atf::utils::grep_string(const std::string& regex, const std::string& str)
{
    return atf_utils_grep_string("%s", str.c_str(), regex.c_str());
}

void
atf::utils::redirect(const int fd, const std::string& path)
{
    if (fd == STDOUT_FILENO)
        std::cout.flush();
    else if (fd == STDERR_FILENO)
        std::cerr.flush();
    atf_utils_redirect(fd, path.c_str());
}

void
atf::utils::wait(const pid_t pid, const int exitstatus,
                 const std::string& expout, const std::string& experr)
{
    atf_utils_wait(pid, exitstatus, expout.c_str(), experr.c_str());
}
@


