From deccfeec9ad808f436efd8fb4746211c7db17243 Mon Sep 17 00:00:00 2001
From: Alexandre Julliard <julliard@winehq.org>
Date: Thu, 28 Aug 2008 12:17:42 +0200
Subject: [PATCH] winetest: Build the test list from the makefile instead of
 make_makefiles.

---
 .gitignore                    | 87 +---------------------------------
 programs/winetest/Makefile.in | 11 ++++-
 programs/winetest/winetest.rc | 88 +----------------------------------
 tools/make_makefiles          | 32 ++-----------
 4 files changed, 15 insertions(+), 203 deletions(-)

diff --git a/.gitignore b/.gitignore
index 0f2152c1a7a..50351514356 100644
--- a/.gitignore
+++ b/.gitignore
@@ -257,92 +257,9 @@ programs/winefile/winefile
 programs/winemenubuilder/winemenubuilder
 programs/winemine/winemine
 programs/winepath/winepath
-programs/winetest/advapi32_test.exe
-programs/winetest/advpack_test.exe
-programs/winetest/browseui_test.exe
-programs/winetest/cabinet_test.exe
-programs/winetest/comcat_test.exe
-programs/winetest/comctl32_test.exe
-programs/winetest/comdlg32_test.exe
-programs/winetest/credui_test.exe
-programs/winetest/crypt32_test.exe
-programs/winetest/cryptnet_test.exe
-programs/winetest/d3d8_test.exe
-programs/winetest/d3d9_test.exe
-programs/winetest/d3drm_test.exe
-programs/winetest/d3dx8_test.exe
-programs/winetest/d3dx9_36_test.exe
-programs/winetest/d3dxof_test.exe
-programs/winetest/ddraw_test.exe
-programs/winetest/dinput_test.exe
-programs/winetest/dnsapi_test.exe
-programs/winetest/dplayx_test.exe
-programs/winetest/dsound_test.exe
-programs/winetest/fusion_test.exe
-programs/winetest/gdi32_test.exe
-programs/winetest/gdiplus_test.exe
-programs/winetest/hlink_test.exe
-programs/winetest/imm32_test.exe
-programs/winetest/inetcomm_test.exe
-programs/winetest/inetmib1_test.exe
-programs/winetest/infosoft_test.exe
-programs/winetest/iphlpapi_test.exe
-programs/winetest/itss_test.exe
-programs/winetest/jscript_test.exe
-programs/winetest/kernel32_test.exe
-programs/winetest/localspl_test.exe
-programs/winetest/localui_test.exe
-programs/winetest/lz32_test.exe
-programs/winetest/mapi32_test.exe
-programs/winetest/mlang_test.exe
-programs/winetest/msacm32_test.exe
-programs/winetest/mscms_test.exe
-programs/winetest/mshtml_test.exe
-programs/winetest/msi_test.exe
-programs/winetest/mstask_test.exe
-programs/winetest/msvcrt_test.exe
-programs/winetest/msvcrtd_test.exe
-programs/winetest/msxml3_test.exe
-programs/winetest/netapi32_test.exe
-programs/winetest/ntdll_test.exe
-programs/winetest/ntdsapi_test.exe
-programs/winetest/ntprint_test.exe
-programs/winetest/odbccp32_test.exe
-programs/winetest/ole32_test.exe
-programs/winetest/oleaut32_test.exe
-programs/winetest/opengl32_test.exe
-programs/winetest/pdh_test.exe
-programs/winetest/psapi_test.exe
-programs/winetest/qedit_test.exe
-programs/winetest/qmgr_test.exe
-programs/winetest/quartz_test.exe
-programs/winetest/rasapi32_test.exe
-programs/winetest/riched20_test.exe
-programs/winetest/riched32_test.exe
-programs/winetest/rpcrt4_test.exe
-programs/winetest/rsaenh_test.exe
-programs/winetest/schannel_test.exe
-programs/winetest/secur32_test.exe
-programs/winetest/serialui_test.exe
-programs/winetest/setupapi_test.exe
-programs/winetest/shdocvw_test.exe
-programs/winetest/shell32_test.exe
-programs/winetest/shlwapi_test.exe
-programs/winetest/snmpapi_test.exe
-programs/winetest/spoolss_test.exe
-programs/winetest/urlmon_test.exe
-programs/winetest/user32_test.exe
-programs/winetest/userenv_test.exe
-programs/winetest/usp10_test.exe
-programs/winetest/uxtheme_test.exe
-programs/winetest/version_test.exe
+programs/winetest/*_test.exe
+programs/winetest/tests.rc
 programs/winetest/winetest
-programs/winetest/winhttp_test.exe
-programs/winetest/wininet_test.exe
-programs/winetest/winmm_test.exe
-programs/winetest/winspool.drv_test.exe
-programs/winetest/wintrust_test.exe
-programs/winetest/ws2_32_test.exe
 programs/winevdm/winevdm
 programs/winhlp32/macro.lex.yy.c
 programs/winhlp32/winhlp32
diff --git a/programs/winetest/Makefile.in b/programs/winetest/Makefile.in
index 1f1ce84f819..d153c047bee 100644
--- a/programs/winetest/Makefile.in
+++ b/programs/winetest/Makefile.in
@@ -31,8 +31,13 @@ TESTBINS = $(ALL_TEST_DIRS:%/tests=%_test.exe)
 
 winetest.res: $(TESTBINS)
 
+tests.rc: Makefile.in $(TOPOBJDIR)/config.status
+	(for i in $(TESTBINS); do echo "$$i TESTRES \"$$i\""; done) >$@ || ($(RM) $@ && false)
+
 clean::
-	$(RM) dist.res winetest-dist winetest-dist.exe $(TESTBINS)
+	$(RM) tests.rc dist.res winetest-dist winetest-dist.exe $(TESTBINS)
+
+depend: tests.rc
 
 # Rules for building distributable executable
 
@@ -49,6 +54,8 @@ winetest-dist: $(WINEWRAPPER)
 winetest-dist.exe: $(OBJS) dist.res.o Makefile.in
 	$(CC) $(APPMODE) $(OBJS) dist.res.o -o $@ $(DELAYIMPORTS:%=-l%) $(ALL_LIBS)
 
-dist.res: winetest.rc build.nfo tests.url winetest.ico $(TESTBINS)
+dist.res: winetest.rc tests.rc build.nfo tests.url winetest.ico $(TESTBINS)
 
 @DEPENDENCIES@  # everything below this line is overwritten by make depend
+
+winetest.res: tests.rc
diff --git a/programs/winetest/winetest.rc b/programs/winetest/winetest.rc
index 4aaa099d684..a28e0d7099d 100644
--- a/programs/winetest/winetest.rc
+++ b/programs/winetest/winetest.rc
@@ -83,90 +83,4 @@ END
 /* @makedep: winetest.ico */
 IDI_WINE ICON "winetest.ico"
 
-/* list of tests (automatically generated by make_makefiles) */
-
-advapi32_test.exe TESTRES "advapi32_test.exe"
-advpack_test.exe TESTRES "advpack_test.exe"
-browseui_test.exe TESTRES "browseui_test.exe"
-cabinet_test.exe TESTRES "cabinet_test.exe"
-comcat_test.exe TESTRES "comcat_test.exe"
-comctl32_test.exe TESTRES "comctl32_test.exe"
-comdlg32_test.exe TESTRES "comdlg32_test.exe"
-credui_test.exe TESTRES "credui_test.exe"
-crypt32_test.exe TESTRES "crypt32_test.exe"
-cryptnet_test.exe TESTRES "cryptnet_test.exe"
-d3d8_test.exe TESTRES "d3d8_test.exe"
-d3d9_test.exe TESTRES "d3d9_test.exe"
-d3drm_test.exe TESTRES "d3drm_test.exe"
-d3dx8_test.exe TESTRES "d3dx8_test.exe"
-d3dx9_36_test.exe TESTRES "d3dx9_36_test.exe"
-d3dxof_test.exe TESTRES "d3dxof_test.exe"
-ddraw_test.exe TESTRES "ddraw_test.exe"
-dinput_test.exe TESTRES "dinput_test.exe"
-dnsapi_test.exe TESTRES "dnsapi_test.exe"
-dplayx_test.exe TESTRES "dplayx_test.exe"
-dsound_test.exe TESTRES "dsound_test.exe"
-fusion_test.exe TESTRES "fusion_test.exe"
-gdi32_test.exe TESTRES "gdi32_test.exe"
-gdiplus_test.exe TESTRES "gdiplus_test.exe"
-hlink_test.exe TESTRES "hlink_test.exe"
-imm32_test.exe TESTRES "imm32_test.exe"
-inetcomm_test.exe TESTRES "inetcomm_test.exe"
-inetmib1_test.exe TESTRES "inetmib1_test.exe"
-infosoft_test.exe TESTRES "infosoft_test.exe"
-iphlpapi_test.exe TESTRES "iphlpapi_test.exe"
-itss_test.exe TESTRES "itss_test.exe"
-jscript_test.exe TESTRES "jscript_test.exe"
-kernel32_test.exe TESTRES "kernel32_test.exe"
-localspl_test.exe TESTRES "localspl_test.exe"
-localui_test.exe TESTRES "localui_test.exe"
-lz32_test.exe TESTRES "lz32_test.exe"
-mapi32_test.exe TESTRES "mapi32_test.exe"
-mlang_test.exe TESTRES "mlang_test.exe"
-msacm32_test.exe TESTRES "msacm32_test.exe"
-mscms_test.exe TESTRES "mscms_test.exe"
-mshtml_test.exe TESTRES "mshtml_test.exe"
-msi_test.exe TESTRES "msi_test.exe"
-mstask_test.exe TESTRES "mstask_test.exe"
-msvcrt_test.exe TESTRES "msvcrt_test.exe"
-msvcrtd_test.exe TESTRES "msvcrtd_test.exe"
-msxml3_test.exe TESTRES "msxml3_test.exe"
-netapi32_test.exe TESTRES "netapi32_test.exe"
-ntdll_test.exe TESTRES "ntdll_test.exe"
-ntdsapi_test.exe TESTRES "ntdsapi_test.exe"
-ntprint_test.exe TESTRES "ntprint_test.exe"
-odbccp32_test.exe TESTRES "odbccp32_test.exe"
-ole32_test.exe TESTRES "ole32_test.exe"
-oleaut32_test.exe TESTRES "oleaut32_test.exe"
-opengl32_test.exe TESTRES "opengl32_test.exe"
-pdh_test.exe TESTRES "pdh_test.exe"
-psapi_test.exe TESTRES "psapi_test.exe"
-qedit_test.exe TESTRES "qedit_test.exe"
-qmgr_test.exe TESTRES "qmgr_test.exe"
-quartz_test.exe TESTRES "quartz_test.exe"
-rasapi32_test.exe TESTRES "rasapi32_test.exe"
-riched20_test.exe TESTRES "riched20_test.exe"
-riched32_test.exe TESTRES "riched32_test.exe"
-rpcrt4_test.exe TESTRES "rpcrt4_test.exe"
-rsaenh_test.exe TESTRES "rsaenh_test.exe"
-schannel_test.exe TESTRES "schannel_test.exe"
-secur32_test.exe TESTRES "secur32_test.exe"
-serialui_test.exe TESTRES "serialui_test.exe"
-setupapi_test.exe TESTRES "setupapi_test.exe"
-shdocvw_test.exe TESTRES "shdocvw_test.exe"
-shell32_test.exe TESTRES "shell32_test.exe"
-shlwapi_test.exe TESTRES "shlwapi_test.exe"
-snmpapi_test.exe TESTRES "snmpapi_test.exe"
-spoolss_test.exe TESTRES "spoolss_test.exe"
-urlmon_test.exe TESTRES "urlmon_test.exe"
-user32_test.exe TESTRES "user32_test.exe"
-userenv_test.exe TESTRES "userenv_test.exe"
-usp10_test.exe TESTRES "usp10_test.exe"
-uxtheme_test.exe TESTRES "uxtheme_test.exe"
-version_test.exe TESTRES "version_test.exe"
-winhttp_test.exe TESTRES "winhttp_test.exe"
-wininet_test.exe TESTRES "wininet_test.exe"
-winmm_test.exe TESTRES "winmm_test.exe"
-winspool.drv_test.exe TESTRES "winspool.drv_test.exe"
-wintrust_test.exe TESTRES "wintrust_test.exe"
-ws2_32_test.exe TESTRES "ws2_32_test.exe"
+#include "tests.rc"
diff --git a/tools/make_makefiles b/tools/make_makefiles
index 14345a90fe1..143805bafe2 100755
--- a/tools/make_makefiles
+++ b/tools/make_makefiles
@@ -74,7 +74,9 @@ my @ignores = (
     "dlls/*/tests/*crosstest.exe",
     "dlls/*/tests/testlist.c",
     "include/config.h",
-    "include/stamp-h"
+    "include/stamp-h",
+    "programs/winetest/tests.rc",
+    "programs/winetest/*_test.exe",
 );
 
 # Source files and their resulting target to ignore
@@ -207,36 +209,11 @@ sub parse_makefile($)
             $make{$1} = \@list;
             next;
         }
-        if (/^\#\s*MKDLL_SKIP/ || /^\#\s*MKPROG_SKIP/)
-        {
-            $make{"=skip"} = 1;
-            next;
-        }
     }
     return %make;
 }
 
 
-################################################################
-# update the tests list in programs/winetest/winetest.rc
-
-sub update_winetest(@)
-{
-    my (@tests, @lines);
-
-    foreach my $file (@_)
-    {
-        if ($file =~ /^dlls\/(.*)\/tests\/Makefile/) { push @tests, $1; }
-    }
-
-    replace_in_file( "programs/winetest/winetest.rc", ' TESTRES ', undef,
-                     map { $_ . "_test.exe TESTRES \"" . $_ . "_test.exe\"\n"; } sort @tests );
-
-    # return a list of test exe files for .gitignore
-    return map { "programs/winetest/" . $_ . "_test.exe"; } sort @tests;
-}
-
-
 ################################################################
 # update the makefile list in configure.ac
 
@@ -296,7 +273,6 @@ sub update_ignores(@)
             next unless defined $makefile{$pattern[0]};
             push @list, map { (my $ret = $_) =~ s/$pattern[1]$/$pattern[2]/; $ret; } @{$makefile{$pattern[0]}};
         }
-        push @list, @{$makefile{"RC_BINARIES"}} if defined $makefile{"RC_BINARIES"};
         foreach my $f (@list)
         {
             push @ignores, $makefile{"=dir"} . $f unless $f =~ /\$\(.*\)/;  # skip make variables
@@ -317,7 +293,6 @@ sub update_dlls(@)
     foreach my $make (@_)
     {
         my %makefile = %{$makefiles{$make}};
-        next if defined $makefile{"=skip"};
         next if ($makefile{"=rules"} eq $makerules{"MAKE_TEST_RULES"});
 
         next unless defined $makefile{"MODULE"};
@@ -592,6 +567,5 @@ foreach my $file (sort values %makerules, @makefiles)
 
 update_makefiles( @makefiles );
 push @ignores, update_ignores( @makefiles );
-push @ignores, update_winetest( @makefiles );
 push @ignores, update_dlls( sort grep /^dlls\//, @makefiles );
 update_gitignore( @ignores );
-- 
GitLab