140b1a6e6Sjoerg /*- 2*ed66d5dbSchristos * SPDX-License-Identifier: BSD-2-Clause 3*ed66d5dbSchristos * 440b1a6e6Sjoerg * Copyright (c) 2003-2007 Tim Kientzle 540b1a6e6Sjoerg * All rights reserved. 640b1a6e6Sjoerg */ 740b1a6e6Sjoerg #include "test.h" 840b1a6e6Sjoerg 940b1a6e6Sjoerg /* 1040b1a6e6Sjoerg * This first test does basic sanity checks on the environment. For 1140b1a6e6Sjoerg * most of these, we just exit on failure. 1240b1a6e6Sjoerg */ 1340b1a6e6Sjoerg #if !defined(_WIN32) || defined(__CYGWIN__) 1440b1a6e6Sjoerg #define DEV_NULL "/dev/null" 1540b1a6e6Sjoerg #else 1640b1a6e6Sjoerg #define DEV_NULL "NUL" 1740b1a6e6Sjoerg #endif 1840b1a6e6Sjoerg 1940b1a6e6Sjoerg DEFINE_TEST(test_0) 2040b1a6e6Sjoerg { 2140b1a6e6Sjoerg struct stat st; 2240b1a6e6Sjoerg 2340b1a6e6Sjoerg failure("File %s does not exist?!", testprog); 2440b1a6e6Sjoerg if (!assertEqualInt(0, stat(testprogfile, &st))) { 2540b1a6e6Sjoerg fprintf(stderr, 2640b1a6e6Sjoerg "\nFile %s does not exist; aborting test.\n\n", 2740b1a6e6Sjoerg testprog); 2840b1a6e6Sjoerg exit(1); 2940b1a6e6Sjoerg } 3040b1a6e6Sjoerg 3140b1a6e6Sjoerg failure("%s is not executable?!", testprog); 3240b1a6e6Sjoerg if (!assert((st.st_mode & 0111) != 0)) { 3340b1a6e6Sjoerg fprintf(stderr, 3440b1a6e6Sjoerg "\nFile %s not executable; aborting test.\n\n", 3540b1a6e6Sjoerg testprog); 3640b1a6e6Sjoerg exit(1); 3740b1a6e6Sjoerg } 3840b1a6e6Sjoerg 3940b1a6e6Sjoerg /* 4040b1a6e6Sjoerg * Try to successfully run the program; this requires that 4140b1a6e6Sjoerg * we know some option that will succeed. 4240b1a6e6Sjoerg */ 4340b1a6e6Sjoerg if (0 != systemf("%s --version >" DEV_NULL, testprog)) { 44eb896107Schristos failure("Unable to successfully run: %s --version\n", testprog); 4540b1a6e6Sjoerg assert(0); 4640b1a6e6Sjoerg } 4740b1a6e6Sjoerg 4840b1a6e6Sjoerg /* TODO: Ensure that our reference files are available. */ 4940b1a6e6Sjoerg } 50