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 /**