Commit Graph

336 Commits

Author SHA1 Message Date
Timothy Baldridge
7c567da334
Merge pull request #451 from wabbajack-tools/bump-versions-remove-inlined-binaries
Bump all versions, remove inlined binaries in prep for Core distribut…
2020-01-29 05:39:52 -07:00
Timothy Baldridge
1fa4d92a3b Bump all versions, remove inlined binaries in prep for Core distribution framework (whatever it is) 2020-01-29 05:20:37 -07:00
Timothy Baldridge
61c841f053 Basic workings of BNet downloadings. Can download and convert a mod into a .zip 2020-01-28 21:17:24 -07:00
Timothy Baldridge
6bcbb98d0f Port old BNet code 2020-01-28 17:09:09 -07:00
Timothy Baldridge
7a3b74f63a Try and fix tests 2020-01-28 16:13:21 -07:00
Timothy Baldridge
06561bbdd2 Comment broken test, not sure why it's failing 2020-01-27 14:57:37 -07:00
Timothy Baldridge
fe2728ae9f Add missing references to the Test SDK 2020-01-27 14:44:00 -07:00
Timothy Baldridge
fa05536ce3
Merge pull request #428 from Noggog/Core-swapover
.NET Core Swapover
2020-01-27 14:27:52 -07:00
erri120
e4d22b45c1
Enabled TESAlliance downloader 2020-01-27 17:29:10 +01:00
erri120
b1bd736d8c
Added TESAllianceDownload Test 2020-01-27 14:40:47 +01:00
erri120
8b62eb42c3
DownloaderTests cleanup 2020-01-27 14:32:20 +01:00
erri120
26b42cd0bc
Created DeadlyStream Downloader test 2020-01-27 14:31:22 +01:00
erri120
ef32ebf563
Adjusted the LL test 2020-01-27 14:26:18 +01:00
Justin Swanson
805fc47b78 Process start refactor to be compatible with .NET Core 2020-01-25 21:21:41 -06:00
Justin Swanson
638542c617 .NET Standard 2.1, .NET Core 3.1 2020-01-25 20:48:13 -06:00
Timothy Baldridge
d52b713ec3
Merge pull request #410 from Noggog/no-matching
Random refactors
2020-01-21 20:46:39 -07:00
Timothy Baldridge
84d2a3e8f9 Server changes for CDN optimization 2020-01-21 05:50:53 -07:00
Justin Swanson
0f7c1b4632 ExtensionManager -> ModListAssociationManager 2020-01-19 19:49:12 -06:00
Justin Swanson
0cb1d3cb0a Consts.MetaFileExtension 2020-01-19 19:45:05 -06:00
Justin Swanson
4138e644ef ExtensionManager.Extension -> ModListExtension 2020-01-19 19:42:27 -06:00
Timothy Baldridge
ad3090f9fc Upgrade deps 2020-01-17 15:56:52 -07:00
Timothy Baldridge
853c6ad29a
Merge pull request #384 from wabbajack-tools/enqueue-recent-files
Enqueue recent files
2020-01-14 15:21:09 -07:00
Timothy Baldridge
880ab875dc
Merge pull request #383 from tr4wzified/master
Fix typos + inconsistencies in logs
2020-01-14 05:36:55 -08:00
Justin Swanson
5b33a74075 Offloaded ModlistGallery image downloading 2020-01-13 23:04:45 -06:00
Timothy Baldridge
14f7f45a77 Add size validation to HTTPDownloader, to catch stealth updates. Check whitelist during list validation. 2020-01-13 15:55:55 -07:00
trawzified
877989ba16 Fix typos + inconsistencies in logs 2020-01-13 22:11:07 +01:00
Timothy Baldridge
955924fdac
Merge pull request #377 from wabbajack-tools/asp-net-core-rewrite
Asp net core rewrite
2020-01-12 14:27:34 -08:00
Justin Swanson
b9f27a1080 Unit tests 2020-01-11 18:36:30 -06:00
Timothy Baldridge
5393ed4a84 Can now get meta.ini data from a download state 2020-01-10 21:15:53 -07:00
dependabot-preview[bot]
498908b951
Bump ReactiveUI from 11.1.1 to 11.1.6
Bumps [ReactiveUI](https://github.com/reactiveui/reactiveui) from 11.1.1 to 11.1.6.
- [Release notes](https://github.com/reactiveui/reactiveui/releases)
- [Commits](https://github.com/reactiveui/reactiveui/compare/11.1.1...11.1.6)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-07 15:04:10 +00:00
Timothy Baldridge
f2bb07a528 Wabbajack.Lib is now .NET Standard 2.0 2020-01-07 06:50:11 -07:00
Timothy Baldridge
b0951afb80 Moved messagebox code into user interventions, moved FilePicker VMs into Wabbajack (from Wabbajack.Lib) 2020-01-07 06:03:46 -07:00
Timothy Baldridge
a76aff7962 Add override for Game Folder Files 2020-01-06 17:24:33 -07:00
Timothy Baldridge
873d53e76c Fix broken test 2020-01-06 16:44:46 -07:00
Timothy Baldridge
b3840ae4d8 Allow .mohidden files to be patched 2020-01-06 16:08:19 -07:00
Timothy Baldridge
1eec600027 Parse ByteArrays from INIs as UTF8 strings 2020-01-06 15:00:22 -07:00
Timothy Baldridge
3e39ab8dba Implement VectorPlexus support as a downloader, abstracted common IPS4 data behind an abstract class. 2020-01-05 17:21:05 -07:00
Timothy Baldridge
528b1daded Delete empty folders after install. Ends up being a bit tricky because folders might exist that weren't part of the original list. So we have to find all the folders, and then find the ones that aren't part of the folders to be created by the installer, and we delete those folders. 2020-01-04 22:07:00 -07:00
Timothy Baldridge
3010027ea8 Implement Ceras breaking change & update deps (to get it to compile) 2020-01-03 20:56:20 -07:00
Timothy Baldridge
87bc6388f3 Diable more cef tests 2020-01-02 21:10:30 -07:00
Timothy Baldridge
800b213484 Disable media fire tests until we can fix them 2020-01-02 17:37:08 -07:00
Timothy Baldridge
f57897c539 merge master 2020-01-02 17:07:13 -07:00
Timothy Baldridge
717ad8c70a Rework WJ caching, move cache server routines to MongoDB 2020-01-01 09:19:06 -07:00
Timothy Baldridge
e4c78ebed9 Clean up some references try to get tests to work 2019-12-26 17:41:33 -07:00
dependabot-preview[bot]
ebeead90c5
Bump System.Reactive from 4.3.1 to 4.3.2
Bumps [System.Reactive](https://github.com/dotnet/reactive) from 4.3.1 to 4.3.2.
- [Release notes](https://github.com/dotnet/reactive/releases)
- [Commits](https://github.com/dotnet/reactive/compare/rxnet-v4.3.1...rxnet-v4.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-26 20:00:48 +00:00
Timothy Baldridge
7145b72a69 Test fixes 2019-12-26 11:21:57 -07:00
Timothy Baldridge
caba928d85 Upgrade only the wabbajack.common lib 2019-12-26 09:47:10 -07:00
Timothy Baldridge
e32be75816 Don't use such a big BA2 file for recompression 2019-12-23 16:05:00 -07:00
Justin Swanson
a7b5b6900e Increased PMapTest thread count 2019-12-22 23:56:06 -06:00
Justin Swanson
88cc519478 Improved PMap tests to timeout gracefully if starved 2019-12-22 23:44:53 -06:00
Justin Swanson
0ea147ca35 Removing some vestigial test code 2019-12-22 23:09:00 -06:00
Justin Swanson
95f9aa7d19 Another unit test fix 2019-12-22 22:59:32 -06:00
Justin Swanson
87ed68c0b8 A unit test bugfix 2019-12-22 22:51:20 -06:00
Justin Swanson
4e7829c7c1 WorkQueue IsWorkerThread fixes. PMap unit tests 2019-12-22 22:44:33 -06:00
Justin Swanson
b392b667cf MO2 proper install folder logic now ignores files in downloads 2019-12-21 19:30:01 -06:00
Justin Swanson
eed71e1c24 Purged a few more Task.Wait() calls 2019-12-21 18:26:51 -06:00
Justin Swanson
e5aef9a043 AsyncLock + tests. NexusApi swapped to use it 2019-12-21 18:17:56 -06:00
Justin Swanson
477622f7ca Some MO2Installer.CheckValidInstallPath unit tests 2019-12-20 20:19:17 -06:00
Justin Swanson
1673f8a555 LibCef extraction init awaits and improvements 2019-12-18 19:09:45 -06:00
Justin Swanson
b0bff6e121 Missing ExtractLibs awaits 2019-12-17 21:18:33 -06:00
halgari
91e27fc3d7 Fixes for inis, resuming downloads and caching services 2019-12-17 16:17:44 -07:00
halgari
4ed0dcae7f Implement fix for duplicate key error in FNV 2019-12-15 23:33:44 -07:00
Justin Swanson
705914bd77 FilePickerVM tooltip fixes + tests 2019-12-14 21:55:23 -06:00
Justin Swanson
a6082cc927 Merge remote-tracking branch 'wabbajack-tools/master' into polish-and-fixes 2019-12-14 17:48:27 -06:00
Justin Swanson
078b457857 FilePickerVM unit tests, better filter enforcement 2019-12-14 14:11:39 -06:00
halgari
cd441560df Another missing await 2019-12-13 14:48:40 -07:00
halgari
c070c2431f Fix end-to-end test 2019-12-13 14:39:13 -07:00
halgari
d2999748fb Disable manual download for tests 2019-12-13 06:24:17 -07:00
halgari
61579bc3b6 Fix the broken tests 2019-12-13 06:02:58 -07:00
Justin Swanson
bcd7c95caf Merge branch 'master' into async-exploration 2019-12-12 19:49:40 -06:00
Timothy Baldridge
dba51fe4e7
Merge pull request #263 from wabbajack-tools/upgrade-deps
bump all the deps!!
2019-12-12 16:25:02 -07:00
Timothy Baldridge
2c69a9ec9b bump all the deps!! 2019-12-12 16:00:19 -07:00
Timothy Baldridge
e482197479 Fix case sensitive bug with download deletion during install 2019-12-12 15:52:24 -07:00
Timothy Baldridge
ed41308f12 Can now "download" archives from the game folder. This is useful if installers need to repack game files, they can source the files from the main game archive and then build a new BSA modifying/adding files as needed 2019-12-09 16:52:17 -07:00
Timothy Baldridge
df4dcfa761 Use extension methods to get game metadata 2019-12-09 15:46:03 -07:00
Timothy Baldridge
3bbbfb3ea2 Finish up LL support. 2019-12-08 10:00:22 -07:00
Justin Swanson
86d4003398 Merge remote-tracking branch 'wabbajack-tools/master' into async-exploration 2019-12-08 01:10:51 -06:00
Timothy Baldridge
fdb08b6f04 init cef helpers before tests 2019-12-07 10:39:22 -07:00
Timothy Baldridge
65d4353bcd add libcef to test project 2019-12-07 10:13:34 -07:00
Justin Swanson
63afc2dc9e Remaining NexusAPI made async 2019-12-07 00:40:29 -06:00
Justin Swanson
729b5128da Random .Results swapped to async 2019-12-07 00:40:29 -06:00
Justin Swanson
a25fc9d1a9 Lots of NexusAPI refactored to async 2019-12-07 00:40:29 -06:00
Justin Swanson
5bd856a7c6 Utils async -> sync methods removed 2019-12-07 00:40:29 -06:00
Justin Swanson
43dc6953c5 AbstractDownloadState download made async 2019-12-07 00:40:22 -06:00
Justin Swanson
e9deda9f44 Large swap to make WorkQueue able to take Task work items 2019-12-06 22:47:49 -06:00
Justin Swanson
e90759937b Removed internal WorkQueue in ValidateModlist that was un-disposed 2019-12-06 20:05:24 -06:00
Justin Swanson
03c88b0f38 Removed some Shutdown/Terminate functions in favor of Dispose 2019-12-06 20:04:42 -06:00
Timothy Baldridge
7191804ff2
Merge branch 'master' into set-screen-size 2019-12-05 22:12:29 -07:00
Timothy Baldridge
8b2486059f Implement screen size auto-set for MO2 games 2019-12-05 21:58:18 -07:00
Timothy Baldridge
d11c976ed9 Fix broken test 2019-12-05 17:05:26 -07:00
Timothy Baldridge
f67a235274 Logs and exceptions as classes 2019-12-04 16:17:02 -07:00
Justin Swanson
ae05eb90d4 Ignore warning CS1998, mark CS4014 as error 2019-12-03 18:59:53 -06:00
Justin Swanson
5bb291a310 AInstaller ctor parameters made more picky for required input 2019-12-01 14:23:24 -06:00
Justin Swanson
3a15d62289 ACompiler explicit implementation enforcement of its required members 2019-11-23 18:30:51 -06:00
erri120
899c7e4966
Downgraded ReactiveUI to 10.5.30 2019-11-23 19:50:56 +01:00
Timothy Baldridge
2afcb83456 Switch directory deleting back to use a shell process. It's the only 100% reliable method I've found. 2019-11-23 10:37:24 -07:00
erri120
bd13d15a81
Updated dependencies of main projects 2019-11-23 17:03:02 +01:00
erri120
b5871a3468
Updated all main projects to .NET 4.8.0 2019-11-23 16:50:09 +01:00
erri120
0b958f5f9b
Changed all relative references to use SolutionDir 2019-11-23 16:47:05 +01:00
Timothy Baldridge
8a680a8f14 Several fixes for compilation and caching. 2019-11-21 22:19:42 -07:00
Timothy Baldridge
1ee439c7c1 Better selection of patch file sources 2019-11-21 14:32:58 -07:00
erri120
1b26063773
Simplified names in Tests 2019-11-21 16:05:10 +01:00
erri120
00d4181b1b
Removed unused imports from all Tests 2019-11-21 15:27:35 +01:00
erri120
97b7524030
Created READMEs for most projects 2019-11-21 15:11:08 +01:00
Timothy Baldridge
27964f0348 Set the queue size during installation based on the disk performance. Abort installation if there isn't enough disk space to perform the installation. 2019-11-20 16:39:03 -07:00
Timothy Baldridge
a8d8d20a99 Several fixes that came up during testing.
* Fixed hashing progress bars
* Wired up the CPUStatus to the UI during installation
* Fixed xxHashing
* Verified modlist optimization works on a real modlist (noise)
* Added an optimizer test for extra files created by the user left in the install directory.
2019-11-19 17:15:46 -07:00
Timothy Baldridge
13de3913da Optimize modlists before installation. Also fixed an async bug in VFS. 2019-11-17 22:21:24 -07:00
Timothy Baldridge
8d5843ecc6 Rename Compiler/Installer to MO2Compiler/MO2Installer, other code cleanup as well 2019-11-17 17:17:06 -07:00
Timothy Baldridge
0c78680c09 Abstract the base components of compilers/installers into a single abstract class 2019-11-17 16:48:32 -07:00
Timothy Baldridge
9db982a13d Merge latest from master 2019-11-16 21:30:22 -07:00
Timothy Baldridge
d92d05dbf8 Merge remote-tracking branch 'origin/master' into compiler-update-streams 2019-11-16 21:16:51 -07:00
Timothy Baldridge
baab601f09 Rework Work queue to be non-static 2019-11-16 21:16:42 -07:00
Justin Swanson
4978e55e04 VortexCompilerVM staging and downloads picker wiring 2019-11-16 21:09:46 -06:00
Justin Swanson
30437ba9c3 VortexCompiler ctor made more explicit 2019-11-16 16:10:13 -06:00
Justin Swanson
cfad44fe98 TestUtils.GameName -> Game enum 2019-11-16 16:02:36 -06:00
Justin Swanson
05003900d3 TestUtils sprucing 2019-11-16 15:29:05 -06:00
Timothy Baldridge
11cd96693a Compiles, working through the tests 2019-11-15 17:01:37 -07:00
Timothy Baldridge
f6a27ac094 Much simpler integration 2019-11-15 06:06:34 -07:00
erri120
f391254f1d Created Vortex Test for StackSerialization 2019-11-14 15:34:11 -07:00
Timothy Baldridge
133fa2febd
Async VFS Implementation (#171)
* New VFS implementation can load/save/analyze files. All in a immutable, lock free (mostly) async parallel manner.

* VFS indexing is complete

* Can stage files

* Can extract VirtualFiles into PortableFiles and create contexts from PortableFiles

* Code cleanup
2019-11-14 15:22:53 -07:00
Timothy Baldridge
0cb6f2fa69 Make File Extractor async 2019-11-11 22:33:32 -07:00
Timothy Baldridge
d9ca38cdff
Make BSA Routines async (#168)
* Make BSA routines async
2019-11-11 21:35:07 -07:00
Timothy Baldridge
1ad74b450e
Merge pull request #166 from wabbajack-tools/bsa-tests
Add unit tests for BSAs
2019-11-11 06:17:48 -07:00
Timothy Baldridge
c3daf2b1bc Add unit tests for BSAs 2019-11-10 23:15:52 -07:00
Timothy Baldridge
35897bbf92 cleanup 2019-11-10 21:10:26 -07:00
Timothy Baldridge
e61b203d4c Final bits for CSP backend 2019-11-10 20:47:25 -07:00
Timothy Baldridge
6639e9946b Other variants of pipelines 2019-11-10 15:36:04 -07:00
Timothy Baldridge
f66427c2ea Add a bunch of unit tests fixed a nasty race condition in the put/take handlers 2019-11-10 15:15:52 -07:00
Timothy Baldridge
e9c2ababec More deadlock bugfixes 2019-11-09 17:22:28 -07:00
Timothy Baldridge
081dea2368 Fix channel closing, add unordered pipeline 2019-11-09 14:29:55 -07:00
Timothy Baldridge
67dfaa3581 Refactored to use ValueTask and lazy task creation 2019-11-09 07:49:00 -07:00
Timothy Baldridge
a59e39deaa WIP channels 2019-11-08 23:37:05 -07:00
Timothy Baldridge
fdfe9d36f0
Merge pull request #154 from wabbajack-tools/move-dont-copy
Move files into the install folder
2019-11-06 21:56:16 -07:00
Timothy Baldridge
9d609fb0ca Move files into the install folder instead of copying them, should drastically reduce IO during installation. 2019-11-06 21:43:30 -07:00
Timothy Baldridge
4d68a0c5cb
Merge pull request #153 from wabbajack-tools/manual-download-guidence
Manual Download Guidence
2019-11-06 21:42:43 -07:00
Timothy Baldridge
cb667ed4f8 Fix broken interaction with http-downloader 2019-11-06 17:29:53 -07:00
Timothy Baldridge
e518f31a71 Enable guidence for users to download manual files. 2019-11-06 16:52:48 -07:00
Timothy Baldridge
7a28f813e8 Emit more detailed modlist metadata 2019-11-06 06:21:39 -07:00
Timothy Baldridge
2d497c4c7d Fix tests 2019-11-05 15:30:05 -07:00
Timothy Baldridge
3d9cf4cc65 Rework Nexus API caching logic to use build server cache 2019-11-05 15:21:07 -07:00
Timothy Baldridge
6a93e4eca7
Merge pull request #149 from Noggog/WorkQueue-Utils-Rx
WorkQueue and Utils Rx instead of callbacks
2019-11-04 22:30:05 -07:00
Justin Swanson
9051d28822 WorkQueue and Utils Rx instead of callbacks
Swapped the callback registration systems for Rx subjects exposing observables
2019-11-04 22:17:43 -06:00
Timothy Baldridge
b5797b920d Fix broken test on test server 2019-11-03 21:44:44 -07:00
Timothy Baldridge
b8471a41b3 Fixup missing .meta file when WJ uses a separate download folder 2019-11-03 21:36:25 -07:00
Justin Swanson
ecb789d088 Merge remote-tracking branch 'wabbajack-tools/master' into VM-split-and-styling 2019-11-02 18:41:37 -05:00
Justin Swanson
422fde257b Merge remote-tracking branch 'wabbajack-tools/master' into XAML-IDE-Featureset 2019-11-02 18:31:21 -05:00
Justin Swanson
12daa32d4e All projects migrated to PackageReferences nuget systems 2019-11-02 17:57:51 -05:00
Timothy Baldridge
979334197f bump version, add check for Cleaned ESMs before install 2019-11-02 15:08:37 -06:00
Timothy Baldridge
a177a60c54 add support for .mohidden and /optional/ esps in zEdit integration 2019-11-02 14:32:40 -06:00
Timothy Baldridge
51d1b32077 finish up zedit integration 2019-11-02 09:38:03 -06:00
Timothy Baldridge
610fea9d7f use xxHash64 hasing 2019-10-30 21:40:33 -06:00
Timothy Baldridge
0151b219bf dump stack info to disk and load it during compilation 2019-10-30 20:24:42 -06:00
Timothy Baldridge
ae011ee7e4 add some validation to the installed modlist 2019-10-29 15:30:27 -06:00
Timothy Baldridge
5f05e6a6bb start of large scale integration tests 2019-10-27 21:15:48 -06:00
erri120
f115a0c8f5
Added Ceras to VFS project 2019-10-27 14:55:31 +01:00
erri120
63574f9934
Added Ceras NuGet Package 2019-10-27 14:55:30 +01:00
Timothy Baldridge
e3c9b5264b slightly better test equality in web remoting tests 2019-10-24 21:07:47 -06:00
Timothy Baldridge
35f5730737 add files I forgot 2019-10-23 19:22:11 -06:00
Timothy Baldridge
49d49887a8 fixes tests and adds support for media fire via web remoting 2019-10-23 19:19:11 -06:00
Timothy Baldridge
ac2ec85c9e disable broken test until we get better testing 2019-10-22 16:02:36 -06:00
Timothy Baldridge
7a0ef2a380 rework modlist metadata code to use static site json 2019-10-19 04:55:05 -06:00
Timothy Baldridge
7bc08df9bb add logo downloader for modlist metadata 2019-10-16 17:05:51 -06:00
Timothy Baldridge
65af535487 code cleanup 2019-10-16 15:36:14 -06:00
Timothy Baldridge
e4e307c4fd download dispatcher now also accepts urls as input 2019-10-16 05:44:45 -06:00
Timothy Baldridge
518de4dacc pull the core of Wabbajack into Wabbajack.Lib so we can reuse it in other exes 2019-10-15 21:10:34 -06:00
Timothy Baldridge
ac14aad955 add modlist metadata files 2019-10-15 17:23:14 -06:00
Timothy Baldridge
e4c1e264cd fixes #95 2019-10-14 15:04:12 -06:00
Justin Swanson
a4d6feae42 Added 32bit compilation option 2019-10-13 15:56:40 -05:00
Timothy Baldridge
1004177050
Merge pull request #86 from Noggog/rx
Adding Rx libraries.  Some initial migration to Rx concepts
2019-10-13 09:18:39 -06:00
Timothy Baldridge
704bfeb352 fix for not implemented exception in moddb downloader 2019-10-13 08:18:21 -06:00
Justin Swanson
654679c4f9 Merge remote-tracking branch 'wabbajack-tools/master' into rx 2019-10-13 01:48:41 -05:00
Timothy Baldridge
4e946facab add modddb handler 2019-10-12 20:54:13 -06:00
Timothy Baldridge
bf11273c15 integrated the new download framework into the app 2019-10-12 20:54:13 -06:00
Timothy Baldridge
1e64544783 created downloaders for dropbox, http, google, and nexus 2019-10-12 20:54:13 -06:00
Timothy Baldridge
bd885477a1 start of rework of download routines 2019-10-12 20:54:13 -06:00
Justin Swanson
89b686cd0a Added ReactiveUI and DynamicData. ViewModel made ReactiveObject 2019-10-11 17:18:51 -05:00
Timothy Baldridge
14eb3e697e put the tests back, I think it was a message box error 2019-10-02 21:23:11 -06:00
Timothy Baldridge
609bb6289c remove a test that was blocking CI 2019-10-02 21:08:12 -06:00
Timothy Baldridge
d50527f615 fix validation tests to run in CI 2019-10-02 20:55:16 -06:00
Timothy Baldridge
4597135de5 modlists are now .zip files, several bug fixes found in testing 2019-10-01 16:39:25 -06:00
Timothy Baldridge
eb9e6500c9 integrate content rights validation into the main program 2019-09-29 16:21:18 -06:00
Timothy Baldridge
9f6fbe1692 finish implementing permissions backend logic 2019-09-29 14:53:25 -06:00
Timothy Baldridge
6c24e4fdbb implement framework for content rights management 2019-09-28 22:41:47 -06:00
Timothy Baldridge
79059a6cc1 refactored tests to be a bit cleaner 2019-09-26 17:08:10 -06:00
Timothy Baldridge
ccb10d6b44 rework tests and log handling 2019-09-26 16:32:15 -06:00
Timothy Baldridge
a21edfd2f1 add unit tests. It's about time! 2019-09-23 22:20:24 -06:00