diff options
Diffstat (limited to 'src/tests/xb_test_lock2.cpp')
-rwxr-xr-x | src/tests/xb_test_lock2.cpp | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/src/tests/xb_test_lock2.cpp b/src/tests/xb_test_lock2.cpp index d5534ec..82b4dea 100755 --- a/src/tests/xb_test_lock2.cpp +++ b/src/tests/xb_test_lock2.cpp @@ -38,8 +38,7 @@ int main( int argCnt, char **av ) /* 2 - VERBOSE */ xbBool bDone = xbFalse; -// xbInt16 iErrorStop = 0; - xbString sLockFile = "locktest.txt"; + xbString sLockFile; xbString sLockCmd; xbString sResult; xbInt32 iChildLoop = 0; @@ -74,6 +73,9 @@ int main( int argCnt, char **av ) x.SetDataDirectory( PROJECT_DATA_DIR ); InitTime(); + sLockFile.Sprintf( "%slocktest.txt", PROJECT_DATA_DIR ); + // std::cout << "xb_test_lock2 - lockfile = [ " << sLockFile.Str() << "]\n"; + #ifdef XB_DBF4_SUPPORT MyFile = new xbDbf4( &x ); /* version 4 dbf file */ #else @@ -166,7 +168,31 @@ int main( int argCnt, char **av ) #else sLockCmd = "OK"; #endif + + } else if( sLockCmd == "IL" ){ + // index lock + #ifdef XB_MDX_SUPPORT + if(( iRc2 = MyFile->LockIndices( XB_LOCK )) != XB_NO_ERROR ) + sResult = "FAIL"; + else + sResult = "OK"; + #else + sLockCmd = "OK"; + #endif + + } else if( sLockCmd == "IU" ){ + // index unlock + #ifdef XB_MDX_SUPPORT + if(( iRc2 = MyFile->LockIndices( XB_UNLOCK )) != XB_NO_ERROR ) + sResult = "FAIL"; + else + sResult = "OK"; + #else + sLockCmd = "OK"; + #endif } + + #ifdef XB_LOGGING_SUPPORT sMsg.Sprintf( "Program [%s] Child task [%s] Result [%s] RC = [%d]", av[0], sLockCmd.Str(), sResult.Str(), iRc2 ); x.WriteLogMessage( sMsg ); @@ -188,7 +214,7 @@ int main( int argCnt, char **av ) if( po > 0 ) std::cout << "Exiting child\n"; - remove( sLockFile ); + remove( sLockFile.Str() ); #ifdef XB_LOGGING_SUPPORT sMsg.Sprintf( "Program [%s] Child task terminating", av[0] ); x.WriteLogMessage( sMsg ); @@ -202,6 +228,6 @@ int main( int argCnt, char **av ) x.WriteLogMessage( sMsg ); #endif - ExitProcess( iRc ); + ExitProcess( (xbUInt32) iRc ); } |