Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/atf/atf-c++/utils.hpp
39507 views
1
// Copyright (c) 2007 The NetBSD Foundation, Inc.
2
// All rights reserved.
3
//
4
// Redistribution and use in source and binary forms, with or without
5
// modification, are permitted provided that the following conditions
6
// are met:
7
// 1. Redistributions of source code must retain the above copyright
8
// notice, this list of conditions and the following disclaimer.
9
// 2. Redistributions in binary form must reproduce the above copyright
10
// notice, this list of conditions and the following disclaimer in the
11
// documentation and/or other materials provided with the distribution.
12
//
13
// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
14
// CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
15
// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17
// IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
18
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
20
// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
22
// IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
24
// IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
26
#if !defined(ATF_CXX_UTILS_HPP)
27
#define ATF_CXX_UTILS_HPP
28
29
extern "C" {
30
#include <unistd.h>
31
}
32
33
#include <string>
34
35
namespace atf {
36
namespace utils {
37
38
void cat_file(const std::string&, const std::string&);
39
bool compare_file(const std::string&, const std::string&);
40
void copy_file(const std::string&, const std::string&);
41
void create_file(const std::string&, const std::string&);
42
bool file_exists(const std::string&);
43
pid_t fork(void);
44
void reset_resultsfile(void);
45
bool grep_file(const std::string&, const std::string&);
46
bool grep_string(const std::string&, const std::string&);
47
void redirect(const int, const std::string&);
48
void wait(const pid_t, const int, const std::string&, const std::string&);
49
50
template< typename Collection >
51
bool
52
grep_collection(const std::string& regexp, const Collection& collection)
53
{
54
for (typename Collection::const_iterator iter = collection.begin();
55
iter != collection.end(); ++iter) {
56
if (grep_string(regexp, *iter))
57
return true;
58
}
59
return false;
60
}
61
62
} // namespace utils
63
} // namespace atf
64
65
#endif // !defined(ATF_CXX_UTILS_HPP)
66
67