Um, I wrote those a while ago while playing with windows cmd scripting to mimic the *nix shell equivalents with the hope of having make tests run on win32 also. Since then I've probably used 10+ versions of libx.* and frankly haven't run those tests once, so no shock if it's broken.
I can't validate if those proposed changes are correct or not, it would be a good exerciise to properly implement the existing regression test on win32, but I rely on my own tests instead. If someone cares about this they should speak up, otherwise a disclaimer is perhaps in order, b/c to be honest I don't use 'em and the implementation certainly isn't maintained. --- Rush Manbert <[EMAIL PROTECTED]> wrote: > Hello, > > I have built libxml2 version 2.6.19 on Windows XP using the method > described in the win32 subdirectory. The library builds, but it fails if > I run the tests by specifying the tests target to nmake. > > After a lot of fooling around, I finally modified win32\Makefile.msvc so > I could see what was happening. > > I replaced lines 347 through 360 with the following: > @echo ## XPath regression tests part 2 > @for %%I in ($(XML_SRCDIR)\test\XPath\docs\*.*) do @( \ > @echo I: %%I &&\ > for %%J in ($(XML_SRCDIR)\test\XPath\tests\%%~nxI*.*) do @( \ > @echo J: %%J &&\ > if not exist $(XML_SRCDIR)\result\XPath\tests\%%~nxJ ( \ > $(BINDIR)\testXPath.exe -f -i %%I %%J > > $(XML_SRCDIR)\result\XPath\tests\%%~nxJ &&\ > findstr /C:"MEMORY ALLOCATED" .memdump | findstr > /C:"MEMORY ALLOCATED : 0" > nul \ > ) ELSE ( \ > @echo ELSE: &&\ > @echo testXPAth &&\ > $(BINDIR)\testXPAth.exe -f -i %%I %%J 2>&1 > > result.%%~nxJ &&\ > copy .memdump .memdump.%%~nxJ &\ > @echo findstr &&\ > findstr /C:"MEMORY ALLOCATED" .memdump | findstr > /C:"MEMORY ALLOCATED : 0">null &&\ > @echo fc &&\ > fc $(XML_SRCDIR)\result\XPath\tests\%%~nxJ result.%%~nxJ > >null & \ > @echo IF ERRORLEVEL: &\ > IF ERRORLEVEL 1 (echo Error: %%I %%J & exit 1) & \ > del result.%%~nxJ \ > )\ > )\ > ) > > With these changes, here is the interesting part of the output: > ## XPath regression tests > ## XPath regression tests part 2 > I: ..\test\XPath\docs\chapters > J: ..\test\XPath\tests\chaptersbase > ELSE: > testXPAth > 1 file(s) copied. > findstr > J: ..\test\XPath\tests\chaptersprefol > ELSE: > testXPAth > 1 file(s) copied. > findstr > I: ..\test\XPath\docs\id > J: ..\test\XPath\tests\idsimple > ELSE: > testXPAth > 1 file(s) copied. > findstr > I: ..\test\XPath\docs\simple > J: ..\test\XPath\tests\simpleabbr > ELSE: > testXPAth > 1 file(s) copied. > findstr > J: ..\test\XPath\tests\simplebase > ELSE: > testXPAth > 1 file(s) copied. > findstr > I: ..\test\XPath\docs\str > I: ..\test\XPath\docs\usr1 > J: ..\test\XPath\tests\usr1check > ELSE: > testXPAth > 1 file(s) copied. > findstr > I: ..\test\XPath\docs\vid > J: ..\test\XPath\tests\vidbase > ELSE: > testXPAth > 1 file(s) copied. > findstr > NMAKE : fatal error U1077: 'for' : return code '0x1' > Stop. > > Each of my .memdump.* files is empty, which appears to make findstr > fail, because fc never gets run. I guess the error return from findstr > at the end of the for loop must be what makes nmake quit, because the IF > ERRORLVEL was never executed. > > If I change the "&&" at the end of the findstr line to "&", so that the > fc always gets run, the tests pass and I get this output: > ## XPath regression tests > ## XPath regression tests part 2 > I: ..\test\XPath\docs\chapters > J: ..\test\XPath\tests\chaptersbase > ELSE: > testXPAth > 1 file(s) copied. > findstr > fc > IF ERRORLEVEL: > J: ..\test\XPath\tests\chaptersprefol > ELSE: > testXPAth > 1 file(s) copied. > findstr > fc > IF ERRORLEVEL: > I: ..\test\XPath\docs\id > J: ..\test\XPath\tests\idsimple > ELSE: > testXPAth > 1 file(s) copied. > findstr > fc > IF ERRORLEVEL: > I: ..\test\XPath\docs\simple > J: ..\test\XPath\tests\simpleabbr > ELSE: > testXPAth > 1 file(s) copied. > findstr > fc > IF ERRORLEVEL: > J: ..\test\XPath\tests\simplebase > ELSE: > testXPAth > 1 file(s) copied. > findstr > fc > IF ERRORLEVEL: > I: ..\test\XPath\docs\str > I: ..\test\XPath\docs\usr1 > J: ..\test\XPath\tests\usr1check > ELSE: > testXPAth > 1 file(s) copied. > findstr > fc > IF ERRORLEVEL: > I: ..\test\XPath\docs\vid > J: ..\test\XPath\tests\vidbase > ELSE: > testXPAth > 1 file(s) copied. > findstr > fc > IF ERRORLEVEL: > > > After making this change, I went and modified one of the files in > ..\test\XPath\tests and verified that the test fails as expected. > > My conclusion is that if I just make the change from "&&" to "&" on the > findstr command line, then things will work, but I really don't > understand what the intent is for the findstr command. If I make the > change, then we will discard the result of the findstr. > > I didn't see anything in the archives about this, which makes me a > little nervous. Has anyone else seen this under Windows and can anyone > tell me whether the change I have made is the correct fix? > > Thanks, > Rush > _______________________________________________ > xml mailing list, project page http://xmlsoft.org/ > [email protected] > http://mail.gnome.org/mailman/listinfo/xml > _______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] http://mail.gnome.org/mailman/listinfo/xml
