From 0ab71fb70e510b2fc512e80ce2710786e44f47cf Mon Sep 17 00:00:00 2001 From: Taka Date: Sat, 19 Mar 2022 18:24:09 +1100 Subject: [PATCH] Added some more logging to the VASSAL shim. --- vassal-shim/release/vassal-shim.jar | Bin 34356 -> 34563 bytes vassal-shim/src/vassal_shim/VassalShim.java | 17 +++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/vassal-shim/release/vassal-shim.jar b/vassal-shim/release/vassal-shim.jar index 78af1cdae9077ed6e2809123a01a6626b962d9d2..1af3fd8860275469a224b48210f0430d65c2da65 100644 GIT binary patch delta 17954 zcmXVWV{o8N*Yw7=ZJQh0wr$(GV%y2awry{cjcwc7V59G@_xY-(>h$#V|I>3$x5R>m z#DgL#$%28S|A2;u{sF4!p_YWm4gP;scI5wRGa3jU|8dx` zjnMz&rcq%)|A#iv?f$<`29p=!e_Rw^7TEs~B~kzXbSYEN_$k@J$SD}4=m5RUc(gDn zB)BLlGcG742z(K5augdHrZSz3`c`|@o`ZUHHzpKnmHTLEt46Kvc5Q9#hQ?*Q zP@n6KZ!>uo_4UhVK>nWYjn7T5!9CSp+a3yG zM_<{A;I#68zl!1U*}$%Y&H#EyQpbk_cxGZzsB)MrBUbFTF}x_RkUwO#L2b#S7o8wP zIGMH^B7L1f1^wHbCzgq-zwFvca1mSDrwY=WvXBmO}Ng#|EtKCFw%eP{1^Ij#4$$58$a{f3zc#$zwwlJG>9lnhZ6LEgfbchRk*61n$%aS<~8sY5&p>W2DZD!ys zK%d;T@jl9_0x=?s8Rh{y7Q2EtM9!{_bLpzI&Z+evuI;^;BId%jvCxltu5d1tlzL2E zYTB$oT=YNkpL+EmV57R{L?9!d2`l+j7e4Bq&F0vWHaKUXn%9(QPKgh*n4}q8n2rf# zV)CIo&_sc25;)sP*UJ1d7UG@(?8h%3-}$PC3OQ$;G5#LsAy`@r$#LmKXj4vwn8m5)meef$^tn!R=FyTUQ1LIly0rS1MI zOK2q!kBd(H)rsjYxOXCG3V}ZO*@F0p`^b-gpH*D#{+!P3WPxE^9ZH7CvAYDAut^^x zz=eA!nKK9c2wpLbf}s*YtCMuC@K^s~>7Zrb_0Zvg;gk&XCly)ZgJ7otOENR0Y9Adf zeHa#Uc(bSaGp*1Ae=u371tXtS+0hqW-1=XFDt`Xjmo)n#oxBw!5h`}%+ynJ-(^8x@w=A#?=cnM6oOf4n2m3Nb~H?4+*$ly#xK6VOl;@S!$d_ag}Wr(o=5@zak@o%-o z(@mlg=x?8fv7ZyJal#EDdB(m{iAKOBHW5MRX{;qq4nD}FPhE)B_o#)rG~#FV5JQ;B z+x+WZ@l3k(b(9+AcqeITHU!Bf8o?&d1s4!*Q>4jw(Jr)9zw(2sNOK#PmjG`K`t;1H z4(1nN1?u__OE}8@uf)a2Ws%x5AKFX=oD=hP=A34zeboH^kU`b14mB8~L>=|e#0!3{ zMga&T$3APvmWt?oAuAVsuFzk_BJ-}~&<|QjNrF`J@)UcpfWZN6U6%4LkGGyM4s}Sq zm=HQTej8krjxcCFVN$1Fn4i>bh(4PCLLPYlPysLp6XqsVEGC%`4Ew*n8z0xXd7O^j zSj%!O^PX_?nzh6B@RVg6ZEqxomUDu;wA@6t>j?@S7@;7Z#NDHB9?s&TwdL|@?d+qR z?93BEOW+}2n2rskTMJRWl4!7GP}p`jP!u9~GMSo}x8Q8K9_LiTCkPi(GSpLQO`m3?7Ihi;#_&GnrvonRgMIXi?A7^H!E zX-E%d>=aF2rJpukrsM2OFq8hwnG0cP9>N)j+mu(~yL+$K5*i+m!F|czvW4hj-u>iNu`jWSP)VBJi+_55Km(Tq_W;mLfD% zx96|;Mt@Ya@>BAG&5}O;MPFkOiL&lAU-3{C#aGg5Y~j)iq@!Mk$JGlhMsHoMu0QuX4a{YnSvEdx zF&tabdT3f&7YCPeg>%2QLxBN+ssgexOJEcm--o%@m@R)$(ET+7<~w{AC-!{;7jynz ztO+RvV?&#_wQ~f^MiyOi|ob^~a6Gc}yk;G%jf^)=-n>-z{q?lsErlC;Ez6W_3-=b+>Z4pPY<{oEiIuOcF z?1?%hj`A)utc9b9LYx>t7dK&nd&a#℘6m+$CFD;zC24lOC^?FQ&FQvm>?mo4awr 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

M!MsJ8Zjl3i@=Ikf)8JY4@zc+ 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 A3;+NC diff --git a/vassal-shim/src/vassal_shim/VassalShim.java b/vassal-shim/src/vassal_shim/VassalShim.java index 8778496..6208530 100644 --- a/vassal-shim/src/vassal_shim/VassalShim.java +++ b/vassal-shim/src/vassal_shim/VassalShim.java @@ -135,8 +135,11 @@ public class VassalShim { // analyze each log file ArrayList results = new ArrayList() ; - for ( String fname: logFilenames ) + for ( int i=0 ; i < logFilenames.size() ; ++i ) { + String fname = logFilenames.get( i ) ; + logger.info( "Analyzing log files (" + (1+i) + "/" + logFilenames.size() + "): " + fname ) ; results.add( this._doAnalyzeLogs( fname ) ) ; + } // generate the report Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument() ; @@ -162,6 +165,7 @@ public class VassalShim rootElem.appendChild( logFileElem ) ; } Utils.saveXml( doc, reportFilename ) ; + logger.info( "All done." ) ; } public LogFileAnalysis _doAnalyzeLogs( String logFilename ) @@ -280,11 +284,11 @@ public class VassalShim throws IOException, ParserConfigurationException, TransformerConfigurationException, TransformerException { // load the scenario + logger.info( "Analyzing scenario: " + scenarioFilename ) ; Command cmd = loadScenario( scenarioFilename ) ; cmd.execute() ; // analyze the scenario - logger.info( "Analyzing scenario: " + scenarioFilename ) ; HashMap results = new HashMap() ; for ( GamePiece gamePiece: GameModule.getGameModule().getGameState().getAllPieces() ) { if ( gamePiece.getProperty(VASSAL.counters.Properties.OBSCURED_BY) != null || gamePiece.getProperty(VASSAL.counters.Properties.HIDDEN_BY) != null ) { @@ -327,12 +331,14 @@ public class VassalShim // save the report Utils.saveXml( doc, reportFilename ) ; + logger.info( "All done." ) ; } public void updateScenario( String scenarioFilename, String snippetsFilename, String saveFilename, String reportFilename ) throws IOException, ParserConfigurationException, SAXException, XPathExpressionException, TransformerException { // load the snippets supplied to us by the web server + logger.info( "Updating scenario: " + scenarioFilename ) ; String[] players = new String[2] ; Map snippets = new HashMap() ; AppBoolean fuzzyLabelCompares = new AppBoolean( false ) ; @@ -391,6 +397,7 @@ public class VassalShim // generate the report generateLabelReport( labelReport, reportFilename ) ; + logger.info( "All done." ) ; // NOTE: The test suite always dumps the scenario after updating it, so we could save a lot of time // by dumping it here, thus avoiding the need to run this shim again to do the dump (and spinning up @@ -931,11 +938,13 @@ public class VassalShim throws IOException, InterruptedException { // load the scenario + logger.info( "Taking screenshot of scenario: " + scenarioFilename ) ; Command cmd = loadScenario( scenarioFilename ) ; cmd.execute() ; // generate the screenshot doTakeScreenshot( cmd, outputFilename ) ; + logger.info( "All done." ) ; } private void doTakeScreenshot( Command cmd, String outputFilename ) @@ -953,6 +962,7 @@ public class VassalShim File outputFile = new File( outputFilename ) ; int timeout = Integer.parseInt( config.getProperty( "SCREENSHOT_TIMEOUT", "30" ) ) ; logger.debug( "Creating screenshot: width=" + mapWidth + " ; height=" + mapHeight + " ; timeout=" + timeout ) ; + // FIXME! This causes the log file to be truncated if it's not in append mode?!?! imageSaver.generateScreenshot( outputFile, mapWidth, mapHeight, timeout ) ; } @@ -960,6 +970,7 @@ public class VassalShim throws IOException, InterruptedException { // load the scenario + logger.info( "Preparing scenario for upload: " + scenarioFilename ) ; Command cmd = loadScenario( scenarioFilename ) ; cmd.execute() ; @@ -1017,6 +1028,8 @@ public class VassalShim logger.info( "Generating screenshot..." ) ; doTakeScreenshot( cmd, screenshotFilename ) ; logger.info( "- OK." ) ; + + logger.info( "All done." ) ; } private VASSAL.build.module.Map selectMap()