From 4c15729f6e80b9dd2e4d943f6d278f108f87818c Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Fri, 16 May 2025 14:20:32 +0200 Subject: [PATCH 1/3] Check exit code in dbtool tests --- Duplicati/UnitTest/DatabaseToolTests.cs | 28 ++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Duplicati/UnitTest/DatabaseToolTests.cs b/Duplicati/UnitTest/DatabaseToolTests.cs index 4d78a45be..11c069733 100644 --- a/Duplicati/UnitTest/DatabaseToolTests.cs +++ b/Duplicati/UnitTest/DatabaseToolTests.cs @@ -39,14 +39,14 @@ namespace Duplicati.UnitTest cmd.CommandText = LocalSchemaV12; cmd.ExecuteNonQuery(); - await Program.Main(["upgrade", dbfile, "--no-backups"]); - await Program.Main(["downgrade", dbfile, "--server-version=6", "--local-version=12", "--no-backups"]); - await Program.Main(["upgrade", dbfile, "--no-backups"]); + Assert.AreEqual(0, await Program.Main(["upgrade", dbfile, "--no-backups"])); + Assert.AreEqual(0, await Program.Main(["downgrade", dbfile, "--server-version=6", "--local-version=12", "--no-backups"])); + Assert.AreEqual(0, await Program.Main(["upgrade", dbfile, "--no-backups"])); - await Program.Main(["list", dbfile]); - await Program.Main(["list", dbfile, "RemoteVolume"]); - await Program.Main(["list", dbfile, "RemoteVolume", "--output-json"]); - await Program.Main(["execute", dbfile, "SELECT * FROM RemoteVolume", "--output-json"]); + Assert.AreEqual(0, await Program.Main(["list", dbfile])); + Assert.AreEqual(0, await Program.Main(["list", dbfile, "RemoteVolume"])); + Assert.AreEqual(0, await Program.Main(["list", dbfile, "RemoteVolume", "--output-json"])); + Assert.AreEqual(0, await Program.Main(["execute", dbfile, "SELECT * FROM RemoteVolume", "--output-json"])); } [Test] @@ -59,14 +59,14 @@ namespace Duplicati.UnitTest cmd.CommandText = ServerSchemaV6; cmd.ExecuteNonQuery(); - await Program.Main(["upgrade", dbfile, "--no-backups"]); - await Program.Main(["downgrade", dbfile, "--server-version=6", "--local-version=12", "--no-backups"]); - await Program.Main(["upgrade", dbfile, "--no-backups"]); + Assert.AreEqual(0, await Program.Main(["upgrade", dbfile, "--no-backups"])); + Assert.AreEqual(0, await Program.Main(["downgrade", dbfile, "--server-version=6", "--local-version=12", "--no-backups"])); + Assert.AreEqual(0, await Program.Main(["upgrade", dbfile, "--no-backups"])); - await Program.Main(["list", dbfile]); - await Program.Main(["list", dbfile, "Source"]); - await Program.Main(["list", dbfile, "Source", "--output-json"]); - await Program.Main(["execute", dbfile, "SELECT * FROM Source", "--output-json"]); + Assert.AreEqual(0, await Program.Main(["list", dbfile])); + Assert.AreEqual(0, await Program.Main(["list", dbfile, "Source"])); + Assert.AreEqual(0, await Program.Main(["list", dbfile, "Source", "--output-json"])); + Assert.AreEqual(0, await Program.Main(["execute", dbfile, "SELECT * FROM Source", "--output-json"])); } /// From b3f43830cfeecad9c67f086d2aa9f66da1516613 Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Fri, 16 May 2025 15:51:30 +0200 Subject: [PATCH 2/3] Fixed query for Windows/Linux --- .../Scripts/Server/8. Check for encrypted fields.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Duplicati/CommandLine/DatabaseTool/Scripts/Server/8. Check for encrypted fields.sql b/Duplicati/CommandLine/DatabaseTool/Scripts/Server/8. Check for encrypted fields.sql index aae55071d..a5532a043 100644 --- a/Duplicati/CommandLine/DatabaseTool/Scripts/Server/8. Check for encrypted fields.sql +++ b/Duplicati/CommandLine/DatabaseTool/Scripts/Server/8. Check for encrypted fields.sql @@ -1,5 +1,5 @@ /* This script returns an error message if any encrypted values are found */ -SELECT "Database is encrypted and must be decrypted before it can be downgraded" AS "Message" +SELECT 'Database is encrypted and must be decrypted before it can be downgraded' AS "Message" FROM Option WHERE Value LIKE 'enc-v1:%' UNION ALL SELECT TargetURL From 97ef8137edb62170d6df9de79f0279faa551b6b6 Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Fri, 16 May 2025 15:51:49 +0200 Subject: [PATCH 3/3] Fixed some compile issues on Windows --- Duplicati/Library/Backend/AzureBlob/AzureBlobBackend.cs | 2 +- Duplicati/Library/Backend/S3/S3AwsClient.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Duplicati/Library/Backend/AzureBlob/AzureBlobBackend.cs b/Duplicati/Library/Backend/AzureBlob/AzureBlobBackend.cs index 060ced960..99fe7a695 100644 --- a/Duplicati/Library/Backend/AzureBlob/AzureBlobBackend.cs +++ b/Duplicati/Library/Backend/AzureBlob/AzureBlobBackend.cs @@ -119,7 +119,7 @@ namespace Duplicati.Library.Backend.AzureBlob if (string.IsNullOrWhiteSpace(storageClass)) return DEFAULT_ARCHIVE_CLASSES; - return new HashSet(storageClass.Split([','], StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries).Select(x => new AccessTier(x))); + return new HashSet(storageClass.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries).Select(x => new AccessTier(x))); } public string DisplayName => Strings.AzureBlobBackend.DisplayName; diff --git a/Duplicati/Library/Backend/S3/S3AwsClient.cs b/Duplicati/Library/Backend/S3/S3AwsClient.cs index ae2c5957a..3aa87e9cf 100644 --- a/Duplicati/Library/Backend/S3/S3AwsClient.cs +++ b/Duplicati/Library/Backend/S3/S3AwsClient.cs @@ -127,7 +127,7 @@ namespace Duplicati.Library.Backend if (string.IsNullOrWhiteSpace(storageClass)) return DEFAULT_ARCHIVE_CLASSES; - return new HashSet(storageClass.Split([','], StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries).Select(x => new S3StorageClass(x))); + return new HashSet(storageClass.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries).Select(x => new S3StorageClass(x))); } ///