You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by pa...@apache.org on 2001/08/31 20:38:27 UTC

cvs commit: xml-xalan/c/Tests/Params Params.cpp

pauldick    01/08/31 11:38:27

  Modified:    c/Tests/Params Params.cpp
  Log:
  Updated to use DomCompare,  new overloaded method to set
  params,  and to test w/ files in xml-xalan\test\tests\capi
  
  Revision  Changes    Path
  1.7       +56 -50    xml-xalan/c/Tests/Params/Params.cpp
  
  Index: Params.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/Tests/Params/Params.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Params.cpp	2001/06/21 15:36:07	1.6
  +++ Params.cpp	2001/08/31 18:38:26	1.7
  @@ -86,7 +86,13 @@
   	using std::endl;
   #endif
   
  +// GLOBAL VARIABLES...
  +FileUtility				futil;
  +XalanDOMString			baseDir, outputRoot, goldRoot, goldFile;  // These are set by the getParams routine.
  +const XalanDOMString	testDir("params");
  +XalanDOMString			fileName;
   
  +
   void
   printArgOptions()
   {
  @@ -103,12 +109,13 @@
   bool
   getParams(int argc, 
   		  const char*	argv[],
  -		  FileUtility& f,
   		  XalanDOMString& basedir,
  -		  XalanDOMString& outdir)
  +		  XalanDOMString& outdir,
  +		  XalanDOMString& goldroot)
   {
   	bool fSuccess = true;	// Used to continue argument loop
   	bool fSetOut = true;	// Set default output directory
  +	bool fSetGold = true;	// Set default gold directory
   
   	// Insure that required "-base" argument is there.
   	if (argc == 1 || argv[1][0] == '-')
  @@ -118,7 +125,7 @@
   	}
   	else
   	{
  -		if (f.checkDir(pathSep + XalanDOMString(argv[1])))
  +		if (futil.checkDir(pathSep + XalanDOMString(argv[1])))
   		{
   			assign(basedir, XalanDOMString(argv[1]));
   			insert(basedir, 0, pathSep);
  @@ -142,7 +149,7 @@
   				assign(outdir, XalanDOMString(argv[i]));
   				insert(outdir, 0, XalanDOMString("\\"));
   				append(outdir, XalanDOMString("\\"));
  -				f.checkAndCreateDir(outdir);
  +				futil.checkAndCreateDir(outdir);
   				fSetOut = false;
   			}
   			else
  @@ -165,25 +172,33 @@
   		unsigned int ii = lastIndexOf(basedir,charAt(pathSep,0));
   		outdir = substring(basedir, 0, ii+1);
   		append(outdir,XalanDOMString("PARAM-RESULTS\\"));
  -		f.checkAndCreateDir(outdir);
  +		futil.checkAndCreateDir(outdir);
   	}
   	
  +	if (fSetGold)
  +	{
  +		goldRoot = baseDir;
  +		append(goldRoot,XalanDOMString("-gold"));
  +		futil.checkAndCreateDir(goldRoot);
  +		append(goldRoot,pathSep);
  +	}
  +
   	// Add the path seperator to the end of the base directory
   	append(basedir, pathSep);
   	return fSuccess;
   }
   
   //	This function returns the testcase number.  All of these tests are called
  -//	variablemanXX, and there are only 6 of them,  so we can pick off the
  +//	params0X, and there are only 6 of them,  so we can pick off the
   //	second X to determine what test number we're dealing with.  We need to
   //	know which test because each test gets different parameters. This code will
   //  need modification if the number of tests changes.
   unsigned short
   getTestNumber(const XalanDOMString& theFile)
   {
  -	assert(12 < length(theFile));
  +	assert(8 < length(theFile));
   
  -	return charAt(theFile, 12) - XalanUnicode::charDigit_0;
  +	return charAt(theFile, 7) - XalanUnicode::charDigit_0;
   }
   
   
  @@ -198,19 +213,14 @@
   	_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
   	_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
   #endif
  -
  -	FileUtility		f;
   
  -	XalanDOMString  category;	// Test all of base dir by default
  -	XalanDOMString  baseDir;	
  -	XalanDOMString  outputRoot;	
  +	char testCase[15];
   
  -
  -	if (getParams(argc, argv, f, baseDir, outputRoot) == true)
  +	if (getParams(argc, argv, baseDir, outputRoot, goldRoot) == true)
   	{
   
   		// Generate Unique Run id. (Only used to name the result logfile.)
  -		const XalanDOMString UniqRunid = f.GenerateUniqRunid();
  +		const XalanDOMString UniqRunid = futil.GenerateUniqRunid();
   
   		// Defined basic constants for file manipulation 
   
  @@ -218,7 +228,7 @@
   		const XalanDOMString  resultsFile(outputRoot + resultFilePrefix + UniqRunid + XMLSuffix);
   		
   		XMLFileReporter	logFile(resultsFile);
  -		logFile.logTestFileInit("Param Testing: Transforms using variablexx in xmanual directory. ");
  +		logFile.logTestFileInit("Param Testing: Testing ability to pass parameters to stylesheets. ");
   
   		try
   		{
  @@ -229,49 +239,45 @@
   			{
   				XalanTransformer		transformEngine;
   					
  +				
  +				// Get the files found in the "params" directory
  +				const XalanDOMString  testDir("params");
  +				const XalanDOMString  theOutputDir = outputRoot + testDir;
  +
   				// Check that output directory is there.
  -				const XalanDOMString  xMan("xmanual");
  -				const XalanDOMString  theOutputDir = outputRoot + xMan;
  -				f.checkAndCreateDir(theOutputDir);
  +				futil.checkAndCreateDir(theOutputDir);
   
  -				// Get the files found in the "xmanual" directory
  -				const FileNameVectorType	files = f.getTestFileNames(baseDir, xMan,false);
  +				const FileNameVectorType	files = futil.getTestFileNames(baseDir, testDir, true);
   
   				for(FileNameVectorType::size_type i = 0; i < files.size(); ++i)
   				{
  +					fileName = files[i];
  +					sprintf(testCase, "%s%d","TestCase",i+1);
   
  -					// If the file starts with "variable" process it.
  -					if (startsWith(files[i],"variable"))
  -					{
   						// Output file name to result log and console.
  -						logFile.logTestCaseInit(files[i]);
  -						cout << files[i] << endl;
  +						logFile.logTestCaseInit(fileName);
  +						//cout << fileName << endl;
   
   						// Set up the input/output files.
  -						const XalanDOMString  theXSLFile= baseDir + xMan + pathSep + files[i];
  -						const XalanDOMString  theXMLFile = f.GenerateFileName(theXSLFile,"xml");
  -						const XalanDOMString  theOutput =  outputRoot + xMan + pathSep + files[i]; 
  -						const XalanDOMString  theOutputFile = f.GenerateFileName(theOutput, "out");
  +						const XalanDOMString  theXSLFile= baseDir + testDir + pathSep + fileName;
  +						const XalanDOMString  theXMLFile = futil.GenerateFileName(theXSLFile,"xml");
  +						const XalanDOMString  theOutput =  outputRoot + testDir + pathSep + fileName; 
  +						const XalanDOMString  theOutputFile = futil.GenerateFileName(theOutput, "out");
  +						goldFile = goldRoot +testDir + pathSep + fileName;
  +						goldFile = futil.GenerateFileName(goldFile, "out");
   
   						XSLTResultTarget		theResultTarget(theOutputFile);
   						const XSLTInputSource	xslInputSource(c_wstr(theXSLFile));
   						const XSLTInputSource	xmlInputSource(c_wstr(theXMLFile));
   						
   						// Set the desired parameters
  -						switch (getTestNumber(files[i]))
  -						{	case 1:
  -								transformEngine.setStylesheetParam(
  -									XalanDOMString("input"),
  -									XalanDOMString("'testing 1 2 3'"));
  -								break;
  -
  +						switch (getTestNumber(fileName))
  +						{	
   							case 2:
  -								transformEngine.setStylesheetParam(
  -									XalanDOMString("in1"),
  -									XalanDOMString("'A '"));
  -								transformEngine.setStylesheetParam(
  -									XalanDOMString("in2"), 
  -									XalanDOMString("'B '"));
  +								transformEngine.setStylesheetParam("in1", "'A '");
  +
  +								transformEngine.setStylesheetParam("in2", "'B '");
  +
   								transformEngine.setStylesheetParam(
   									XalanDOMString("in3"),
   									XalanDOMString("'C '"));
  @@ -300,16 +306,16 @@
   						int	theResult =
   							transformEngine.transform(xmlInputSource, xslInputSource, theResultTarget);
   
  -						if(theResult != 0)
  +						if (!theResult)
   						{
  -							logFile.logTestCaseClose("Done","Fail");
  -							cerr << "XalanError: \n" << transformEngine.getLastError();
  +							const XSLTInputSource resultInputSource(c_wstr(theOutputFile));
  +							const XSLTInputSource goldInputSource(c_wstr(goldFile));
  +							futil.compareSerializedResults(resultInputSource, goldInputSource, fileName, testCase); 
   						}
   						else
   						{
  -							logFile.logTestCaseClose("Done","Pass");
  -						}
  -					}		
  +							cout << endl << "Failed: " << testCase ;
  +						}		
   				}
   				
   			}
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org