1*e64fe029SMartin Matuska /*- 2*e64fe029SMartin Matuska * Copyright (c) 2003-2007 Tim Kientzle 3*e64fe029SMartin Matuska * All rights reserved. 4*e64fe029SMartin Matuska * 5*e64fe029SMartin Matuska * Redistribution and use in source and binary forms, with or without 6*e64fe029SMartin Matuska * modification, are permitted provided that the following conditions 7*e64fe029SMartin Matuska * are met: 8*e64fe029SMartin Matuska * 1. Redistributions of source code must retain the above copyright 9*e64fe029SMartin Matuska * notice, this list of conditions and the following disclaimer. 10*e64fe029SMartin Matuska * 2. Redistributions in binary form must reproduce the above copyright 11*e64fe029SMartin Matuska * notice, this list of conditions and the following disclaimer in the 12*e64fe029SMartin Matuska * documentation and/or other materials provided with the distribution. 13*e64fe029SMartin Matuska * 14*e64fe029SMartin Matuska * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR 15*e64fe029SMartin Matuska * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16*e64fe029SMartin Matuska * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17*e64fe029SMartin Matuska * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, 18*e64fe029SMartin Matuska * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19*e64fe029SMartin Matuska * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20*e64fe029SMartin Matuska * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21*e64fe029SMartin Matuska * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22*e64fe029SMartin Matuska * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23*e64fe029SMartin Matuska * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24*e64fe029SMartin Matuska */ 25*e64fe029SMartin Matuska #include "test.h" 26*e64fe029SMartin Matuska 27*e64fe029SMartin Matuska /* 28*e64fe029SMartin Matuska * This first test does basic sanity checks on the environment. For 29*e64fe029SMartin Matuska * most of these, we just exit on failure. 30*e64fe029SMartin Matuska */ 31*e64fe029SMartin Matuska #if !defined(_WIN32) || defined(__CYGWIN__) 32*e64fe029SMartin Matuska #define DEV_NULL "/dev/null" 33*e64fe029SMartin Matuska #else 34*e64fe029SMartin Matuska #define DEV_NULL "NUL" 35*e64fe029SMartin Matuska #endif 36*e64fe029SMartin Matuska 37*e64fe029SMartin Matuska DEFINE_TEST(test_0) 38*e64fe029SMartin Matuska { 39*e64fe029SMartin Matuska struct stat st; 40*e64fe029SMartin Matuska 41*e64fe029SMartin Matuska failure("File %s does not exist?!", testprog); 42*e64fe029SMartin Matuska if (!assertEqualInt(0, stat(testprogfile, &st))) { 43*e64fe029SMartin Matuska fprintf(stderr, 44*e64fe029SMartin Matuska "\nFile %s does not exist; aborting test.\n\n", 45*e64fe029SMartin Matuska testprog); 46*e64fe029SMartin Matuska exit(1); 47*e64fe029SMartin Matuska } 48*e64fe029SMartin Matuska 49*e64fe029SMartin Matuska failure("%s is not executable?!", testprog); 50*e64fe029SMartin Matuska if (!assert((st.st_mode & 0111) != 0)) { 51*e64fe029SMartin Matuska fprintf(stderr, 52*e64fe029SMartin Matuska "\nFile %s not executable; aborting test.\n\n", 53*e64fe029SMartin Matuska testprog); 54*e64fe029SMartin Matuska exit(1); 55*e64fe029SMartin Matuska } 56*e64fe029SMartin Matuska 57*e64fe029SMartin Matuska /* TODO: Ensure that our reference files are available. */ 58*e64fe029SMartin Matuska } 59