Changeset - d28d5d62b684
[Not reviewed]
default
0 3 2
Nathan Brink (binki) - 17 years ago 2009-02-28 20:24:33
ohnobinki@ohnopublishing.net
support for tests
5 files changed with 131 insertions and 17 deletions:
0 comments (0 inline, 0 general)
INSTALL
Show inline comments
 
Installation Instructions
 
*************************
 

	
 
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
 
2006, 2007 Free Software Foundation, Inc.
 
2006, 2007, 2008 Free Software Foundation, Inc.
 

	
 
This file is free documentation; the Free Software Foundation gives
 
unlimited permission to copy, distribute and modify it.
 

	
 
Basic Installation
 
==================
 
@@ -70,15 +70,15 @@ The simplest way to compile this package
 
  6. Often, you can also type `make uninstall' to remove the installed
 
     files again.
 

	
 
Compilers and Options
 
=====================
 

	
 
Some systems require unusual options for compilation or linking that the
 
`configure' script does not know about.  Run `./configure --help' for
 
details on some of the pertinent environment variables.
 
   Some systems require unusual options for compilation or linking that
 
the `configure' script does not know about.  Run `./configure --help'
 
for details on some of the pertinent environment variables.
 

	
 
   You can give `configure' initial values for configuration parameters
 
by setting variables in the command line or in the environment.  Here
 
is an example:
 

	
 
     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
 
@@ -97,12 +97,26 @@ source code in the directory that `confi
 

	
 
   With a non-GNU `make', it is safer to compile the package for one
 
architecture at a time in the source code directory.  After you have
 
installed the package for one architecture, use `make distclean' before
 
reconfiguring for another architecture.
 

	
 
   On MacOS X 10.5 and later systems, you can create libraries and
 
executables that work on multiple system types--known as "fat" or
 
"universal" binaries--by specifying multiple `-arch' options to the
 
compiler but only a single `-arch' option to the preprocessor.  Like
 
this:
 

	
 
     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
 
                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
 
                 CPP="gcc -E" CXXCPP="g++ -E"
 

	
 
   This is not guaranteed to produce working output in all cases, you
 
may have to build one architecture at a time and combine the results
 
using the `lipo' tool if you have problems.
 

	
 
Installation Names
 
==================
 

	
 
By default, `make install' installs the package's commands under
 
`/usr/local/bin', include files under `/usr/local/include', etc.  You
 
can specify an installation prefix other than `/usr/local' by giving
 
@@ -135,20 +149,42 @@ package recognizes.
 

	
 
   For packages that use the X Window System, `configure' can usually
 
find the X include and library files automatically, but if it doesn't,
 
you can use the `configure' options `--x-includes=DIR' and
 
`--x-libraries=DIR' to specify their locations.
 

	
 
Particular systems
 
==================
 

	
 
   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
 
CC is not installed, it is recommended to use the following options in
 
order to use an ANSI C compiler:
 

	
 
     ./configure CC="cc -Ae"
 

	
 
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
 

	
 
   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
 
parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
 
a workaround.  If GNU CC is not installed, it is therefore recommended
 
to try
 

	
 
     ./configure CC="cc"
 

	
 
and if that doesn't work, try
 

	
 
     ./configure CC="cc -nodtk"
 

	
 
Specifying the System Type
 
==========================
 

	
 
There may be some features `configure' cannot figure out automatically,
 
but needs to determine by the type of machine the package will run on.
 
Usually, assuming the package is built to be run on the _same_
 
architectures, `configure' can figure that out, but if it prints a
 
message saying it cannot guess the machine type, give it the
 
   There may be some features `configure' cannot figure out
 
automatically, but needs to determine by the type of machine the package
 
will run on.  Usually, assuming the package is built to be run on the
 
_same_ architectures, `configure' can figure that out, but if it prints
 
a message saying it cannot guess the machine type, give it the
 
`--build=TYPE' option.  TYPE can either be a short name for the system
 
type, such as `sun4', or a canonical name which has the form:
 

	
 
     CPU-COMPANY-SYSTEM
 

	
 
where SYSTEM can have one of these forms:
 
@@ -168,15 +204,15 @@ platform different from the build platfo
 
"host" platform (i.e., that on which the generated programs will
 
eventually be run) with `--host=TYPE'.
 

	
 
Sharing Defaults
 
================
 

	
 
If you want to set default values for `configure' scripts to share, you
 
can create a site shell script called `config.site' that gives default
 
values for variables like `CC', `cache_file', and `prefix'.
 
   If you want to set default values for `configure' scripts to share,
 
you can create a site shell script called `config.site' that gives
 
default values for variables like `CC', `cache_file', and `prefix'.
 
`configure' looks for `PREFIX/share/config.site' if it exists, then
 
`PREFIX/etc/config.site' if it exists.  Or, you can set the
 
`CONFIG_SITE' environment variable to the location of the site script.
 
A warning: not all `configure' scripts look for a site script.
 

	
 
Defining Variables
 
@@ -198,17 +234,25 @@ an Autoconf bug.  Until the bug is fixed
 

	
 
     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
 

	
 
`configure' Invocation
 
======================
 

	
 
`configure' recognizes the following options to control how it operates.
 
   `configure' recognizes the following options to control how it
 
operates.
 

	
 
`--help'
 
`-h'
 
     Print a summary of the options to `configure', and exit.
 
     Print a summary of all of the options to `configure', and exit.
 

	
 
`--help=short'
 
`--help=recursive'
 
     Print a summary of the options unique to this package's
 
     `configure', and exit.  The `short' variant lists options used
 
     only in the top level, while the `recursive' variant lists options
 
     also present in any nested packages.
 

	
 
`--version'
 
`-V'
 
     Print the version of Autoconf used to generate the `configure'
 
     script, and exit.
 

	
 
@@ -229,9 +273,19 @@ an Autoconf bug.  Until the bug is fixed
 
     messages will still be shown).
 

	
 
`--srcdir=DIR'
 
     Look for the package's source code in directory DIR.  Usually
 
     `configure' can determine that directory automatically.
 

	
 
`--prefix=DIR'
 
     Use DIR as the installation prefix.  *Note Installation Names::
 
     for more details, including other options available for fine-tuning
 
     the installation locations.
 

	
 
`--no-create'
 
`-n'
 
     Run the configure checks, but stop before creating any output
 
     files.
 

	
 
`configure' also accepts some other, not widely useful, options.  Run
 
`configure --help' for more details.
 

	
configure.ac
Show inline comments
 
@@ -16,23 +16,26 @@
 
# along with DistRen.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
AC_PREREQ(2.61)
 
AC_INIT([distren],[0.0],[ohnobinki@ohnopublishing.net])
 
AC_CONFIG_SRCDIR([src/server/distrend.c])
 

	
 
AM_INIT_AUTOMAKE
 

	
 
AC_PROG_CC
 
AC_PROG_LIBTOOL
 

	
 
AM_INIT_AUTOMAKE
 
AM_PROG_CC_C_O
 
AM_PATH_CHECK
 

	
 
PKG_PROG_PKG_CONFIG(0.17.2)
 

	
 
PKG_CHECK_MODULES(DISTLIBS, libconfuse >= 2.6)
 

	
 
AC_CONFIG_FILES([Makefile
 
src/Makefile
 
src/common/Makefile
 
src/server/Makefile
 
src/client/Makefile
 
src/tests/Makefile
 
])
 

	
 
AC_OUTPUT
src/Makefile.am
Show inline comments
 
SUBDIRS = common server client
 
SUBDIRS = common server client . tests
src/tests/Makefile.am
Show inline comments
 
new file 100644
 
TESTS=check_execio
 
check_PROGRAMS=check_execio
 
check_execio_SOURCES = check_execio.c
 
check_execio_CFLAGS = @CHECK_CFLAGS@ -I$(top_builddir)/src/common
 
check_execio_LDADD = $(top_builddir)/src/common/libdistren.la @CHECK_LIBS@
src/tests/check_execio.c
Show inline comments
 
new file 100644
 
/*
 
  Copyright 2008 Nathan Phillip Brink, Ethan Zonca
 

	
 
  This file is a part of DistRen.
 

	
 
  DistRen is free software: you can redistribute it and/or modify
 
  it under the terms of the GNU Affero General Public License as published by
 
  the Free Software Foundation, either version 3 of the License, or
 
  (at your option) any later version.
 

	
 
  DistRen is distributed in the hope that it will be useful,
 
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
  GNU Affero General Public License for more details.
 

	
 
  You should have received a copy of the GNU Affero General Public License
 
  along with DistRen.  If not, see <http://www.gnu.org/licenses/>.
 
*/
 

	
 
#include "execio.h"
 

	
 
#include <check.h>
 

	
 
START_TEST (execio)
 
{
 
  struct execio *eio;
 
  char *echoargv[] = 
 
    {
 
      "echo",
 
      "test"
 
    };
 

	
 
  char inbuf[20];
 
  size_t bytesread;
 
  
 
  fail_unless(execio_open(&eio, echoargv[0], echoargv) == 0,
 
	      "execio_open failed");
 
  
 
  fail_unless(execio_read(eio, inbuf, sizeof(inbuf) - 1, &bytesread) == 0,
 
	      "error using execio_read\n");
 
  
 
  fail_unless(execio_close(eio) == 0,
 
	      "error using execio_close\n");
 
}
 
END_TEST
 

	
 
int main(int argc, char *argv[])
 
{
 
  return 0;
 
  /* see http://check.sourceforge.net/doc/check.html/check_6.html#SEC6 */
 
}
 

	
0 comments (0 inline, 0 general)