changeset 618:20d7c9471e8e

fix pg unit tests (1)
author Alain Mazy <am@orthanc.team>
date Wed, 18 Dec 2024 11:23:35 +0100 (4 months ago)
parents 0aaeae85be08
children a9a7dceeaad0
files Framework/Plugins/IndexUnitTests.h PostgreSQL/UnitTests/PostgreSQLTests.cpp
diffstat 2 files changed, 13 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/Framework/Plugins/IndexUnitTests.h	Tue Dec 17 20:33:12 2024 +0100
+++ b/Framework/Plugins/IndexUnitTests.h	Wed Dec 18 11:23:35 2024 +0100
@@ -567,7 +567,14 @@
   ASSERT_TRUE(db.IsExistingResource(*manager, a));
   ASSERT_TRUE(db.IsExistingResource(*manager, b));
   ASSERT_EQ(2u, db.GetAllResourcesCount(*manager));
-  db.DeleteResource(*output, *manager, a);
+
+  {
+    // An explicit transaction is needed here
+    manager->StartTransaction(TransactionType_ReadWrite);
+    db.DeleteResource(*output, *manager, a);
+    manager->CommitTransaction();
+  }
+  
   ASSERT_EQ(0u, db.GetAllResourcesCount(*manager));
   ASSERT_FALSE(db.IsExistingResource(*manager, a));
   ASSERT_FALSE(db.IsExistingResource(*manager, b));
--- a/PostgreSQL/UnitTests/PostgreSQLTests.cpp	Tue Dec 17 20:33:12 2024 +0100
+++ b/PostgreSQL/UnitTests/PostgreSQLTests.cpp	Wed Dec 18 11:23:35 2024 +0100
@@ -548,7 +548,7 @@
 
   std::string s;
   ASSERT_TRUE(db.LookupGlobalProperty(s, *manager, MISSING_SERVER_IDENTIFIER, Orthanc::GlobalProperty_DatabaseInternal1));
-  ASSERT_EQ("2", s);
+  ASSERT_EQ("3", s);
 
   OrthancPluginCreateInstanceResult r1, r2;
   
@@ -565,8 +565,10 @@
   ASSERT_EQ(r1.instanceId, r2.instanceId);
 
   // Breaking the hierarchy
-  memset(&r2, 0, sizeof(r2));
-  ASSERT_THROW(db.CreateInstance(r2, *manager, "a", "e", "c", "f"), Orthanc::OrthancException);
+  // This does not throw anymore since at least 6.0.  This would only happen in case of series hash collision
+  // which would actually be very damagefull at many places in Orthanc.
+  // memset(&r2, 0, sizeof(r2));
+  // ASSERT_THROW(db.CreateInstance(r2, *manager, "a", "e", "c", "f"), Orthanc::OrthancException);
 
   memset(&r2, 0, sizeof(r2));
   db.CreateInstance(r2, *manager, "a", "b", "c", "e");