Added Exception type field to the Exception reporting form and changed some of its display settings.
While fixing progress calculation mismatches, reworked some progress indicators (added "Skipped" files information to total).
Small resize and repositionning of all GroupBoxes and Labels in "Progress" GroupBox.
Core library
Fixed
Fixed progress calculation mismatches that could occur (when testing very large file sets and files got skipped).
If testing a file generated a very long log, one of the process steps could result in an out of memory exception. Some temporarily unnecessary data is now scraped off of that process step, which solves the issue. (Issue was detected testing a file generating a 127 MB which generated a 1,432,787 lines log file.)
Fixed some staility issues linked to files timing out.
Fixed a crash that could occur if a timeout time of 00:00:00 was set, Core Library now automatically increments zero tick value to 1 tick.
Fixed two other bugs/crashes that could occur if a tester timed out while still being initialised and/or related to extremely short timeouts. (Remaining known issue: Using extremely short time out may still however result in wrong file count. To avoid this I would recommend not to use time out smaller than 00:00:02, however, the precise treshold probably depends on execution speed and the errors are eaier to trigger in Release than in Debug. Anyway, such short time out is not expected to be useful. In my usual use cases a time out of several hours is more appropriate.)
Installer
In version 0.2.2.0, application Id was "Archive tester", application Id is now "Archive tester [versions number]". So that each version can accurately be installed in a different folder and have their own uninstall entry in Windows > Settings > Apps
Version 0.2.2.0 - 20230409
UI
New
Added "Clear inputs" feature (button)
Added "Overwrite (inputs) on drop" feature (checkbox)
Added "(time spent) Since started a file" indicator
Added "Overwrite on drop" feature for intput (checkbox)
Time progress indicators will now update every half second and not only when a file test ended
Added (time) "Since started a file" indicator. When running parallel tests (according to "Configuration > Settings > Parellel tests count", the UI has "Since started a file" when running single tests, the UI has "Spend on current file indicator"
Smaller changes
Time indicators don't display fractions of seconds anymore
Resizing of elements was re-organised so that the text input field is treated as main element and is resized with the window (please note that this application is intended to take a fraction of the scren)
Added a timestamp prefix to the "action message" at the bottom of the application
Added "Inputs behaviours" GroupBox
Added "Clear inputs" buttons
"Browse for ..." now reads "Browse for..."
"Browse for..." is now a GroupBox instead of a Label
"Browse for..." GroupBox buttons were made smaller
"Time progress" now just read "Time"
Time progress indicator values are now aligned to right
For non evaluated values, "?" was replaced with "-"
For non evaluated ratios, "0/0" was replaced with "-/-"
For non evaluated speed, "0" was replaced with "-"
"Est. remaining" label now reads "Estimated remaining"
"Est. total" label now reads "Estimated total"
When possible, progress is now calculated using only StopWatches, no more TimeSpan substractions
Default inputs are now loaded from "Default_input.txt" text file in the application instead of being hard-coded
Button "Overwrite "Input" text field with initial demo/tutorial" now reads "Overwrite "Input" field with default inputs"
"About" tab text now includes a copy of "Default_input.txt".
URL "http://thomasconte.net/it/donate/" has was replaced with "https://thomasconte.net/it/support/"
Fixes
Tab index corrected (I thought this was already fixed but maybe I confused with another project, or something messed it up.)
Noticed that closing window while tests are running may cause interface to freeze and tests to keep running in background, added a dialog box suggesting to cancel closing and first stop all running texts using "Stop" button.
"Enable dropping..." checkbox is now accurately disabled while tests are running
Configuration > Testers > 7-Zip and flac.exe path examples were suggesting a folder instead of an .exe file, examples corrected.
Misc.
Updated embedded UnRAR.exe to version 6.21
Tested with UnRAR 6.21 (x64), 7-zip 19.00 (x64) and flac.exe 1.3.2 (x64)
Code signing self-signed certificate had to be changed after previous one expired.
Core library
Changes
In Windows Task Manager, "Command line RAR" process should now be grouped under Archive Tester (unless the user closes the UI some way)
Fixes
Should stop failing at stopping running tests when stopping and an attempt to fix potential "uncatchable" exceptions when stopping process was implemented. (Since the issue is random and cannot be reproduced at will, only time will tell if it is actually gone.)
Corrected: "Skipped due to timeout" and "Skipped on request or stop" counts which were counting some files twice
General
ArchiveTester.UI.WinForms now targets .NET Framework 4.5.2 (ArchiveTester.Core.dll still targets .NET Framework 3.5)
Some code cleaning.
Installer
Now installs to "Archive tester [version number]" (and similar numbering for icons), which means that previous versions do not need to be uninstalled or overwritten anymore. On the other hand, configuration maybe have to be copied from a version to another. Not necessarily the perfect solution, but better than before for now.
Version 0.2.1.0 - 20190212
New
UI: It is now possible to drag and drop files and folders into "Inputs" field. There is a checkbox in settings if you wish to deactivate it.
Fixes
Fixed?: When stopping testing process while doing a lot of parallel tests, it may happen that the testing queue never gets emptied and UI doesn't get reset. Hopefully this is solved now.
UI consistency: Corrected: "Launch tests" and "Skip" buttons were not reset when stopping during discovery phase.
UI consistency: Corrected: "Browse for a file to include/exclude" and "Overwrite 'Input' text field with initial demo/tutorial" buttons, "Always skip these folders" text field and "Try testing *.exe file with UnRAR first, then with 7-Zip." checkbox were not disabled when launching tests.
Misc.
Updated embedded UnRAR.exe to version 5.61
Tested with UnRAR 5.61 (x64), 7-zip 18.06 (x64) and flac.exe 1.3.2 (x64)
Code signing self-signed certificate had to be changed after switching my environment to a new computer. Not sure yet if it may impact installation.
Version 0.2.0.0 - 20180718
Parallel testing (~multithreading)
Testing processes can now be ran in parallel (multithreaded). Default thread count is based on .NET's "Environment.ProcessorCount" which counts your computer's logical cores. There is a setting to change this manually too.
Previous version was singlethreaded, relying on the fact the algorithms such as RAR5 are multithreaded. But some, for instance RAR4, are not multithreaded. This should bring a huge performance gain when testing a large number of files encoded with singlethreaded algorithms (or at least when testing algorithms are singlethreaded).
Multivolume I still have a more flexible file extension/tester matching system in mind, but here is already something that should solve many cases.
*.001 are now testable through 7z.exe
*.r00 and *.r01 are now testable through UnRAR.exe, *.r01 is considered non testable if matching *.z00 exists in the same folder.
*.z00 and *.z01 are now testable through 7z.exe, *.z01 is considered non testable if matching *.z00 exists in the same folder.
Prevented case when all files ending with *.rar but belonging to the same multivolume archive would get tested along with each other. Which resulted in n2-1 redundant tests (if I got the formula right). Files ending with ".part1.rar" are still considered testable while all other volume, following pattern ".part[N].rar" are now considered non-testable.
?: Should multivolume non-first volumes be counted as non-testable or simply ignored? For now they are counted as non-testable.
Self-extracting I still have a more flexible file extension/tester matching system in mind, but here is already something that should solve many cases.
*.exe are now optionally testable. *.exe first get tested with UnRAR.exe, if not a RAR archive, a *.exe file will then be tested by 7z.exe, if failed, it will be counted as failed test. There is a checkbox to test or ignore *.exe files. Default value: false.
Benchmarking
Added "kB/s" indicator
Targetting tuning
In the "Inputs: Paths to be tested" field, you may now include/exclude specific files, the same way you would include/exclude a folder.
There is now a setting to automatically skip some folders by name (separated with "|"). Default value: System Volume Information | $RECYCLE.BIN. (In previous versions, "$RECYCLE.BIN" was hard-coded.)
Prevented cases when some file could be tester multiple times or counted multiple times as non testable files (typically if a folder and its parent folder were both set as inputs).
Stability and efficiency
Closing main form/application now more efficiently closes background threads.
Stopping during discovery process will now be much faster (kind of instant).
UI
At first start, the input text field is now filled with a demo/tutorial, that should be able to scan you all computer if started.
Tests that have been stopped by clicking on "Stop" now count as skipped.
Possible future improvement: Progress indicators work fine is the full process is ran. Using "Skip" or "Stop" buttons result in skipping files, which may make progress indicators interpretation arguable. This does not look like a priority but may possibly be re-thought in the future. Probably in a smaller update.
UI consistency
"Skip" button is now disabled during the discovery process and only activated during testing process.
Progress indicators that can only be evaluated after at least one file has been tested (such as "Est. total time") now read "?" before they can be evaluated, instead of "00:00:00.0000000".
UI consistency: "Launch/Testing" button now reads "Scanning" during the scanning process (instead of "Testing").
"Time spent on current file" is replaced with the count of active parallel tests when parallel testing.
.exe path text boxes and most setting buttons are now disabled while processing.
Dependencies and compatibility:
Tested with UnRAR.exe 5.60 and 7-Zip 18.05.
Updated UnRAR.exe to version 5.60
Possible issue(s):
On my Win7 computer, stopping the testing process ("Stop" button") gets the application stuck with one running parallel test running (according to UI). This did not happen on the Win10 computer where I write the code. Cause unidentified so far.
Version 0.1.4.1 - 20180114
Fixed a bug which could possibly cause false positives or false negatives in rare cases where specific words appeared in tested file names or paths.
Fixed progress bar not being reset when launching tests. (It was re-synching after first file was tested, which made this bug unnoticeable when testing small files.)
Fixed a multithreading "bug" which could make some labels not update their value on some systems. However this slightly slows the UI, especially at discovery time, but I think that information accuracy is more important.
UI elements such as text fields, checkboxes, radio buttons etc. are now disabled during process.
If some tester .exe path is filled in "Configuration" but actual tester .exe file is not found, associated files now go to a new "Tester_not_found" output channel/folder.
If some tester .exe path is not filled in "Configuration", files of associated types now go as "Non testable files".
Forced 7-Zip output to be UTF-8.
Using "Inno Setup" installer instead of "Microsoft Visual Studio 2017 Installer Projects". "Inno Setup" offers more flexibility regarding version numbers, licence agreement, uninstaller, icons, ...
In Windows "App & features", version numbers are now shown as x.x.x.x instead of x.x.x.
As it is now included in installer, licence agreement as been deactived in the software.
"Archive tester" as a new icon. As well as a new uninstaller icon for Start Menu.
Hopefully it will not be necessary to uninstall previous versions when installing some new versions in the future.
Prevented a rare bug that could happen when using Stop or Skip button, caused by trying to check the state of a process that meanwhile had already finished (only seen in debug mode).
Slightly optimised the way the tester .exe files paths are tested if a valid one is not provided already (especially regarding "UnRAR.exe" and secondly it will also look for "WinRAR.exe" standard installation path if "UnRAR.exe" was not found).
A temporary feature allows to ignore install version of some type of tester by writing "Do not test" in the associated configuration field, resulting in associated files being "Non testable". (This is temporary because a more generic way of associating files and testers is planned in future versions.)
Application setting "Seven7zExePath" renamed to "SevenzExePath". Because that's how I write in the rest of the code.
Version 0.1.4.0 - 2017-09-28
Skip button and timeout in "Configuration" > "Settings". Because some large corrupted archives files may take very long, possibly cause a background timeout. Skipped files get removed from progress counts.
Ability to exclude paths: Add a "-" (minus) at start of the line to exclude a folder.
Progress is now bar based on byte progress instead of file progress.
"Settings" tag renamed to "Configuration", new "Settings" tab added under "Configuration" tab.
Version 0.1.3.2 - 2017-09-21
Fixed: Bug that could stop file discovery in folder containing non-testable files.
Version 0.1.3.1 - 2017-09-19
Fixed a bug at application start due to name change of the licence file.
Fixed: Hopefully fixed a possible crash on application close.
Fixed: Time spent on current file time label which was not exactly behaving as the other time labels.
Version 0.1.3.0 - 2017-09-19
More archive types tested through 7z.exe: *.bz2 (BZip2), *.gz, *.tar, *.wim, *.xz
FLAC: *.flac files may now be tested through flac.exe. (You will need to configure flac.exe path in the "Settings" tab.)
"Archive tester" is now using UnRAR.exe instead of RAR.exe. UnRAR.exe is included in "Archive tester" package as its license allows it. You may still point to another *.exe file if you wish.
In "Settings" tab, you now point at *.exe files instead of a folder + hardcoded *.exe file.
Stop button can now stop process while a file is being tested.
New "Time spent on current file" timer.
Two new log "channels": "Exceptions at discover time" and "Exceptions at testing time". Hence, the exception display form is less often used.
Most Exceptions should not stop the process anymore.
Application name set to "Archive tester", and "ArchiveTester" as machine friendly name. Exit "TC's Archive Tester" etc.
Estimated remaining time label is not shifted to the left anymore.
Progress labels now have colors: Green for success, orange for things that may be acceptable but you should give a check, red for failed things.
Refactoring for features "extensibility".
Application and shortcuts icons should now be displayed correctly.
Fixed: UTC checkbox had no effect.
License added.
...
Version 0.1.2.0 - 2017-09-10
First release on website
Fallback log: A secondary window used if, for any reason, log files could not but written (e. g., too long path for Windows)
Exception display window: A secondary window that can display possible exceptions/errors