Mercurial > hg > orthanc-databases
comparison MySQL/UnitTests/UnitTestsMain.cpp @ 138:5c5cd59c991f
fix unit tests if MySQL >= 5.7
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 09 May 2019 11:36:56 +0200 |
parents | 52b3859ee0b7 |
children | 4cd7e45b671e |
comparison
equal
deleted
inserted
replaced
137:52b3859ee0b7 | 138:5c5cd59c991f |
---|---|
72 | 72 |
73 ASSERT_FALSE(db1.ReleaseAdvisoryLock("mylock")); // lock counter = 0 | 73 ASSERT_FALSE(db1.ReleaseAdvisoryLock("mylock")); // lock counter = 0 |
74 ASSERT_TRUE(db1.AcquireAdvisoryLock("mylock")); // lock counter = 1 | 74 ASSERT_TRUE(db1.AcquireAdvisoryLock("mylock")); // lock counter = 1 |
75 | 75 |
76 // OK, as this is the same connection | 76 // OK, as this is the same connection |
77 ASSERT_TRUE(db1.AcquireAdvisoryLock("mylock")); // lock counter = 1 | 77 ASSERT_TRUE(db1.AcquireAdvisoryLock("mylock")); |
78 ASSERT_TRUE(db1.ReleaseAdvisoryLock("mylock")); // lock counter = 0 | 78 // lock counter = 2 if MySQL >= 5.7, or 1 if MySQL < 5.7 (because |
79 // acquiring a lock releases all the previously-acquired locks) | |
80 | |
81 ASSERT_TRUE(db1.ReleaseAdvisoryLock("mylock")); | |
82 // lock counter = 1 if MySQL >= 5.7, or 0 if MySQL < 5.7 | |
79 | 83 |
80 // Try and release twice the lock | 84 // Try and release twice the lock |
81 ASSERT_FALSE(db1.ReleaseAdvisoryLock("mylock")); // lock counter = 0 | 85 db1.ReleaseAdvisoryLock("mylock"); // Succeeds iff MySQL >= 5.7 |
82 ASSERT_TRUE(db1.AcquireAdvisoryLock("mylock")); // lock counter = 1 | 86 |
87 ASSERT_TRUE(db1.AcquireAdvisoryLock("mylock2")); // lock counter = 1 | |
83 | 88 |
84 { | 89 { |
85 OrthancDatabases::MySQLDatabase db2(globalParameters_); | 90 OrthancDatabases::MySQLDatabase db2(globalParameters_); |
86 db2.Open(); | 91 db2.Open(); |
87 | 92 |
88 // The "db1" is still actively locking | 93 // The "db1" is still actively locking |
89 ASSERT_FALSE(db2.AcquireAdvisoryLock("mylock")); | 94 ASSERT_FALSE(db2.AcquireAdvisoryLock("mylock2")); |
90 | 95 |
91 // Release the "db1" lock | 96 // Release the "db1" lock |
92 ASSERT_TRUE(db1.ReleaseAdvisoryLock("mylock")); | 97 ASSERT_TRUE(db1.ReleaseAdvisoryLock("mylock2")); |
93 ASSERT_FALSE(db1.ReleaseAdvisoryLock("mylock")); | 98 ASSERT_FALSE(db1.ReleaseAdvisoryLock("mylock2")); |
94 | 99 |
95 // "db2" can now acquire the lock, but not "db1" | 100 // "db2" can now acquire the lock, but not "db1" |
96 ASSERT_TRUE(db2.AcquireAdvisoryLock("mylock")); | 101 ASSERT_TRUE(db2.AcquireAdvisoryLock("mylock2")); |
97 ASSERT_FALSE(db1.AcquireAdvisoryLock("mylock")); | 102 ASSERT_FALSE(db1.AcquireAdvisoryLock("mylock2")); |
98 } | 103 } |
99 | 104 |
100 // "db2" is closed, "db1" can now acquire the lock | 105 // "db2" is closed, "db1" can now acquire the lock |
101 ASSERT_TRUE(db1.AcquireAdvisoryLock("mylock")); | 106 ASSERT_TRUE(db1.AcquireAdvisoryLock("mylock2")); |
102 } | 107 } |
103 | 108 |
104 | 109 |
105 | 110 |
106 /** | 111 /** |