Remove Perl testing framework

Dimitrie O. Paun dpaun at rogers.com
Thu Nov 7 19:48:50 CST 2002


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.




More information about the wine-patches mailing list