Commit Graph
587 Commits
Author SHA1 Message Date
Dean Ferreyra 423921d1c2 Revert "Change Duplicati.UnitTest project to get System.Net.Http from NuGet"
This reverts commit 2f5bb306bd.

This was an experiment that was accidentally committed.
2021-11-08 20:19:22 -08:00
Dean Ferreyra 459d1f27f6 Formalize inclusion of code from https://github.com/dotnet
Fix SystemIOWindows.PathGetFullPath per review comments.

Add unit tests for SystemIOWindows.PathGetFullPath and SystemIOWindows.PrefixWithUNC.  Also, fix a bug in the SystemIOWindows.PrefixWithUNC change that was exposed by these new unit tests.

In BackendToolTests, remove unused [Setup] and [TearDown] methods.
2021-11-08 07:42:07 -08:00
Dean Ferreyra 2f5bb306bd Change Duplicati.UnitTest project to get System.Net.Http from NuGet 2021-11-06 23:20:04 -07:00
Dean Ferreyra 0e8280f6f3 Fix SystemIOWindows handling of relative paths
The handling of relative paths in SystemIOWindows was broken by changes for #4256.

Change SystemIOWindows.PrefixWithUNC to only prefix paths with `\\?\` when they can be prefixed; i.e., only prefix paths that are fully qualified and that don't contain relative path components like `.` or `..`.  This way, relative paths passed to SystemIOWindows methods work correctly again.  Also support network paths specified using forward slashes; e.g., `//example.com/share/foo.txt`.

Simplify SystemIOWindows.GetFullPath since Path.GetFullPath will honor `\\?\` prefixes and can replace forward slashes with backslashes, etc.

Copy and adapt source for Path.IsPathFullyQualified from https://github.com/dotnet/runtime, which is MIT licensed.

Add unit test for Duplicati.CommandLine.BackendTool to validate the fix.

This fixes #4632.
2021-11-06 17:14:18 -07:00
Kenneth SkovhedeandGitHub 976173fd49 Merge pull request #4512 from warwickmm/make_filters_match_newline
Make dot in filter regex match newline characters
2021-08-11 10:30:59 +02:00
marodev e87688d9d3 Fix ReSharper's "Use string interpolation expression" / Code Smell 2021-05-15 17:02:57 +02:00
Kenneth Hsu a58f6b5d69 Add test for restoring file with newline character in name.
This concerns #4508.
2021-05-14 18:36:28 -07:00
Kenneth Hsu 4cc7beea2c Add test for restoring directory containing problematic filenames. 2021-05-14 18:34:52 -07:00
Kenneth Hsu 53621c984d Simplify verification of restored file in test. 2021-05-14 18:34:52 -07:00
warwickmmandGitHub 50ed059e11 Merge pull request #4469 from tygill/fix/ms-graph-throttling
Fix OneDrive throttling and respect retry-after header.
2021-05-04 09:42:52 -07:00
warwickmmandGitHub da2e51a80b Merge pull request #4431 from warwickmm/add_workflow_for_tests
Add GitHub workflow to run tests
2021-05-03 11:47:18 -07:00
Kenneth Skovhede b550e61d9b Re-added compatibility analyzers 2021-04-03 21:49:51 +02:00
Kenneth Skovhede 8892ff7df3 Cleaned up all .csproj files.
Moved things around to make cleaner build files.
Implementing everything with `netstandard2.1` and then thin wrapper executables using .net5
2021-04-03 13:57:02 +02:00
Thomas Suckow 70727b9f68 Merge remote-tracking branch 'duplicati/master'
# Conflicts:
#	.appveyor.yml
#	Duplicati.sln
#	Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj
#	Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj
#	Duplicati/CommandLine/Duplicati.CommandLine.csproj
#	Duplicati/CommandLine/RecoveryTool/Duplicati.CommandLine.RecoveryTool.csproj
#	Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj
#	Duplicati/Library/Backend/SSHv2/Duplicati.Library.Backend.SSHv2.csproj
#	Duplicati/Library/Backend/SSHv2/packages.config
#	Duplicati/Library/Backend/Tardigrade/Duplicati.Library.Backend.Tardigrade.csproj
#	Duplicati/Library/Backend/Telegram/Duplicati.Library.Backend.Telegram.csproj
#	Duplicati/Library/Backend/Telegram/Properties/AssemblyInfo.cs
#	Duplicati/License/Duplicati.License.csproj
#	Duplicati/Server/Duplicati.Server.csproj
#	Duplicati/UnitTest/Duplicati.UnitTest.csproj
#	Duplicati/UnitTest/PurgeTesting.cs
#	Installer/fedora/duplicati-binary.spec
#	Installer/fedora/duplicati.spec
#	guiTests/guiTest.py
#	pipeline/shared/duplicati.sh
#	pipeline/stage_build/trigger.sh
#	pipeline/stage_integrationtests/job.sh
#	pipeline/stage_integrationtests/trigger.sh
#	pipeline/stage_unittests/trigger.sh
2021-04-01 20:30:19 -07:00
Kenneth Skovhede 4f565a004f Merge branch 'netstandard' of https://github.com/mnaiman/duplicati into netstandard
# Conflicts:
#	Duplicati.sln
#	Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj
#	Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj
#	Duplicati/CommandLine/Duplicati.CommandLine.csproj
#	Duplicati/CommandLine/RecoveryTool/Duplicati.CommandLine.RecoveryTool.csproj
#	Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj
#	Duplicati/Library/Backend/SSHv2/Duplicati.Library.Backend.SSHv2.csproj
#	Duplicati/Library/Backend/SSHv2/packages.config
#	Duplicati/Library/Backend/Tardigrade/Duplicati.Library.Backend.Tardigrade.csproj
#	Duplicati/Library/Backend/Telegram/Duplicati.Library.Backend.Telegram.csproj
#	Duplicati/Library/Backend/Telegram/Properties/AssemblyInfo.cs
#	Duplicati/License/Duplicati.License.csproj
#	Duplicati/Server/Duplicati.Server.csproj
#	Duplicati/UnitTest/Duplicati.UnitTest.csproj
2021-04-01 15:08:42 +02:00
Tyler Gill 70583f5d93 Add a bit more test coverage. 2021-03-20 12:29:57 -06:00
Tyler Gill 719adbf1f1 Clean up a few more bugs and inconsistencies in ReadLimitLengthStream. 2021-03-19 13:59:09 -06:00
Tyler Gill 7f1b6bc7a2 Fix some bugs in ReadLimitLengthStream changes, and add a unit test for some of the new behavior.
Also make NonSeekableStream block seeks via the Position setter.
2021-03-18 12:24:11 -06:00
Kenneth Skovhede 88a1ec59c3 Added delay to purge-broken-files unittest.
Since the repair introduces artifical filelists, there is sometimes a race in CI where the purge is faster than a second causing the time sequences to not line up during testing.
2021-03-08 11:53:13 +01:00
Kenneth SkovhedeandGitHub 5498f16f7a Merge pull request #4414 from warwickmm/test/run_script_after
Add test for run-script-after option
2021-03-06 15:00:38 +01:00
Kenneth SkovhedeandGitHub 90a8c34c06 Merge pull request #4398 from warwickmm/bugfix/repair_missing_blocklists
Fix bug in repairing multiple missing blocklist hashes
2021-03-06 14:23:20 +01:00
Kenneth SkovhedeandGitHub 713b0b0746 Merge pull request #4417 from warwickmm/handle_unsupported_run_script_exit_codes
Abort with error if run-script-before script returns unsupported code
2021-03-06 14:12:33 +01:00
Kenneth Hsu d6e9e08272 Increase tolerance for last write time tests on macOS.
There are occasionally times where the difference is greater than 500ms.

1) Failed : Duplicati.UnitTest.BorderTests.Run100k
  Restore, creation time mismatch for /Users/runner/duplicati_testdata/backup-data/c-m2 and /Users/runner/duplicati_testdata/restored/c-m2
  Expected: 2021-02-08 18:39:04.9202665 +/- 00:00:00.5000000
  But was:  2021-02-08 18:39:05.572262
  at Duplicati.UnitTest.TestUtils.AssertFilesAreEqual (System.String
  expectedFile, System.String actualFile, System.Boolean verifymetadata,
  System.String contextMessage) [0x0016f] in
  /Users/runner/work/duplicati/duplicati/Duplicati/UnitTest/TestUtils.cs:256
2021-02-08 11:48:05 -08:00
Kenneth Hsu cb89d50862 Increase tolerance for last write time tests on macOS.
There are occasionally times where the difference is greater than 200ms.

1) Failed : Duplicati.UnitTest.BorderTests.Run100k
  Restore, creation time mismatch for /Users/runner/duplicati_testdata/backup-data/b-p500 and /Users/runner/duplicati_testdata/restored/b-p500
  Expected: 2021-02-08 00:34:08.0221856 +/- 00:00:00.2500000
  But was:  2021-02-08 00:34:08.296859

  at Duplicati.UnitTest.TestUtils.AssertFilesAreEqual (System.String
  expectedFile, System.String actualFile, System.Boolean verifymetadata,
  System.String contextMessage) [0x0016f] in
  /Users/runner/work/duplicati/duplicati/Duplicati/UnitTest/TestUtils.cs:256
2021-02-07 20:22:23 -08:00
Kenneth Hsu 1e8752a0cd Increase tolerance for last write time tests on macOS.
There are occasionally times where the difference is greater than 100ms.
2021-02-07 13:59:34 -08:00
Kenneth Hsu 6ec037acc0 Use helper method to determine platform.
We should eventually make this method use
RuntimeInformation.IsOSPlatform.
2021-02-07 11:59:20 -08:00
Kenneth Hsu 97c33a0e13 Fix comment style. 2021-02-07 11:58:37 -08:00
Thomas SuckowandKenneth Hsu 06850697bd Relax unit test file time checking on osx 2021-02-07 11:58:02 -08:00
Kenneth Hsu 64410b4284 Dispose HttpWebResponse after use.
This seems to help avoid "System.Net.WebException : The operation has
timed out." issues when downloading test data.
2021-02-07 11:12:39 -08:00
Kenneth Hsu c47ab50892 Revert "Test deliberate test failure."
This reverts commit aca2f18634.
2021-02-06 18:38:48 -08:00
Kenneth Hsu aca2f18634 Test deliberate test failure. 2021-02-06 11:51:30 -08:00
Kenneth Hsu 11bd54d160 Fix test for DUPLICATI__PARSED_RESULT on Windows. 2021-01-14 20:21:47 -08:00
Kenneth Hsu 148788a879 Add test for DUPLICATI__PARSED_RESULT environment variable.
This concerns issue #4222.
2021-01-14 19:39:03 -08:00
Kenneth Hsu c11f7c2e47 Avoid testing scripts with exit code -1.
The behavior is not consistent or well-defined across shells.

https://unix.stackexchange.com/questions/418784/what-is-the-min-and-max-values-of-exit-codes-in-linux
2021-01-10 15:53:51 -08:00
Kenneth Hsu 359ae2c85b Add test for unsupported script exit codes. 2021-01-10 10:44:58 -08:00
Kenneth Hsu c377e33e3d Remove spaces around redirection operator.
This was failing in AppVeyor with the message:

Expected string length 5 but was 6. Strings differ at index 5.
Expected: "Hello"
But was:  "Hello "
2021-01-09 12:26:20 -08:00
Kenneth Hsu 232544e5a3 Remove quotes from echo statement in run-script-after test.
The behavior appears to be different between Windows and Linux.
2021-01-09 12:00:01 -08:00
Kenneth Hsu 80028005c1 Add test for run-script-after. 2021-01-09 11:14:31 -08:00
Thomas Suckow f424c1e999 Don't publish the unit tests 2021-01-08 07:51:13 -08:00
Thomas Suckow f2d209cfaf Even more relaxed 2021-01-03 22:26:35 -08:00
Thomas Suckow 4cdeaa94c7 Relax unit test file time checking on osx 2021-01-03 19:49:35 -08:00
Thomas Suckow 238a31fea0 FIXME: Strange time issue with backups 2021-01-03 09:40:58 -08:00
Thomas Suckow acea2fe10f upstream
Update Telegram SharpAESCrypt dep
Update SystemIOWindows to split the difference

# Conflicts:
#	BuildTools/AutoUpdateBuilder/AutoUpdateBuilder.csproj
#	BuildTools/AutoUpdateBuilder/packages.config
#	BuildTools/DependencyFinder/DependencyFinder.csproj
#	BuildTools/DependencyFinder/packages.config
#	BuildTools/GnupgSigningTool/GnupgSigningTool.csproj
#	BuildTools/UpdateVersionStamp/UpdateVersionStamp.csproj
#	BuildTools/UpdateVersionStamp/app.config
#	Duplicati/CommandLine/BackendTester/Duplicati.CommandLine.BackendTester.csproj
#	Duplicati/CommandLine/BackendTester/app.config
#	Duplicati/CommandLine/BackendTool/Duplicati.CommandLine.BackendTool.csproj
#	Duplicati/CommandLine/BackendTool/app.config
#	Duplicati/CommandLine/ConfigurationImporter/Duplicati.CommandLine.ConfigurationImporter.csproj
#	Duplicati/CommandLine/Duplicati.CommandLine.csproj
#	Duplicati/CommandLine/RecoveryTool/Duplicati.CommandLine.RecoveryTool.csproj
#	Duplicati/CommandLine/RecoveryTool/packages.config
#	Duplicati/CommandLine/app.config
#	Duplicati/GUI/Duplicati.GUI.TrayIcon/Duplicati.GUI.TrayIcon.csproj
#	Duplicati/GUI/Duplicati.GUI.TrayIcon/app.config
#	Duplicati/GUI/Duplicati.GUI.TrayIcon/packages.config
#	Duplicati/Library/AutoUpdater/Duplicati.Library.AutoUpdater.csproj
#	Duplicati/Library/AutoUpdater/app.config
#	Duplicati/Library/AutoUpdater/packages.config
#	Duplicati/Library/Backend/AlternativeFTP/Duplicati.Library.Backend.AlternativeFTP.csproj
#	Duplicati/Library/Backend/AlternativeFTP/app.config
#	Duplicati/Library/Backend/AlternativeFTP/packages.config
#	Duplicati/Library/Backend/AzureBlob/Duplicati.Library.Backend.AzureBlob.csproj
#	Duplicati/Library/Backend/AzureBlob/packages.config
#	Duplicati/Library/Backend/Backblaze/Duplicati.Library.Backend.Backblaze.csproj
#	Duplicati/Library/Backend/Backblaze/packages.config
#	Duplicati/Library/Backend/Box/Duplicati.Library.Backend.Box.csproj
#	Duplicati/Library/Backend/Box/packages.config
#	Duplicati/Library/Backend/CloudFiles/Duplicati.Library.Backend.CloudFiles.csproj
#	Duplicati/Library/Backend/CloudFiles/app.config
#	Duplicati/Library/Backend/Dropbox/Duplicati.Library.Backend.Dropbox.csproj
#	Duplicati/Library/Backend/Dropbox/packages.config
#	Duplicati/Library/Backend/FTP/Duplicati.Library.Backend.FTP.csproj
#	Duplicati/Library/Backend/FTP/app.config
#	Duplicati/Library/Backend/File/Duplicati.Library.Backend.File.csproj
#	Duplicati/Library/Backend/File/app.config
#	Duplicati/Library/Backend/GoogleServices/Duplicati.Library.Backend.GoogleServices.csproj
#	Duplicati/Library/Backend/GoogleServices/packages.config
#	Duplicati/Library/Backend/HubiC/Duplicati.Library.Backend.HubiC.csproj
#	Duplicati/Library/Backend/Jottacloud/Duplicati.Library.Backend.Jottacloud.csproj
#	Duplicati/Library/Backend/Mega/Duplicati.Library.Backend.Mega.csproj
#	Duplicati/Library/Backend/Mega/packages.config
#	Duplicati/Library/Backend/OAuthHelper/Duplicati.Library.OAuthHelper.csproj
#	Duplicati/Library/Backend/OAuthHelper/packages.config
#	Duplicati/Library/Backend/OneDrive/Duplicati.Library.Backend.OneDrive.csproj
#	Duplicati/Library/Backend/OneDrive/packages.config
#	Duplicati/Library/Backend/OpenStack/Duplicati.Library.Backend.OpenStack.csproj
#	Duplicati/Library/Backend/OpenStack/packages.config
#	Duplicati/Library/Backend/Rclone/Duplicati.Library.Backend.Rclone.csproj
#	Duplicati/Library/Backend/Rclone/packages.config
#	Duplicati/Library/Backend/S3/Duplicati.Library.Backend.S3.csproj
#	Duplicati/Library/Backend/S3/app.config
#	Duplicati/Library/Backend/S3/packages.config
#	Duplicati/Library/Backend/SSHv2/Duplicati.Library.Backend.SSHv2.csproj
#	Duplicati/Library/Backend/SSHv2/packages.config
#	Duplicati/Library/Backend/SharePoint/Duplicati.Library.Backend.SharePoint.csproj
#	Duplicati/Library/Backend/SharePoint/app.config
#	Duplicati/Library/Backend/Sia/Duplicati.Library.Backend.Sia.csproj
#	Duplicati/Library/Backend/Sia/packages.config
#	Duplicati/Library/Backend/TahoeLAFS/Duplicati.Library.Backend.TahoeLAFS.csproj
#	Duplicati/Library/Backend/TahoeLAFS/packages.config
#	Duplicati/Library/Backend/Tardigrade/Duplicati.Library.Backend.Tardigrade.csproj
#	Duplicati/Library/Backend/Tardigrade/packages.config
#	Duplicati/Library/Backend/WEBDAV/Duplicati.Library.Backend.WEBDAV.csproj
#	Duplicati/Library/Backend/WEBDAV/app.config
#	Duplicati/Library/Common/Duplicati.Library.Common.csproj
#	Duplicati/Library/Common/IO/SystemIOWindows.cs
#	Duplicati/Library/Common/app.config
#	Duplicati/Library/Common/packages.config
#	Duplicati/Library/Compression/Duplicati.Library.Compression.csproj
#	Duplicati/Library/Compression/app.config
#	Duplicati/Library/Compression/packages.config
#	Duplicati/Library/DynamicLoader/Duplicati.Library.DynamicLoader.csproj
#	Duplicati/Library/DynamicLoader/app.config
#	Duplicati/Library/Encryption/Duplicati.Library.Encryption.csproj
#	Duplicati/Library/Encryption/packages.config
#	Duplicati/Library/Interface/Duplicati.Library.Interface.csproj
#	Duplicati/Library/Localization/Duplicati.Library.Localization.csproj
#	Duplicati/Library/Localization/packages.config
#	Duplicati/Library/Logging/Duplicati.Library.Logging.csproj
#	Duplicati/Library/Logging/app.config
#	Duplicati/Library/Main/Duplicati.Library.Main.csproj
#	Duplicati/Library/Main/app.config
#	Duplicati/Library/Main/packages.config
#	Duplicati/Library/Modules/Builtin/Duplicati.Library.Modules.Builtin.csproj
#	Duplicati/Library/Modules/Builtin/packages.config
#	Duplicati/Library/SQLiteHelper/Duplicati.Library.SQLiteHelper.csproj
#	Duplicati/Library/Snapshots/Duplicati.Library.Snapshots.csproj
#	Duplicati/Library/Snapshots/app.config
#	Duplicati/Library/Snapshots/packages.config
#	Duplicati/Library/UsageReporter/Duplicati.Library.UsageReporter.csproj
#	Duplicati/Library/UsageReporter/packages.config
#	Duplicati/Library/Utility/Duplicati.Library.Utility.csproj
#	Duplicati/Library/Utility/app.config
#	Duplicati/Library/Utility/packages.config
#	Duplicati/License/Duplicati.License.csproj
#	Duplicati/Server/Duplicati.Server.Serialization/Duplicati.Server.Serialization.csproj
#	Duplicati/Server/Duplicati.Server.Serialization/packages.config
#	Duplicati/Server/Duplicati.Server.csproj
#	Duplicati/Server/app.config
#	Duplicati/Server/packages.config
#	Duplicati/Service/Duplicati.Service.csproj
#	Duplicati/Service/app.config
#	Duplicati/Tools/Duplicati.Tools.csproj
#	Duplicati/UnitTest/Duplicati.UnitTest.csproj
#	Duplicati/UnitTest/RestoreHandlerTests.cs
#	Duplicati/UnitTest/app.config
#	Duplicati/UnitTest/packages.config
#	Duplicati/WindowsService/App.config
#	Duplicati/WindowsService/WindowsService.csproj
#	Tools/SQLiteTool/App.config
#	Tools/SQLiteTool/SQLiteTool.csproj
#	thirdparty/TlsTest/TlsTest.csproj
#	thirdparty/UnixSupport/UnixSupport.csproj
#	thirdparty/mozroots/mozroots.csproj
2020-12-29 09:59:42 -08:00
Kenneth Hsu d4b349bb99 Add test for repairing multiple missing blocklist hashes.
This concerns issue #4397.
2020-12-26 21:43:43 -08:00
Kenneth SkovhedeandGitHub ca073a2d0c Merge pull request #4380 from warwickmm/fix_purge_broken_files_dry_run
Fix error encountered during dry-run of purge-broken-files
2020-12-19 14:44:21 +01:00
Kenneth Hsu 780f53b89a Add test for purging broken files with dry-run.
This concerns #4379.
2020-11-30 19:56:08 -08:00
Kenneth Hsu 6570cd954c Add test for specifying remote URL using run-script-before.
This concerns issue #3651.
2020-11-01 14:19:09 -08:00
Kenneth Hsu ca5aad9ccb Allow custom commands to be provided to CreateScript test helper. 2020-11-01 13:14:00 -08:00
Kenneth SkovhedeandGitHub 40416560e6 Merge pull request #4352 from duplicati/feature/new_unittest_datahost
Changed unittes datahost to reduce S3 transfer charges
2020-10-27 11:28:50 +01:00
Kenneth Skovhede 5fd1c883e3 Changed to using a proxied host to reduce S3 transfer charges from unittests 2020-10-19 00:44:10 +02:00