📄 locktest.java
字号:
// You can redistribute this software and/or modify it under the terms of
// the Ozone Core License version 1 published by ozone-db.org.
//
// The original code and portions created by SMB are
// Copyright (C) 1997-@year@ by SMB GmbH. All rights reserved.
//
// $Id$
package test.tx;
import junit.framework.*;
import org.ozoneDB.LocalDatabase;
import org.ozoneDB.core.*;
import org.ozoneDB.core.User;
import test.OzoneTestCase;
/**
* @author <a href="http://www.softwarebuero.de/">SMB</a>
* @version $Revision$Date$
*/
public class LockTest extends OzoneTestCase {
public LockTest( String name ) {
super( name );
}
public void testExclusiveLock() throws Exception {
if (!(db() instanceof LocalDatabase)) {
// only works on LocalDatabase
return;
}
LocalDatabase db = (LocalDatabase)db();
User owner = db.env.userManager.userForName( db.userName );
Lock lock = new ExclusiveLock();
Transaction ta1 = db.env.transactionManager.newTransaction( owner );
assertFalse (lock.tryAcquire(ta1,Lock.LEVEL_WRITE) == Lock.NOT_ACQUIRED);
assertFalse (lock.tryAcquire(ta1,Lock.LEVEL_READ) == Lock.NOT_ACQUIRED);
// todo: test that the lock is exclusive
//assertFalse (lock.tryAcquire (ta1, Lock.LEVEL_WRITE) == Lock.NOT_ACQUIRED);
//assertTrue (lock.tryAcquire (ta2, Lock.LEVEL_WRITE) == Lock.NOT_ACQUIRED);
//ta1.commit();
//ta2.commit();
//assertEquals (lock.tryAcquire (ta2, Lock.LEVEL_READ), Lock.NOT_ACQUIRED);
}
class TransactionThread extends Thread {
LocalDatabase db;
Transaction ta;
User owner;
TransactionThread(LocalDatabase _db, User _owner) {
this.db = _db;
this.owner = _owner;
}
public void run() {
ta = db.env.transactionManager.newTransaction( owner );
}
int aquire(Lock lock, int lockLevel){
return lock.tryAcquire (ta, lockLevel);
}
}
public void testSharedLock() {
// todo: implement me
}
public void testMROWLock() {
// todo: implement me
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest( new LockTest( "testExclusiveLock" ) );
suite.addTest( new LockTest( "testSharedLock" ) );
return suite;
}
public static void main( String[] args ) {
// junit.textui.TestRunner.run( LockTest.suite() );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -