Folks, As discussed before, we decided that if one of the frameworks is not going to be used extensively, we're going to remove it to avoid confusion. Now that I looked inside programs/winetest/ I feel a bit bad suggesting it because there is quite a bit of nice code in there. But this is the right thing to do, so... (if need be to revive it in the future, it's always available in the CVS histroy). Now, in the process, I translated the 2 helper scripts used by the tests to Bourne Shell, so we no longer dependent on Perl to run the tests, which was one of the problems (I understand) under Windows. In any case, this minimizes the dependencies, so it can't be bad :) Don't worry, the conversion has not resulted in less readable code. In fact, make_ctests became simpler. After applying the patch, you can simply do a: cvs rm -f programs/winetest/* ChangeLog Remove the (unused) Perl testing framework. Index: Make.rules.in =================================================================== RCS file: /var/cvs/wine/Make.rules.in,v retrieving revision 1.131 diff -u -r1.131 Make.rules.in --- Make.rules.in 19 Oct 2002 17:15:00 -0000 1.131 +++ Make.rules.in 7 Nov 2002 23:39:28 -0000 @@ -64,7 +64,7 @@ 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 @@ -135,9 +135,6 @@ $(LINT) -c $(ALLLINTFLAGS) $< || ( $(RM) $@ && exit 1 ) .c.ok: - $(RUNTEST) $(RUNTESTFLAGS) $< && touch $@ - -.pl.ok: $(RUNTEST) $(RUNTESTFLAGS) $< && touch $@ # 'all' target first in case the enclosing Makefile didn't define any target Index: dlls/Maketest.rules.in =================================================================== RCS file: /var/cvs/wine/dlls/Maketest.rules.in,v retrieving revision 1.8 diff -u -r1.8 Maketest.rules.in --- dlls/Maketest.rules.in 30 Oct 2002 20:36:21 -0000 1.8 +++ dlls/Maketest.rules.in 8 Nov 2002 01:16:03 -0000 @@ -45,7 +45,7 @@ # 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 --- /dev/null 2002-08-30 19:31:37.000000000 -0400 +++ tools/make_ctests 2002-11-07 20:29:24.000000000 -0500 @@ -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="${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="${file%.c}" + echo " { \"$test\", func_$test }," +done + +cat <<EOF + { 0, 0 } +}; + +#define WINETEST_WANT_MAIN +#include "wine/test.h" +EOF --- /dev/null 2002-08-30 19:31:37.000000000 -0400 +++ tools/runtest 2002-11-07 19:41:40.000000000 -0500 @@ -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 + ;; + -P) + shift; platform="$1" + ;; + -M) + shift; modules="$1" + ;; + -T) + shift; topobjdir="$1" + if ! [ -d "$topobjdir" ]; then usage; fi + ;; + *) + infile="$1" + esac + shift +done + +# we must have found an input file +if ! [ -f "$infile" ]; then usage; fi + +# set program to the .c file base name if not specified otherwise +if [ -z "%program" ]; then + program="${infile%.c}" +fi + +# check/detect topobjdir +if [ -n "$topobjdir" ]; then + if ! [ -f "$topobjdir/server/wineserver" ]; then + 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" +fi +LD_LIBRARY_PATH="$topobjdir:$LD_LIBRARY_PATH" +WINEDLLPATH="$topobjdir/dlls:$topobjdir/programs" +WINESERVER="$topobjdir/server/wineserver" +WINELOADER="$topobjdir/wine" +WINETEST_PLATFORM=${platform:-wine} + +export LD_LIBRARY_PATH WINEDLLPATH WINESERVER WINELOADER WINETEST_PLATFORM +"$WINELOADER" "$program" "$infile" "$@" + -- Dimi.