1*00b67f09SDavid van Moolenbroekdnl 2*00b67f09SDavid van Moolenbroekdnl Automated Testing Framework (atf) 3*00b67f09SDavid van Moolenbroekdnl 4*00b67f09SDavid van Moolenbroekdnl Copyright (c) 2007 The NetBSD Foundation, Inc. 5*00b67f09SDavid van Moolenbroekdnl All rights reserved. 6*00b67f09SDavid van Moolenbroekdnl 7*00b67f09SDavid van Moolenbroekdnl Redistribution and use in source and binary forms, with or without 8*00b67f09SDavid van Moolenbroekdnl modification, are permitted provided that the following conditions 9*00b67f09SDavid van Moolenbroekdnl are met: 10*00b67f09SDavid van Moolenbroekdnl 1. Redistributions of source code must retain the above copyright 11*00b67f09SDavid van Moolenbroekdnl notice, this list of conditions and the following disclaimer. 12*00b67f09SDavid van Moolenbroekdnl 2. Redistributions in binary form must reproduce the above copyright 13*00b67f09SDavid van Moolenbroekdnl notice, this list of conditions and the following disclaimer in the 14*00b67f09SDavid van Moolenbroekdnl documentation and/or other materials provided with the distribution. 15*00b67f09SDavid van Moolenbroekdnl 16*00b67f09SDavid van Moolenbroekdnl THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 17*00b67f09SDavid van Moolenbroekdnl CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 18*00b67f09SDavid van Moolenbroekdnl INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19*00b67f09SDavid van Moolenbroekdnl MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20*00b67f09SDavid van Moolenbroekdnl IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 21*00b67f09SDavid van Moolenbroekdnl DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22*00b67f09SDavid van Moolenbroekdnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 23*00b67f09SDavid van Moolenbroekdnl GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24*00b67f09SDavid van Moolenbroekdnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25*00b67f09SDavid van Moolenbroekdnl IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 26*00b67f09SDavid van Moolenbroekdnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27*00b67f09SDavid van Moolenbroekdnl IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28*00b67f09SDavid van Moolenbroekdnl 29*00b67f09SDavid van Moolenbroek 30*00b67f09SDavid van MoolenbroekAC_DEFUN([ATF_CHECK_IN_STD], [ 31*00b67f09SDavid van Moolenbroek AC_MSG_CHECKING(whether $1 is in std) 32*00b67f09SDavid van Moolenbroek AC_COMPILE_IFELSE( 33*00b67f09SDavid van Moolenbroek [AC_LANG_PROGRAM([$2], [$3 return 0;])], 34*00b67f09SDavid van Moolenbroek AC_MSG_RESULT(yes) 35*00b67f09SDavid van Moolenbroek AC_DEFINE([HAVE_]translit($1, [a-z], [A-Z])[_IN_STD], [1], 36*00b67f09SDavid van Moolenbroek [Define to 1 if $1 is in std]), 37*00b67f09SDavid van Moolenbroek AC_MSG_RESULT(no) 38*00b67f09SDavid van Moolenbroek ) 39*00b67f09SDavid van Moolenbroek]) 40*00b67f09SDavid van Moolenbroek 41*00b67f09SDavid van MoolenbroekAC_DEFUN([ATF_CHECK_STD_PUTENV], [ 42*00b67f09SDavid van Moolenbroek ATF_CHECK_IN_STD([putenv], 43*00b67f09SDavid van Moolenbroek [#include <cstdio>], 44*00b67f09SDavid van Moolenbroek [std::putenv("a=b");] 45*00b67f09SDavid van Moolenbroek ) 46*00b67f09SDavid van Moolenbroek]) 47*00b67f09SDavid van Moolenbroek 48*00b67f09SDavid van MoolenbroekAC_DEFUN([ATF_CHECK_STD_SETENV], [ 49*00b67f09SDavid van Moolenbroek ATF_CHECK_IN_STD([setenv], 50*00b67f09SDavid van Moolenbroek [#include <cstdio>], 51*00b67f09SDavid van Moolenbroek [std::setenv("a", "b");] 52*00b67f09SDavid van Moolenbroek ) 53*00b67f09SDavid van Moolenbroek]) 54*00b67f09SDavid van Moolenbroek 55*00b67f09SDavid van MoolenbroekAC_DEFUN([ATF_CHECK_STD_SNPRINTF], [ 56*00b67f09SDavid van Moolenbroek ATF_CHECK_IN_STD([snprintf], 57*00b67f09SDavid van Moolenbroek [#include <cstdio>], 58*00b67f09SDavid van Moolenbroek [char buf; 59*00b67f09SDavid van Moolenbroek std::snprintf(&buf, 1, "");] 60*00b67f09SDavid van Moolenbroek ) 61*00b67f09SDavid van Moolenbroek]) 62*00b67f09SDavid van Moolenbroek 63*00b67f09SDavid van MoolenbroekAC_DEFUN([ATF_CHECK_STD_UNSETENV], [ 64*00b67f09SDavid van Moolenbroek ATF_CHECK_IN_STD([unsetenv], 65*00b67f09SDavid van Moolenbroek [#include <cstdio>], 66*00b67f09SDavid van Moolenbroek [std::unsetenv("a");] 67*00b67f09SDavid van Moolenbroek ) 68*00b67f09SDavid van Moolenbroek]) 69*00b67f09SDavid van Moolenbroek 70*00b67f09SDavid van MoolenbroekAC_DEFUN([ATF_CHECK_STD_VSNPRINTF], [ 71*00b67f09SDavid van Moolenbroek ATF_CHECK_IN_STD([vsnprintf], 72*00b67f09SDavid van Moolenbroek [#include <cstdarg> 73*00b67f09SDavid van Moolenbroek #include <cstdio>], 74*00b67f09SDavid van Moolenbroek [va_list ap; 75*00b67f09SDavid van Moolenbroek char* buf = NULL; 76*00b67f09SDavid van Moolenbroek const char* fmt = NULL; 77*00b67f09SDavid van Moolenbroek std::vsnprintf(buf, 0, fmt, ap);] 78*00b67f09SDavid van Moolenbroek ) 79*00b67f09SDavid van Moolenbroek]) 80