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