Rewrite make_ctests and runtest in shell.
This commit is contained in:
parent
69f74dbf0e
commit
e39e8a172b
|
@ -64,7 +64,7 @@ ALLLINTFLAGS = $(LINTFLAGS) $(DEFS) $(OPTIONS) $(DIVINCL)
|
|||
MKINSTALLDIRS= $(TOPSRCDIR)/tools/mkinstalldirs
|
||||
WINAPI_CHECK = $(TOPSRCDIR)/tools/winapi_check/winapi_check
|
||||
WINEWRAPPER = $(TOPSRCDIR)/tools/winewrapper
|
||||
RUNTEST = $(TOPSRCDIR)/programs/winetest/runtest
|
||||
RUNTEST = $(TOPSRCDIR)/tools/runtest
|
||||
WINEBUILD = $(TOOLSDIR)/tools/winebuild/winebuild
|
||||
MAKEDEP = $(TOOLSDIR)/tools/makedep
|
||||
WRC = $(TOOLSDIR)/tools/wrc/wrc
|
||||
|
@ -105,7 +105,7 @@ LINTS = $(C_SRCS:.c=.ln)
|
|||
|
||||
# Implicit rules
|
||||
|
||||
.SUFFIXES: .mc .rc .mc.rc .res .res.o .spec .spec.c .spec.def .pl .ok .cross.o
|
||||
.SUFFIXES: .mc .rc .mc.rc .res .res.o .spec .spec.c .spec.def .ok .cross.o
|
||||
|
||||
.c.o:
|
||||
$(CC) -c $(ALLCFLAGS) -o $@ $<
|
||||
|
@ -137,9 +137,6 @@ LINTS = $(C_SRCS:.c=.ln)
|
|||
.c.ok:
|
||||
$(RUNTEST) $(RUNTESTFLAGS) $< && touch $@
|
||||
|
||||
.pl.ok:
|
||||
$(RUNTEST) $(RUNTESTFLAGS) $< && touch $@
|
||||
|
||||
# 'all' target first in case the enclosing Makefile didn't define any target
|
||||
|
||||
all: Makefile
|
||||
|
|
|
@ -45,7 +45,7 @@ $(MODULE): $(OBJS) $(RCOBJS) Makefile.in
|
|||
# Rules for building test list
|
||||
|
||||
$(TESTLIST): Makefile.in
|
||||
$(TOPSRCDIR)/programs/winetest/make_ctests $(CTESTS) >$(TESTLIST) || $(RM) $(TESTLIST)
|
||||
$(TOPSRCDIR)/tools/make_ctests $(CTESTS) >$(TESTLIST) || $(RM) $(TESTLIST)
|
||||
|
||||
# Rules for checking that no imports are missing
|
||||
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Script to generate a C file containing a list of tests
|
||||
#
|
||||
# Copyright 2002 Alexandre Julliard
|
||||
# Copyright 2002 Dimitrie O. Paun
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library 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
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
cat <<EOF
|
||||
/* Automatically generated file; DO NOT EDIT!! */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "winbase.h"
|
||||
|
||||
EOF
|
||||
|
||||
for file in "$@"; do
|
||||
test=`basename "$file" .c`
|
||||
echo "extern void func_$test(void);"
|
||||
done
|
||||
|
||||
cat <<EOF
|
||||
|
||||
struct test
|
||||
{
|
||||
const char *name;
|
||||
void (*func)(void);
|
||||
};
|
||||
|
||||
static const struct test winetest_testlist[] =
|
||||
{
|
||||
EOF
|
||||
|
||||
for file in "$@"; do
|
||||
test=`basename "$file" .c`
|
||||
echo " { \"$test\", func_$test },"
|
||||
done
|
||||
|
||||
cat <<EOF
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
#define WINETEST_WANT_MAIN
|
||||
#include "wine/test.h"
|
||||
EOF
|
|
@ -0,0 +1,116 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Wrapper script to run tests from inside the Wine tree
|
||||
#
|
||||
# Usage: runtest [options] input_file
|
||||
#
|
||||
# Copyright 2002 Alexandre Julliard
|
||||
# Copyright 2002 Dimitrie O. Paun
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library 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
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
usage()
|
||||
{
|
||||
cat >2 <<EOF
|
||||
|
||||
Usage: $0 [options] input_file
|
||||
|
||||
Options:
|
||||
-q quiet mode
|
||||
-v verbose mode (can be specified multiple times)
|
||||
-s announce successful tests
|
||||
-p prog name of the program to run for C tests
|
||||
-P name set the current platform name
|
||||
-M names set the module names to be tested
|
||||
-T dir set Wine tree top directory (autodetected if not specified)
|
||||
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Default values
|
||||
platform=$WINETEST_PLATFORM
|
||||
WINETEST_DEBUG=${WINETEST_DEBUG:-1}
|
||||
|
||||
# parse command-line options
|
||||
while [ "$#" != 0 ]; do
|
||||
case "$1" in
|
||||
-h)
|
||||
usage
|
||||
;;
|
||||
-p)
|
||||
shift; program="$1"
|
||||
;;
|
||||
-q)
|
||||
WINETEST_DEBUG=0
|
||||
;;
|
||||
-v)
|
||||
WINETEST_DEBUG=`expr $WINETEST_DEBUG + 1`
|
||||
;;
|
||||
-s)
|
||||
WINETEST_REPORT_SUCCESS=1
|
||||
export WINETEST_REPORT_SUCCESS
|
||||
;;
|
||||
-P)
|
||||
shift; platform="$1"
|
||||
;;
|
||||
-M)
|
||||
shift; modules="$1"
|
||||
;;
|
||||
-T)
|
||||
shift; topobjdir="$1"
|
||||
if [ -d "$topobjdir" ]; then :; else usage; fi
|
||||
;;
|
||||
*)
|
||||
infile="$1"
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# we must have found an input file
|
||||
if [ -f "$infile" ]; then :; else usage; fi
|
||||
|
||||
# set program to the .c file base name if not specified otherwise
|
||||
if [ -z "$program" ]; then
|
||||
program=`basename "$infile" .c`
|
||||
fi
|
||||
|
||||
# check/detect topobjdir
|
||||
if [ -n "$topobjdir" ]; then
|
||||
if [ -f "$topobjdir/server/wineserver" ]
|
||||
then :
|
||||
else
|
||||
echo "Wrong -T argument, $topobjdir/server/wineserver does not exist" 2>&1
|
||||
usage
|
||||
fi
|
||||
else
|
||||
if [ -f "./server/wineserver" ]; then topobjdir="."
|
||||
elif [ -f "../server/wineserver" ]; then topobjdir=".."
|
||||
elif [ -f "../../server/wineserver" ]; then topobjdir="../.."
|
||||
elif [ -f "../../../server/wineserver" ]; then topobjdir="../../.."
|
||||
fi
|
||||
fi
|
||||
|
||||
# set environment variables needed for Wine
|
||||
|
||||
if [ -n "$modules" ]; then
|
||||
WINEOPTIONS="$WINEOPTIONS --dll $modules=b"
|
||||
export WINEOPTIONS
|
||||
fi
|
||||
WINETEST_PLATFORM=${platform:-wine}
|
||||
export WINETEST_PLATFORM WINETEST_DEBUG
|
||||
|
||||
exec "$topobjdir/wine" "$program" "$infile" "$@"
|
Loading…
Reference in New Issue